当我们希望延迟一段时间销毁GameObject,Component,或者 asset 的时候可以利用下面的函数来实现。
不用自己再去实现延迟计时操作。
Destroy(Object obj, float t = 0.0F);
第二个参数单位为秒,物体将在t秒后被销毁。
using UnityEngine;
public class ScriptExample : MonoBehaviour
{
void DestroyGameObject()
{
Destroy(gameObject);
}
void DestroyScriptInstance()
{
// 立刻从gameobject上移除该脚本
Destroy(this);
}
void DestroyComponent()
{
// 从gameobject上移除rigidbody脚本
Destroy(GetComponent<Rigidbody>());
}
void DestroyObjectDelayed()
{
// 5秒后销毁当前gameobject
Destroy(gameObject, 5);
}
// 当用户按下Ctr键后,将会从gameobject上移除boxcollider脚本
void Update()
{
if (Input.GetButton("Fire1") && GetComponent<BoxCollider>())
{
Destroy(GetComponent<BoxCollider>());
}
}
}
在做编辑器扩展开发的时候,非运行时环境,只能使用 Object.DestroyImmediate()
Unity技术交流 微信公众号 UnityAsk,QQ群:891920228