繁体   English   中英

Unity Ray-cast 不够具体

[英]Unity Ray-cast not specific enough

光线投射似乎只在我移动并随机定位时更新,任何帮助将不胜感激。

    `    void Update(){
    if(IsBruiserFollowingMarkerRay){
        RaycastHit hit;
        BruiserMoveToVisuals.SetActive(true);
        if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, Range)){
       // Debug.Log(hit.transform.position);
        BruiserMoveToDefault.transform.position = hit.transform.position;
        }
    }`

一旦光线投射无法按预期工作,请使用 Debug.DrawRay() 直观地查看正在发生的事情。 像这样的东西:

    if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, Range))
    {
        Debug.DrawRay(fpsCam.transform.position, fpsCam.transform.forward * Range, Color.yellow, 1f);
        // ...
    }
    else
    {
        Debug.DrawRay(fpsCam.transform.position, fpsCam.transform.forward * Range, Color.green, 1f);
    }

请注意,我们需要将方向与范围相乘,以直观地显示与 Raycast() 长度相同的射线。 您现在应该能够看到为什么光线投射没有给出您期望的答案。 如果您看不到任何光线(无论是黄色还是绿色),可能是 Range 为 0 或 fpsCam 未定位在您期望的位置。

暂无
暂无

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

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