屏幕2D的鼠标坐标( x , y , 0 )转换成鼠标在那一点时的空间坐标
先把你的人物的Transform放入 character
var character : Transform;
创建一个相机
var mainCamera : Camera;
然后做一个平面
var playerMovementPlane : Plane;
function Awake () {
然后把mainCamera设为主相机
mainCamera = Camera.main;
然后把NEW出这个平面并且把这个平面放到角色上
playerMovementPlane = new Plane (character.up, character.position);
}
function Update () {
宣告屏幕2D的鼠标点
var cursorScreenPosition : Vector3 = Input.mousePosition;
宣告空间中的鼠标点,这里要进行一些转换就可以得到了 mainCamera是你的主相机
var cursorWorldPosition : Vector3 = ScreenPointToWorldPointOnPlane (cursorScreenPosition, playerMovementPlane, mainCamera);
}
public static function ScreenPointToWorldPointOnPlane (screenPoint : Vector3, plane : Plane, camera : Camera) : Vector3 {
//将鼠标的屏幕位置转换成空间中的射线 ray = 射线
var ray : Ray = camera.ScreenPointToRay (screenPoint);
// 找出射线与平面相交
return PlaneRayIntersection (plane, ray);
}
public static function PlaneRayIntersection (plane : Plane, ray : Ray) : Vector3 {
var dist : float;
//光线投射 一条射线和平面相交。
plane.Raycast (ray, dist);
//获取点 返回沿着射线在distance距离单位的点。
return ray.GetPoint (dist);
}
浙公网安备 33010602011771号