Unity3D 一些基礎的3D圖形學算法


原創文章如需轉載請注明:轉載自 脫莫柔Unity3D學習之旅 QQ群:【Unity3D(AR/VR) 334163814】【Unity3D(游戲) 119706192】 本文鏈接地址:Unity3D 一些基礎的3D圖形學算法

 

1..A點正前方,10米位置的坐標點

代碼:
[csharp]  view plain  copy
 
 
 
  在CODE上查看代碼片派生到我的代碼片
  1. public Transform A;  
  2. public Transform Z;  
  3.   
  4.   
  5. void Start ()   
  6. {  
  7.     正前方();  
  8.     Debug.Log("Distance:" + Vector3.Distance(A.transform.position, Z.transform.position));  
  9. }  
  10.   
  11. void 正前方()  
  12. {  
  13.     Z.transform.position = A.transform.position + Vector3.forward * 10f;  
  14. }  
運行結果:

2.A點前方Y軸45°,10米位置的坐標點

直接上代碼:
[csharp]  view plain  copy
 
 
 
  在CODE上查看代碼片派生到我的代碼片
  1. void 斜前方()  
  2. {  
  3.     Quaternion q = Quaternion.Euler(0, 45, 0);  
  4.     Z.transform.position = A.transform.position + q * Vector3.forward * 10f;  
  5. }  

運行結果:

3.A點到B點方向,10米位置的坐標點

柱子是B點。
這個例子用3D視角來做。
代碼:
[csharp]  view plain  copy
 
 
 
  在CODE上查看代碼片派生到我的代碼片
  1. void 到B方向正前方()  
  2. {  
  3.     Vector3 方向 = (B.transform.position - A.transform.position).normalized;  
  4.     Quaternion q = Quaternion.LookRotation(方向);  
  5.     Z.transform.position = A.transform.position + q * Vector3.forward * 10f;  
  6.   
  7.     Debug.Log("Distance A-B:" + Vector3.Distance(A.transform.position, B.transform.position));  
  8. }  
運行結果:

4.A點到B點方向Y軸偏移45°,10米位置的坐標點

這個例子將B點與A點放在了同一高度,繼續使用2D視角。
代碼:
[csharp]  view plain  copy
 
 
 
  在CODE上查看代碼片派生到我的代碼片
  1. void 到B方向斜前方()  
  2. {  
  3.     Vector3 方向 = (B.transform.position - A.transform.position).normalized;  
  4.     Quaternion q = Quaternion.LookRotation(方向) * Quaternion.Euler(0,45,0);  
  5.     Z.transform.position = A.transform.position + q * Vector3.forward * 10f;  
  6.   
  7.     Debug.Log("Distance A-B:" + Vector3.Distance(A.transform.position, B.transform.position));  
  8. }  
運行結果:


免責聲明!

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



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