Vector3 world;//物体要移动到的位置 (世界坐标系)
float moveSpeed = 0;//物体移动速度 void Update() { //将物体的世界坐标转换为屏幕坐标 Vector3 targetposition = Camera.main.WorldToScreenPoint(this.transform.position); //鼠标在屏幕上的位置坐标 Vector3 mouseposition = Input.mousePosition; if (Input.GetMouseButton(0)) { mouseposition.z = targetposition.z; //world=Camera.main.ScreenToWorldPoint(mouseposition); //这种情况下 会有穿透现象 world.x = Camera.main.ScreenToWorldPoint(mouseposition).x; world.z = Camera.main.ScreenToWorldPoint(mouseposition).z; world.y = this.transform.position.y; moveSpeed = 3; } if (this.transform.position == world) { //如果物体移动到了鼠标指定的位置 将移动速度设为0 moveSpeed = 0; } this.transform.LookAt(world);//物体朝向鼠标对应的位置 (此时的位置为世界坐标系) this.transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime); }