[英]Unity - how to make object ignore ray cast
您好,对于任何为此感到困惑的人都无法回答这个问题。
我有一个游戏对象(让我们说“ Enemy
),上面有一个Sphere Collider
Audio Trigger
脚本。
现在,攻击系统使用“ Ray Casting
来检测该层,当您用Sphere Collider
指向具有Audio Trigger
的敌人时, Ray casting
无法识别该如何解决?
首先要感谢Ben Tristten,我从他的一门aswome课程中得到了答案。
在“ Audio Trigger
脚本(或要射线投射到的游戏对象上方的脚本)上。 将以下行添加到Start()
或Awake()
方法中:
gameObject.layer = LayerMask.NameToLayer ("Ignore Raycast");
希望这对任何为此感到挣扎的人有所帮助:)
除了Rony_y的答案外,还应注意, Physics.Raycast()
方法 (以及其他类似方法,例如RaycastAll,SphereCast等)在其重载之一中采用了LayerMask
参数。
此参数可让您指定要作为位掩码 进行射线广播的图层(因此仅通过传递1
,同时对Default和Layer 8进行转换,仅对Default层进行转换,这是您可以命名的第一层。可以通过传递257
来完成:例如1<<8 + 1<<0
)。
这样,您可以根据需要将对象设置为具有不同的物理层(最多32个不同的层,其中前8个不可重命名),例如,所有音频对撞机体积都可以拥有自己的Audio
层那就不包括在您的射线广播中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.