Unity实现拖尾效果

一:步骤

——导入插件Pocket RPG Weapon Trails

 


——给需要展现拖尾效果的物体添加一个子物体Trail,添加MeshRenderer组件(材质最好使用插件自带的WeaponTrail材质)和Weapon Trail脚本(脚本中的参数根据自己的项目参数进行设置)
Unity实现拖尾效果_第1张图片

 


——编写一个Trail的脚本,赋值WeaponTrail脚本,完整代码如下
挂载到拖尾效果的物体身上,在需要的时候调用StartTrail和StopTrail方法即可

using UnityEngine;

public class Trail : MonoBehaviour
{
    public WeaponTrail myTrail;

    //private Animator animator;
    private float t = 0.033f;
    private float tempT = 0;
    private float animationIncrement = 0.003f;

    void Start()
    {
        //animator = GetComponent();

        //一开始没有拖尾效果
        myTrail.SetTime(0, 0, 1);
    }

    void LateUpdate()
    {
        t = Mathf.Clamp(Time.deltaTime, 0, 0.066f);

        if (t > 0)
        {
            while (tempT < t)
            {
                tempT += animationIncrement;

                if (myTrail.time > 0)
                {
                    myTrail.Itterate(Time.time - t + tempT);
                }
                else
                {
                    myTrail.ClearTrail();
                }
            }

            tempT -= t;

            if (myTrail.time > 0)
            {
                myTrail.UpdateTrail(Time.time, t);
            }
        }
    }

    //开始拖尾
    public void StartTrail()
    {
        myTrail.SetTime(2.0f, 0.0f, 1.0f);
        myTrail.StartTrail(0.5f, 0.4f);
    }

    //结束拖尾
    public void StopTrail()
    {
        myTrail.ClearTrail();
    }
}

 

你可能感兴趣的:(Unity实现拖尾效果)