using UnityEngine; using System.Collections; public class hero : MonoBehaviour { private bool isMouseDown = false; private Vector3 lastMousePosition=Vector3.zero; void Update () { PlayerControler(); } public void PlayerControler() { //将像素位置转换成世界坐标轴的位置 //Camera.main.ScreenToWorldPoint(Input.mousePosition); //检测鼠标是否按下 if (Input.GetMouseButtonDown(0)) { isMouseDown = true; print(isMouseDown); } if (Input.GetMouseButtonUp(0)) { isMouseDown = false; lastMousePosition=Vector3.zero;//将最后一次点击的位置清零 } if (isMouseDown) { if (lastMousePosition!=Vector3.zero) { //得到点击位置与飞机停留位置的偏移值 Vector3 offset = Camera.main.ScreenToWorldPoint(Input.mousePosition) - lastMousePosition; //当前脚本所挂载的物体的位置就等于偏移值+原先停留的位置实现移动 transform.position = offset +transfom.position; } //让停留位置等于点击位置 lastMousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); print(lastMousePosition); CheckPosition(); } } //检测物体边界的方法 public void CheckPosition() { Vector3 pos=transform.position; float x = pos.x; float y = pos.y; if (x<=-2.8f) { x = -2.8f; } if (x >= 2.8f) { x = 2.8f; } if (y <= -5.1f) { y = -5.1f; } if (y >= 5.1f) { y = 5.1f; } transform.position=new Vector3(x,y,0); } }