1

我正在关注从 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方法上。

4

2 回答 2

2

这段代码有几个问题。

首先,你也没有提到它到底是什么?我假设它附加到粒子系统。

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

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

于 2015-08-30T14:20:40.600 回答
0

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

我不是 100% 了解 C# 中的 return 语法,但似乎它应该在你销毁游戏对象之后进行。我认为 return 在这方面的工作方式与 break 类似。(特别是因为你似乎没有返回任何值,为什么你需要它?)

于 2018-08-26T08:54:01.620 回答