2017-04-25 7 views
1

カメラからの距離に応じてテキストのメッシュサイズを維持できるfromulaを探しています。私のカメラがテキストメッシュに近いか遠いかに関わらず、私のテキストはいつも同じ幅と高さで表示されます。私はこれを試してみましたが、問題はまだあるカメラの距離の相対的なテキストメッシュのサイズ

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;  
} 

編集: - http://wiki.unity3d.com/index.php/CameraRelativeScale

同じ結果を得るための別の方法は Planeを使用して、あります、それはユニティウィキにあります
+0

男のサイズはまだ同じではありません –

+0

テキストメッシュを常にカメラと平行に保つために行を追加するのを忘れました。 – Galandil

関連する問題