【小白求助】如何在OnTriggerEnter后运行Update
unity3d吧
全部回复
仅看楼主
level 13
惺忪睡客zzz
楼主
求助,怎么在碰撞检测后,再运行Update中的代码啊
例如:void OnTriggerEnter(Collider other){
XXX
print(“1”);
}
void Update () {
XXX
print(“2”);
}
在写完1后写2。
2016年04月14日 17点04分
1
level 13
惺忪睡客zzz
楼主
求救大神
2016年04月14日 17点04分
2
贴吧用户_58aEVe5
@贴吧用户_58aEVe5
public bool trigger =false; void OnTriggerEnter(Collider other) { trigger = true; } void Update() { if(trigger == true) { Debug.Log(“触发器”) ; } }
2023年05月30日 07点05分
level 6
叶绿素君
用个bool传递一下试试
2016年04月14日 17点04分
3
惺忪睡客zzz
bool传递怎么用啊
2016年04月14日 17点04分
level 13
惺忪睡客zzz
楼主
求来人啊
2016年04月14日 17点04分
4
level 9
心丶如梦
加个全局变量就行啦!判断变量数值!然后根据数值在你的Update里面写逻辑!
2016年04月14日 18点04分
5
惺忪睡客zzz
看楼下,我一开始想的就是设个flag,但是发现运行的时候碰撞后LineRenderer并没有出现。
2016年04月14日 18点04分
level 13
惺忪睡客zzz
楼主
我设了flag可是并没有效果啊,是哪里出错了吗
2016年04月14日 18点04分
6
AGamer🔥
Update里面套Update。。。没有这么写的。Update本来就是每帧都执行。碰撞检测后改变bool值,下次执行update的时候,才会输出2的
2016年04月15日 03点04分
惺忪睡客zzz
@AGamer🔥
那不是两个update,是两张图。。
2016年04月15日 03点04分
hackeriOS
@惺忪睡客zzz
我也看成2个update了
2016年04月15日 03点04分
风信子的召唤
为什么触发以后要摧毁this.gameObject
2016年04月15日 03点04分
level 6
AGamer🔥
设个bool开关就ok了
2016年04月15日 03点04分
7
level 10
782966734
你销毁的代码是不是写错了?销毁后什么都没有了
2016年04月15日 04点04分
8
惺忪睡客zzz
那要怎么写啊,碰撞后消失然后执行update中的语句
2016年04月15日 04点04分
风信子的召唤
终于有个看得懂逻辑的人了
2016年04月15日 04点04分
782966734
你逻辑都不清楚的话,很难跟你沟通
2016年04月15日 04点04分
782966734
@风信子的召唤
谢谢
2016年04月15日 04点04分
level 13
惺忪睡客zzz
楼主
我试了下不destroy,就可以,可是不销毁怎么是它消失啊
2016年04月15日 04点04分
9
level 1
cjy4312
1.你怎么会有两个update函数。。。。???
2.你的碰撞触发里的player是什么东西你写了吗?
3.碰撞触发Destroy放在最前面,你在其它函数之前把游戏对象销毁了执行个奶子啊。
4.你碰撞完直接销毁游戏对象的话,为毛不自己写个函数而是放在Update函数里呢?反正用完就没了也没有什么需要随着时间流动反复执行的必要
通常来说,定义一个bool变量,比如你用的flag
碰撞触发改动flag的值
bool flag;
void OnTriggerEnter(Collider player){
if(player.tag==“Player”){
print(“1”);
DoThis();
Destroy(gameObject);
}
void DoThis(){
print(“2”);
}
}
你这逻辑真乱,我也是初学者,你这个上下结构关系看起来就还没入门在瞎写啊
2016年04月15日 05点04分
10
cjy4312
然后最后发现flag这个jb根本没用上,你要是flag没有其他用处的话删了都可以
2016年04月15日 05点04分
惺忪睡客zzz
呃,不是两个Update,是两张图,player是U3d里的FPS,可以用啊,Destroy应该是有问题,后面确实要用的随时间流动,所以我才想碰撞后物体消失然后执行Update中的语句。我是小白,确实入门算不上啊,所以求助啊,我用enable = false也不行啊,求助啊
2016年04月15日 05点04分
cjy4312
所谓的Destroyed(gameObject),是将整个游戏对象销毁,包括包括挂载在上面的组件,一个游戏对象被销毁之后上面挂的任何脚本都不可能工作,等于直接从游戏中删除掉了
2016年04月15日 06点04分
惺忪睡客zzz
你说的对,销毁不行,我之前用enable用法不对吧,现在可以了,谢谢你热心 帮忙
2016年04月15日 06点04分
level 9
L城E
你摧毁了物体,还怎么执行脚本,应该把这个脚本和物体分开
2016年04月15日 05点04分
11
level 11
假god
你都把自己销毁了,怎么可能执行update???
2016年04月15日 05点04分
12
level 13
惺忪睡客zzz
楼主
呃,之前看视频蓝屏加花屏两次,我重新装了之前版本的驱动,加上Windows Update 坑爹的自己启动在更新(之前都把它禁用了的
),所以搞到现在。是Destroy的问题,我改用MeshRender的enable = false终于好了,感谢大家的热心帮助
。
2016年04月15日 06点04分
13
1