在游戏中我们经常会鼠标点击后人物就会移动要鼠标点击的位置,在unity3d要实现这样的效果需要先获得鼠标点击处的世界坐标位置,然后移动到这个位置。
工具/原料
unity3d
方法/步骤
1
打开unity3d创建一个立方体。
2
接着创建一个'Move'脚本。
3
定义一个finish保存是否移动状态,pos目标位置,获得鼠标点击处的地面Terrain的世界坐标。if(Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit = new RaycastHit(); if (Physics.Raycast(ray, out hit)) { if (hit.collider.name == 'Terrain') { pos = hit.point; finish = false; } } }
4
通过以下的脚本移动到鼠标点击的pos位置。 if(!finish) { Vector3 offset = pos - transform.position; transform.position += offset.normalized * 20 * Time.deltaTime; if(Vector3.Distance(pos, transform.position)<1f) { transform.position = pos; finish = true; } }
5
把move脚本放在物体上面。
6
运行游戏,然后鼠标点击地面,物体会自动移动到鼠标点击的位置。
注意事项
如果物体部分隐藏地面,或者漂浮起来,可以通过设置pos的y值调整。