Ang*_*lin 0 c# unity-game-engine
当我自由移动相机时,我试图在 Unity UI 中的立方体上显示文本。画布设置为“屏幕空间 - 相机”模式,我在检查器中设置了相机属性。我还在相机上附加了一个鼠标移动脚本。
我的问题是文本几乎没有移动,并且似乎忽略了立方体相对于相机视口的位置。这是我的代码:
public class UpdateUiMarker : MonoBehaviour {
public RectTransform element;
public Transform cube;
public RectTransform canvas;
// Update is called once per frame
void LateUpdate () {
Vector2 screenPos = Camera.main.WorldToScreenPoint(cube.position);
Vector2 localPos;
RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas, screenPos, Camera.main, out localPos);
element.localPosition = localPos;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
首先,您可以让world相机查看cube3D 对象,然后其他相机ui在剔除 3D 对象的同时查看您的 UI 元素。最后,canvasCanvas 放置您的 UI 元素。然后,你可以这样编码:
var screen = world.WorldToScreenPoint(cube.transform.position);
screen.z = (canvas.transform.position - ui.transform.position).magnitude;
var position = ui.ScreenToWorldPoint(screen);
element.position = position; // element is the Text show in the UI.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14904 次 |
| 最近记录: |