首页 > 解决方案 > 在飞机上生成小立方体?

问题描述

我有一个脚本,通过鼠标单击和拖动,它会在场景视图中生成小立方体。但是,我有一架飞机,我想在这架飞机的顶部生成这些立方体。有什么办法可以做到这一点?

public class SmallCubes : MonoBehaviour
{
    Ray ray;
    RaycastHit hit;
    public GameObject prefab;

    // Use this for initialization
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        if (Physics.Raycast(ray, out hit))
        {
            if (Input.GetMouseButton(0))
            {
                GameObject obj = Instantiate(prefab, new Vector3(hit.point.x, hit.point.y, hit.point.z), Quaternion.identity) as GameObject;
            }
        }
    }
}

标签: c#unity3d

解决方案


只需使用平面的 y 位置而不是命中点来实例化。

GameObject plane = GameObject.Find("plane");

GameObject obj = Instantiate(prefab, new Vector3(hit.point.x, plane.transform.position.y + cubesize/2, hit.point.z), Quaternion.identity) as GameObject;

虽然我和其他评论者在一起,但似乎这段代码已经完全符合您的要求。


推荐阅读