我制作了Canvas和TextMeshPro,然后制作了这个立方体对象的子对象。
GameObject myCanvas = new GameObject();
myCanvas.name = "TestCanvas";
myCanvas.AddComponent<Canvas>();
Canvas canvas = myCanvas.GetComponent<Canvas>();
canvas.renderMode = RenderMode.WorldSpace;
GameObject myText = new GameObject();
myText.name = "wibble";
myText.transform.parent = myCanvas.transform;
myText.AddComponent<TextMeshPro>();
TextMeshPro text = myText.GetComponent<TextMeshPro>();
text.text = "Ta-dah!";
text.fontSize = 12;
//text.font = (Font)Resources.Load("MyFont");
myCanvas.transform.parent = cube.transform; // attache canvas as child of cube.但是,到目前为止,当多维数据集轮回文本时,它仍然有效。
我想保持文字始终略高于字符沿Y轴,即使当旋转发生。
我该怎么做??
发布于 2022-01-02 15:58:32
我会在画布游戏对象中添加一个Billboard组件来处理旋转,并使画布始终面向摄像机。
公告牌部分:
使用UnityEngine;
public class Billboard : MonoBehaviour {
public Transform cam;
private void Start() {
cam = Camera.main.transform;
}
void LateUpdate() {
transform.LookAt(transform.position + cam.forward);
}
}使用myCanvas.AddComponent<Billboard>();添加组件,整个脚本如下:
GameObject myCanvas = new GameObject();
myCanvas.name = "TestCanvas";
myCanvas.AddComponent<Canvas>();
Canvas canvas = myCanvas.GetComponent<Canvas>();
canvas.renderMode = RenderMode.WorldSpace;
myCanvas.AddComponent<Billboard>(); //component added here
GameObject myText = new GameObject();
myText.name = "wibble";
myText.transform.parent = myCanvas.transform;
myText.AddComponent<TextMeshPro>();
TextMeshPro text = myText.GetComponent<TextMeshPro>();
text.text = "Ta-dah!";
text.fontSize = 12;
//text.font = (Font)Resources.Load("MyFont");
myCanvas.transform.parent = transform; // attache canvas as child of cube.编辑:旋转立方体的图像与画布正面进入照相机。

https://stackoverflow.com/questions/70557147
复制相似问题