2017-08-04 43 views
0

我有一個由許多其他模型組成的3d房屋的數據集。房屋非常多樣化。我試圖找到一種方法來使用腳本將房屋拍攝到地形。這種腳本類型的作品,問題是,即使在調整樞軸之後,模型仍然嵌入地形內。我該如何修復它,以便一旦對齊的物體坐在地形的頂部而不是它的內部?將房屋模型統一拍攝到地面

public class AlignInEditor : MonoBehaviour 
{ 
    public bool align = false; 
    public bool showLineToSurface = false; 

    void Update() 
    { 
     if (align) 
     { 
      RaycastHit hit; 
      Ray ray = new Ray (transform.position, Vector3.down); 
      if (Physics.Raycast(ray, out hit)) 
      { 
       transform.position = hit.point; 
       Debug.Log (transform.name + " aligned."); 
      } 
      else 
      { 
       Debug.Log ("No surface found for " + transform.name); 
      } 
      align = false; 
     } 

     if (showLineToSurface) 
     { 
      RaycastHit hit; 
      Ray ray = new Ray (transform.position, Vector3.down); 
      if (Physics.Raycast(ray, out hit)) 
      { 
       Debug.DrawLine (transform.position, hit.point); 
      } 
     } 
    } 
} 

House embedded in terrain

+0

從重複問題的答案中查看#3。 – Programmer

+0

這些問題是不一樣的。它們相關,但不同。 – luii

+0

這兩個問題都在問如何在地形上放置一個物體。如果我複製該解決方案並將其發佈到此處,它將起作用,但爲什麼我應該在之前得到回答時執行此操作? – Programmer

回答

0

蒙上了光線投射形成的房子到地面中心找到的第一個點。 然後從該點(垂直)向房子投射光線並找到第二個點。然後找到2點之間的距離。然後把房子放在第二點(在地面上)+找到的距離上。

+0

你介意提供一些僞代碼?我很難跟隨你所說的話 – luii