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