Thank you for purchasing Sci-fi Spaceship Effect Pack! If you want to contact me, my mail is kalamona01@gmail.com. Feedback is appreciated!

General

The effects themselves are prefabs, you simply have to create them (I use the Instantiate command, but you might want to do it differently if you use some kind of an object pool manager). 

The effects play themselves (for example an explosion or a scanner sweep), and then they destroy themselves (mostly by using the SFE_destroyThisTimed script).

There are some effects that generate other effects. It might be hard to understand why is this, but mostly because of modularity. Let me give you an example: there is an effect of a simple bullet. There is another effect that creates a volley of the simple bullet. So if you change the simple bullet, the volley of bullets gets changed automatically. This is mostly done either using SFE_continuousPrefabGenerator, SFE_prefabGenerator, or SFE_prefabCloner - these are variuous generator scripts that generate prefabs in different ways.

As you probably noticed, scripts have the "SFE_" prefix, this is to avoid collision with other scripts. For example it is highly possible there is another script called "detach" or anything.

Effect Categories

Bullets - uses rigidbody with collision, and scripts that add a force, to propel itself and to collide with stuff. There is a bullet script (SFE_BulletController) that is responsible for creating the muzzle fire and sets the impact effect, damage, speed, etc.

Lasers - these use a script to do a quick raycast towards where the effect is pointed, and they draw a line or multiple lines to that point. Lines might have some effects on it, for example it enlargens over time, or plays an UVanimation.

Explosions - These get played when something is destroyed, most likely a bullet or an object. They sometimes create additional objects, like wrecks that fly around. These wrecks don't have collision.

Multi-Effects - these effects' only job to create other effects. For example a volley of bullets or a missile swarm.

MuzzleFire - They play when a bullet or laser is launched. They don't effect anything else.

Misc - everything else that was not covered here, but are full effects. They get generated, play their stuff, and they disappear. Scanners, tractor beam, coin pickup effect, etc.

Technical effects - These effects only exist to be generated by other effects, or they are obsolete and not used. For example the "scan ping", that is generated by the largeScan effect. 

Example Scene

While the example scene is just there to showcase the effects, and as written in the description, is not really a part of the product, some people find it confusing or are curious how it works. So a quick overview. I warn you, that I am not a programmer, so my solutions might be unneccessarily bloated or downright hacky.

The soul of the scene is the SFE_effectCaster, that is on the scene main camera, that is under the MainCameraDummy. Trivial, huh? :)

This script is responsible for the following stuff: 

- it moves the "cursor" object, to be always there where the mouse points. If you are fast, you can see it too, it is a very small white sphere, called MOUSE. I could've turned off its render, but didn'tdo it for some reason I already forgot.

- There is a "shoot point" defined, the effects get generated there, the orientation of the shoot point matters.

- There is a gui text defined, the currently played effect will be written there.

- up and down keys change the effect currently played. There is an "inner cooldown" for changing effects and playing them. Clicking plays the effect (on the previously defined "shoot point". The effects are in a list, list length can be configured.

- there are also 2 points defined, as 2 camera points. Space key swaps between them.

- there is a script on the spaceship, called SFE_spaceshipScript, that follows the MOUSE object on the horizontal dimension. As mentioned, the MOUSE object follows the mouse, and is controlled by the SFE_effectCaster.

So, that is the Effect Caster Script. Other stuff are a bit less complicated. There are objects that generate asteroids, space turrets and cocoons. These "enemy objects" all have a controller (SFE_AsteroidController or SFE_shieldedController) that set those objects' HP and handle their collision with bullets and lasers. 

Well, I hope everything is covered. Let me know if you have any questions!

Gergely Zsolnay
Hydra Graphics Ltd.
kalamona01@gmail.com