Получить позицию raycast, даже когда он ничего не бьет

Я работаю над простой строительной системой, и вот небольшой gif того, что у меня есть. Прямо сейчас объект предварительного просмотра исчезает, когда raycast ничего не попадает. I want it to change it’S Y position when I look up but then the raycast doesn’t return anything, how would I achieve that?

https://gfycat.com/ifr/ShallowTepidAnkolewatusi

Вот бит кода, который отвечает за позицию предварительного просмотра

        if (deployPreview)
        {
            if (Physics.Raycast(cam.position, cam.forward, out deployableHit, 5, deployableMask))
            {
                if (deployPreview.gameObject.activeSelf)
                {
                    if (deployableHit.transform != transform)
                    {
                        if (heldDeployable.deployable.DepType == EDeployableType.Buildable)
                        {
                            HandleBuilding();
                        }
                        else
                        {
                            deployPos = deployableHit.point;
                            deployPreview.rotation = transform.rotation;
                            deployPreview.position = deployPos;
                        }
                    }
                }
            }
        }

1 ответ

  1. Вы можете найти место, где заканчивается Луч, и переместить туда объект предварительного просмотра.

    if (deployPreview)
    {
            if (Physics.Raycast(cam.position, cam.forward, out deployableHit, 5, deployableMask))
            {
               //your code
            }
            else
            {
               //not hit code
               var position = cam.position + cam.forward * 5;
               //position is where ray ends
            }
    }