实现物体在平行于屏幕的平面上移动
public class TestFanwei : MonoBehaviour
{
//屏幕发射的射线
Ray ray;
//射线检测到的物体信息
RaycastHit hitInfo;
//检测到物体的屏幕坐标
Vector3 screenPoint;
void Update()
{
//如果点击了鼠标左键
if (Input.GetMouseButton(0))
{
//就发射一条射线
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//射线检测到了Pieces层的物体
if (Physics.Raycast(ray,out hitInfo,1000,1<<LayerMask.NameToLayer("Pieces")))
{
//将物体的世界坐标转为屏幕坐标
screenPoint = Camera.main.WorldToScreenPoint(hitInfo.transform.position);
//取出物体的z轴值
float z = screenPoint.z;
//将鼠标的屏幕坐标转为物体的世界坐标
Vector3 mousePos = Input.mousePosition;
mousePos.z = z;
hitInfo.transform.position = Camera.main.ScreenToWorldPoint(mousePos);
}
}
}
}