unity中使用3D网格的MoveTo函数将您想要移动的物体移动到该游戏世界坐标

unity中使用3D网格的MoveTo函数将您想要移动的物体移动到该游戏世界坐标

要实现这个功能,您可以在unity中使用以下步骤:

1. 创建一个空的游戏物体unity 点击物体拖动,在它下面添加一个3D网格,代表您想要移动的物体。

2. 给这个3D网格添加一个碰撞体组件unity 点击物体拖动游戏运营,这样它才能被鼠标点击识别。

unity鼠标拖拽物体移动_unity 点击物体拖动_unity移动物体快捷键

3. 创建一个C#脚本,并将它附加到您的3D网格上。

unity鼠标拖拽物体移动_unity移动物体快捷键_unity 点击物体拖动

4. 在脚本中编写一个OnClick事件函数,并将它与您的3D网格关联起来,使它成为一个OnClick代理。

unity移动物体快捷键_unity鼠标拖拽物体移动_unity 点击物体拖动

5. 在OnClick事件函数中,获得鼠标点击的位置,并使用射线投射方法将该位置转换为游戏世界坐标。

6. 使用Transform组件的MoveTo函数将您想要移动的物体移动到该游戏世界坐标。

以下是示例代码:


using UnityEngine;
public class ClickToMove : MonoBehaviour
{
    private void OnMouseDown()
    {
        Vector3 mousePosition = Input.mousePosition;
        mousePosition.z = Camera.main.transform.position.z;
        Vector3 worldPosition = Camera.main.ScreenToWorldPoint(mousePosition);
        transform.position = worldPosition;
    }
}

这个代码假定您只有一个相机人物立绘,如果您有多个相机,您需要使用相应的相机来执行ScreenToWorldPoint转换。

文章来源:http://www.5axxw.com/questions/simple/y8c4wa