Unity 物體在屏幕內跟隨鼠標移動


由於是在屏幕內跟隨鼠標移動,我們知道,在屏幕上鼠標位置的Z坐標的值為0,所以我們要將物體的位置坐標Z賦值給鼠標的Z;

 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 public class Follow: MonoBehaviour {
 5         Vector3 world;//物體要移動到的位置 (世界坐標系)
 6         float moveSpeed=0;//物體移動速度
 7 
 8         void Update(){
 9                 Vector3 targetposition=Camera.main.WorldToScreenPoint(this.transform.position);//將物體的世界坐標轉換為屏幕坐標
10                 
11                  Vector3 mouseposition=Input.mousePosition;//鼠標在屏幕上的位置坐標
12 
13                  if(Input.GetMouseButton(0)){
14                          mouseposition.z=targetposition.z;
15                          
16                           //world=Camera.main.ScreenToWorldPoint(mouse position);//這種情況下 會有穿透現象
17 
18                           world.x=Camera.main.ScreenToWorldPoint(mouse position).x;
19                           world.z=Camera.main.ScreenToWorldPoint(mouse position).z;
20                           world.y=this.transform.postion.y;
21 
22                           moveSpeed=3;
23                  }
24 
25                  if(this.transform.position==world){//如果物體移動到了鼠標指定的位置 將移動速度設為0
26                            moveSpeed=0;
27                   }
28 
29                   this.transform.LookAt(world);//物體朝向鼠標對應的位置 (此時的位置為世界坐標系)
30                    this.transform.Translate(Vector3.forward*moveSpeed*Time.deltaTime);
31      }
32 }    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM