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);
            }
        }
    }
}

嵌入地形的房子

4

1 回答 1

0

将光线投射从房屋中心投射到地面以找到第一个点。然后从该点(垂直)向房屋投射光线并找到第二个点。然后找到这2点之间的距离。然后将房子放在第二点(在地面上)+ 找到的距离上。

于 2017-08-04T19:08:47.240 回答