首先,ugui的碰撞是可以用Collision2D跟Rigidbody2D实现的(就跟3D碰撞一样)。之前试过不可以主要问题正在于Collision2D以及Rigidbody的设置上。

碰撞双方都添加Collider2D但是没有调整碰撞器的大小。新建一个image添加box collider2d,它的size为x:1,y:1,而image默认的width和height为100...
然后是添加Rigidbody2D

Simulated是一定要勾选的,如果这个不勾选Collider 2D和Joint 2D 就没有效果。如果在运行时勾选了Simulated会看到对象受重力影响(也就是往下掉),所以这里要把Linear Drag, Angular Drag,Gravity Scale这几个力的作用设为0.
然后就要根据情况来设定你是要用trigger还是collision了。
这里就跟3d一样了,假如用trigger,要将碰撞双方中的其中一个将Collider的is trigger勾选,勾选谁是要求而定。is trigger勾选之后,它的位置就不会用碰撞影响了。
脚本检测事件用(双方都要添加collider2d,至少一方添加rigidbody2d)
|
1 2 3 4 5 6 7 8 |
|
|
1 2 3 |
|
|
1 2 3 4 5 6 7 8 9 |
|
只要对象一直在勾选is trigger的对象的collision范围之内,OnTriggerStay2D就会一直触发。
|
1 |
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
这时候is trigger就不要勾选了,也是双方都要添加collider2d,至少一方添加rigidbody2d,不要忘了勾选rigidbody2d下的simulated...
本文详细介绍了Unity中UGUI的碰撞检测实现方法,包括使用Collision2D和Rigidbody2D进行碰撞检测的设置,如何调整碰撞器大小,以及如何通过脚本检测碰撞事件。文章深入探讨了触发器和碰撞器的区别,以及如何选择使用trigger或collision。

6590

被折叠的 条评论
为什么被折叠?



