2016-11-05 1 views
0

Я работаю над простой системой зданий, и вот небольшая часть того, что у меня есть. Прямо сейчас объект предварительного просмотра исчезает, когда raycast ничего не наносит. Я хочу, чтобы он изменил это положение Y, когда я смотрю вверх, но тогда raycast ничего не возвращает, как бы я этого достиг?Получить позицию raycast, даже если он ничего не ударил

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

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

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 
     } 
} 
+0

Спасибо, вот что я искал. – Fiffe