Unity 5粒子删除c#脚本

本文关键字:脚本 删除 粒子 Unity | 更新日期: 2023-09-27 18:10:36

我在unity 4上开始了一个unity教程,但我在unity 5上,当我尝试使用看到的脚本(https://youtu.be/vwUahWrY9Jg?t=1337),我尝试使用它,它给出了一个错误:

Assets/Scripts/DestroyFinishedParticle.cs(18,17):错误CS0246:类型或命名空间名称"Destroy"无法找到。您是否缺少using指令或程序集引用?

这是代码:

using UnityEngine;
using System.Collections;
public class DestroyFinishedParticle : MonoBehaviour {
    private ParticleSystem thisParticleSystem;
    // Use this for initialization
    void Start () {
        thisParticleSystem = GetComponent<ParticleSystem>();
    }
    // Update is called once per frame
    void Update() {
        if (thisParticleSystem.isPlaying)
            return;
        Destroy (GameObject);
    }
}

这可能是因为unity的c#代码从4更改为5?我应该改变什么?问题似乎在Update方法。

Unity 5粒子删除c#脚本

这段代码有几个问题。

首先,你没有提到它到底是附在什么上面的?我想它是附属于粒子系统的。

其次,使用"gameObject",而不是"gameObject",因为gameObject是类的名称。

第三,我相信有一种更有效的方法可以销毁游戏对象,而无需检查每一帧粒子系统是否已经完成,也许可以设置一个小计时器?或者用时间调用函数?

取决于如何设置事件将取决于检查粒子是否正在运行的方法。如果你可以设置一个对撞机,当你走进去的时候,你可以触发一个事件来知道粒子是否开启。在离开对撞机后,粒子将被关闭。

我不是100%在c#中返回的语法,但似乎它应该在你破坏你的游戏对象之后。我认为在这方面,回球和破发的作用类似。(特别是因为你似乎没有返回任何值,为什么你需要它?)