Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 相机距离相对文本网格大小_C#_Unity3d - Fatal编程技术网

C# 相机距离相对文本网格大小

C# 相机距离相对文本网格大小,c#,unity3d,C#,Unity3d,我正在搜索一个fromula,该fromula可以根据与相机的距离保持我的文本网格大小。我希望无论我的相机离文本网格近还是远,我的文本总是以相同的宽度和高度显示。我已经试过了,但问题仍然存在 float size = (activeCam.transform.position - transform.position).magnitude; newLocalScale = new Vector3(size / 108, size / 108, size / 108);

我正在搜索一个fromula,该fromula可以根据与相机的距离保持我的文本网格大小。我希望无论我的相机离文本网格近还是远,我的文本总是以相同的宽度和高度显示。我已经试过了,但问题仍然存在

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

使用“世界到屏幕空间”和“屏幕到世界空间”方法,使用此代码保持所有文本网格的大小不变(当然,将脚本附加到所有文本网格对象):


编辑:还有另一种方法可以获得相同的结果,使用Unity Wiki上的
平面-

忘记添加线以保持文本网格始终与摄影机平行,我的错。
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;      
}