PlayerController
班级
public LayerMask groundLayer;
void LookRotation()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo;
if (Physics.Raycast(ray, out hitInfo, groundLayer))
{
destination = new Vector3(hitInfo.point.x, transform.position.y, hitInfo.point.z);
//Look at mouse position
transform.LookAt(destination);
}
}
我遇到一个问题,让我的Raycast要么忽略我的播放器,要么只检测地面。在实际的统一检查器中,我已将LayerMask
设置为我的Ground Layer
,并且使用我当前的代码,它只会在Ground Layer
中检测到地面,尽管玩家仍会干扰Raycast即使它不在Ground Layer
中。我需要Raycast完全忽略播放器,即使通过将播放器添加到Ignore Raycast
层来实现这一点,我也无法做到这一点,因为播放器需要被不同的Raycast检测到。所有这些代码都出现在我的PlayerController
脚本中,因为它用于确定我的玩家轮换,我不确定这可能是玩家干扰Raycast的原因。提前干杯!