繁体   English   中英

统一来自相机的光线投射

[英]Raycast from Camera in unity

我尝试从相机中心而不是鼠标 position 拍摄光线投射,如何改进我的代码?

if (Input.GetMouseButtonDown(0))
{
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    RaycastHit hit;
    if (Physics.Raycast(ray, out hit, rango))
    {
        if (hit.transform.tag == "Player")
        {
            Debug.Log("ishitting");
        }
    }
}

用这个:

Ray ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2, 0));

ScreenPoint中输入参数的中心放置到 Position 不是优化代码,要经过几个步骤长计算。 最好使用纯Forward

var main = Camera.main.transform;
Physics.Raycast(main.position, main.forward, 100f);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM