因此,我正在开发一种开门系统,通过光线投射检查用户是否将屏幕中央的焦点对准门把手。以下是我的代码中不起作用的部分:
private void Update()
{
if (Physics.Raycast(Camera.transform.position, Camera.transform.forward, out rayHit, Distance))
{
Debug.DrawRay(Camera.transform.position, Camera.transform.forward, Color.blue);
Collider col = rayHit.collider;
if (col.tag == DoorKnopTag)
{
DoorIndicator.SetActive(true);
}
else
{
DoorIndicator.SetActive(false);
}
}
else
DoorIndicator.SetActive(false);
}
因此,我没有输入代码来检查当玩家选择门把手时是否单击鼠标,但我确信这不是问题所在。
问题所在
当我检查场景中的光线时,线闪烁得很厉害。我进行了一点调试,得出的结论是
Camera.transform.forward
即使我不改变
Camera.tranform.position
。当我改变方向时
Physics.Raycast
对于常量矢量3,它不再闪烁,所以我认为问题在于
transform.forward
。但我看不出怎么修。