Unity 5粒子删除c#脚本

时间:2015-08-30 14:04:24

标签: c# unity3d scripting unity5

我正在关注Unity 4上的团结教程,但我在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);
    }
}

可能是因为统一的C#代码从4变为5?我应该改变什么?问题似乎出现在Update方法中。

2 个答案:

答案 0 :(得分:2)

此代码存在几个问题。

首先,你没有提到它究竟附加了什么?我认为它附加到粒子系统。

其次,使用“gameObject”,而不是“GameObject”,因为GameObject是该类的名称。

第三,我相信有一种更有效的方法来破坏gameObject而不检查每个帧是否粒子系统已经完成,可能设置一个小计时器?或者用时间​​调用函数?

答案 1 :(得分:0)

取决于事件的设置方式,将取决于检查粒子是否正在运行的方法。如果您可以在进入时设置对撞机,则可以触发一个事件以知道粒子处于打开状态。离开对撞机后,粒子将关闭。

对于C#中return的语法,我不是100%的,但似乎应该在销毁游戏对象之后使用。我认为return的工作方式与该方面的突破类似(特别是因为无论如何您似乎都没有返回任何值,为什么需要它?)