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

好像如果直接destroy某个物体的话,在场景中没有这个物体的情况下就会报错……所以想要判断一下if某个物体存在的时候删除,但是不知道具体应该怎么写……麻烦球问一下要怎么... 好像如果直接destroy某个物体的话,在场景中没有这个物体的情况下就会报错……所以想要判断一下if某个物体存在的时候删除,但是不知道具体应该怎么写……麻烦球问一下要怎么判断QWQ 展开
 我来答
帐号已注销
高能答主

2021-09-03 · 世界很大,慢慢探索
知道小有建树答主
回答量:724
采纳率:100%
帮助的人:27.1万
展开全部

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帧,不唯一。

百度网友38fd1e9
推荐于2018-02-14
知道答主
回答量:1
采纳率:100%
帮助的人:902
展开全部

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

public GameObject player;
//并不是只有Update才行
void Update(){
if (player) { //放入你的代码}}}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuwenjiexx
2012-06-27 · 超过14用户采纳过TA的回答
知道答主
回答量:22
采纳率:0%
帮助的人:23.9万
展开全部
//删除对象前先判断对象是否存在
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
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式