Raycast,与transform.forward冲突

问题描述:

我使用随机光线播放机制表现出来,但我被困在一个问题: 当我在空中拍摄时,我的光线应该呈现在我的相机transform.forward中并行(如Debug.DrawRay)。问题是LineRenderer需要一个奇怪的方向。Raycast,与transform.forward冲突

这是我的代码:`void Shoot(){ RaycastHit hit;

if (Physics.Raycast(Camera.main.transform.position, cam.transform.forward, out hit, range)) 
    { 
     GameObject b = Instantiate(bulletPrefab, hit.point, transform.rotation); 
     b.GetComponent<LineRenderer>().SetPosition(0, shootOrigin.transform.position); 
     b.GetComponent<LineRenderer>().SetPosition(1, hit.point); 
    }else 
    { 
     Debug.DrawRay(cam.transform.position, cam.transform.forward, Color.green, 100); 
     GameObject b = Instantiate(bulletPrefab, transform.position, transform.rotation); 
     b.GetComponent<LineRenderer>().SetPosition(0, shootOrigin.transform.position); 
     b.GetComponent<LineRenderer>().SetPosition(1, cam.transform.forward); 
     b.transform.GetChild(0).gameObject.SetActive(false); 
    } 
}` 

有什么建议吗?

enter image description here

Debug.DrawRayDraws a line from start to start + dir in world coordinates.

这很好。

但是,LineRenderer uses positions

这将是正确的:

b.GetComponent<LineRenderer>().SetPosition(1, cam.transform.position + cam.transform.forward); 
+0

噢我完全忘了这个细节,谢谢! –