我的游戏中有一个标记为“敌人”的对象,它也位于“敌人”层中。它具有一个BoxCollider
和一个附加的Rigidbody
。选项IsTrigger
已激活。当我射击它时,命中无法识别。点击就直接通过。
我用这种方法拍摄:
void DisparaBala()
{
RaycastHit hit;
if(Physics.Raycast(maiCam.transform.position, maiCam.transform.forward, out hit))
{
print("We hit: " + hit.transform.gameObject.tag);
if (hit.transform.tag == Tags.ENEMY_TAG)
{
hit.transform.GetComponent<ScriptVida>().DanoAplicado(damage);
}
}
}
枪是照相机的子弹,而照相机是游戏者的子弹。播放器位于称为“播放器”的图层中。
有趣的是,如果我放置带有“敌人”标签的其他任何对象,则可以正常识别匹配。
我不知道该怎么办。
答案 0 :(得分:0)
向Physics.Raycast添加一个图层蒙版。像这样:
void DisparaBala()
{
RaycastHit hit;
int layerMask = LayerMask.GetMask("Enemy");
if(Physics.Raycast(maiCam.transform.position, maiCam.transform.forward, out hit, layerMask))
{
print("We hit: " + hit.transform.gameObject.tag);
if (hit.transform.tag == Tags.ENEMY_TAG)
{
hit.transform.GetComponent<ScriptVida>().DanoAplicado(damage);
}
}
}