How To Make Bullet Trail That Has Animated Effect After It

Hi everyone!

i’m creating my game with some attack effect and i’m curious how do we create this effect in Unity:
alt text

i tried particle effect but i just can make bullet and some dust after it. So, can you tell me how to do this in unity. any suggestion will be very appreciate :).

To do something like that, you’d either need a bunch of different particle effects (Probably the best option) or you could get an animated alpha channel texture (requires quite a bit of work and money probably) hope this helps a bit :slight_smile:

here i managed to duplicate it. try this and play around with it until it works

1. Create a particle system.
2. Set Lifetime to 3;
3. set Speed to 0.1;
4. Set Emission rate to 100 and Time
5. Set shape to Box and set its parameters to 0.5
6. Set Random Direction to true if desired
7. Add your Particle material
8. Create a new GameObject(Ctrl+Shift+N)
9. add a trail render (Effects>TraliRender) and set its X position to 0.1
10. set Time to 5, Start width to 0.15, End width to 0.1
11. select color of your choosing and add your particle material
12. parent the trail Renderer to the Particle system you created in step 1
13. Duplicate the trail render and set its x position to -0.1
14. Add a script that rotate the particle system and adjust the two trail renders this is very easy to do.

Its not exact but its quite close.
here a basic script for step 14

using UnityEngine;
using System.Collections;

public class AutoRotate : MonoBehaviour {

    public float zvalue;
    public TrailRenderer[] Traile;


    void Start()
    {
        Traile = new TrailRenderer[] {
            gameObject.transform.GetChild(0).GetComponent("TrailRenderer") as TrailRenderer,
             gameObject.transform.GetChild(1).GetComponent("TrailRenderer") as TrailRenderer
        };

    }
	// Update is called once per frame
	void Update () {
        foreach(TrailRenderer d in Traile) {
            d.transform.Translate(new Vector3(Random.Range(0.5f, -0.5f) * Time.deltaTime, Random.Range(0.5f, -0.5f) * Time.deltaTime));
            if (d.transform.localPosition.x > 0.5f || d.transform.localPosition.y > 0.5f)
            {
              d.transform.localPosition.Normalize();
            }
        }

        transform.Rotate(Vector3.forward, zvalue * Time.deltaTime);
        transform.Translate(-Vector3.forward * Time.deltaTime);
	}
}

Good Luck… it just needs a bit of tuning

[17339-bandicam+2013-11-02+15-57-51-101.jpg|17339]