Unity 如何使碰撞仅对特定物体有效
1、我们以Unity2D的一个官方案例场景为例子(3D做法完全类似)。我们看到,在这个场景中,Enemies敌人是可以叠加不产生碰撞的,而他们与Player对象(小豆人)是发生碰撞并互相排斥的。
2、为了实现这种效果,首先我们要设置玩家对象的Layer为Player,设置敌人对象的Layer为Enemies.(如果没有,自行新建Layer)
3、设置好Layer以后,在菜单找到Edit->Project Settings->Physics2D并打开。
4、我们展开Layer Collision Matrix部分,可以看到一个矩阵。这个矩阵描述了哪个Layer可以与那个Layer发生碰撞。
5、如图,我们勾选Enemies-Enemies对应的那个方框,看到所有的敌人对象立刻发生碰撞相互排斥了。
6、如果在代码中访问,我们使用Physic衡痕贤伎s2D.SetLayerCollisionMask(LayerMask.NameToLayer(&鳎溻趄酃quot;Enemies"),LayerMask.GetMask("Enemies","Ground"));这种方法。第一个参数是带设置的Layer,第二个参数是可以与该Layer发生碰撞的Mask. 运行一下,我们就看到碰撞矩阵发生了变化。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:80
阅读量:62
阅读量:74
阅读量:27
阅读量:23