unity3D 中如何判断一个gameobject是否存在?

好像如果直接destroy某个物体的话,在场景中没有这个物体的情况下就会报错……所以想要判断一下if某个物体存在的时候删除,但是不知道具体应该怎么写……麻烦球问一下要怎么判断QWQ

unity3D 中判断一个gameobject是否存在代码如下:

//删除对象前先判断对象是否存在

if(target){

//target为Component组件类型就删除组件,常用的Transform、Rigidbody、MeshFilter,如

为GameObject 就删除对象

Destroy(target);

Debug.Log(target==null);//false

//或者只删除对象

unity3D技巧

1.Reset():只会在editor模式下触发。

2.Awake():即在脚本初始化的时候执行一次。

3.OnEnable():脚本依附在GameObject上后,场景被启动时,只有在.SetActive(true)情况才会执行。

4.Start():脚本开始运作执行一次。

5.FixedUpdate():不受帧率的影响,按固定时间执行,常用于运动。

6.Update():每一秒执行相应的次数,这里的次数即帧数,是根据硬件设备以及内部函数复杂度决定的,可能上一秒60帧,这一秒就是80帧,不唯一。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-14

首先定义GameObject,之后用if(Gameobjeect)判断

public GameObject player;
//并不是只有Update才行
void Update(){
if (player) { //放入你的代码}}}

本回答被网友采纳
第2个回答  2012-06-27
//删除对象前先判断对象是否存在
if(target){
//target为Component组件类型就删除组件,常用的Transform、Rigidbody、MeshFilter,如果为GameObject 就删除对象
Destroy(target);
Debug.Log(target==null);//false
//或者只删除对象
//Destroy(target.gameObject);
//或者使用DestroyImmediate方法立即删除对象
//DestroyImmediate(target);
//Debug.Log(target==null);//true
}本回答被提问者和网友采纳
相似回答