unity人物沿着Y轴旋转时,开启特效

unity3D中想要实现——人物沿着Y轴旋转时,开启屏幕烟花特效,烟花特效持续4秒钟。

以下是一个简单的示例脚本:

using UnityEngine;

public class RotateAndPlayEffect : MonoBehaviour
{
    public ParticleSystem effect; // 特效
    public float duration = 4.0f; // 持续时间

    private bool isRotating = false; // 是否正在旋转

    void Update()
    {
        // 检测是否按下左右方向键
        float rotation = Input.GetAxis("Horizontal");
        if (rotation != 0)
        {
            // 开始旋转
            isRotating = true;
            transform.Rotate(Vector3.up, rotation * Time.deltaTime * 50.0f);
        }
        else
        {
            // 停止旋转
            isRotating = false;
        }

        // 检测是否需要播放特效
        if (isRotating && !effect.isPlaying)
        {
            effect.Play();
            Invoke("StopEffect", duration);
        }
    }

    void StopEffect()
    {
        effect.Stop();
    }
}

这个脚本绑定在人物模型的GameObject上,需要在Inspector面板上指定特效和持续时间的参数。脚本的作用是,当用户按下左右方向键旋转人物时,检测是否正在旋转,如果是,则播放特效并设置一个定时器,在持续时间到达之后停止特效。

需要注意的是,这个示例使用了Invoke方法来实现持续时间的定时器,因为在Update方法中使用Time.deltaTime计算时间可能会有误差。如果需要更精确的计时器,可以使用Coroutine协程来实现。