2017-04-25 38 views
1

我正在尋找一個可以根據距離相機的距離保持我的文本網格大小的自由度。我希望無論我的相機離文本網格近或遠,我的文本總是以相同的寬度和高度顯示。我曾經試過,但問題仍然存在某種程度上相機距離相對文本網格大小

float size = (activeCam.transform.position - transform.position).magnitude; 
      newLocalScale = new Vector3(size/108, size/108, size/108); 
      transform.localScale = newLocalScale; 

enter image description here

回答

0

利用世界到屏幕空間和屏幕到世界空間的方法來保持所有文本的大小網格,此代碼不變(附加腳本當然所有文字網格對象):

public Camera activeCam; 
public float sizeOfText = 20; 

void Update() { 
    Vector3 textScreenSpace = activeCam.WorldToScreenPoint(transform.position); 
    Vector3 adjustedScreenSpace = new Vector3(textScreenSpace.x + sizeOfText, textScreenSpace.y, textScreenSpace.z);   
    Vector3 adjustedWorldSpace = activeCam.ScreenToWorldPoint(adjustedScreenSpace); 
    transform.localScale = Vector3.one * (transform.position - adjustedWorldSpace).magnitude; 
    transform.rotation = activeCam.transform.rotation;  
} 

編輯:還有另一種方式來獲得相同的結果,使用Plane,它是在統一維基 - http://wiki.unity3d.com/index.php/CameraRelativeScale

+0

沒有男人的大小還是不一樣 –

+0

忘了補充一行以保持文本網格總是平行於相機,我的不好。 – Galandil