我有一个由许多其他模型组成的三维房屋数据集。房子非常多样化。我试图找到一种方法,使用脚本将房子拍到地形。脚本有点工作,问题是有时即使在调整枢轴之后模型也嵌入在地形中。我怎么能修复它,这样一旦拍下的物体只是坐在地形的顶部而不是它的内部?
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);
}
}
}
}
答案 0 :(得分:0)
将房子中心的光线投射到地面,找到第一个点。 然后从该点(垂直)投射一个光线投射到房子并找到第二个点。然后找到2点之间的距离。然后将房子放在第二个点(在地面上)+找到的距离。