You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Unity AR中放置于现实世界的GameObject的位置旋转缩放详情?

如何在Unity AR中获取放置对象的位置、旋转、缩放并转为文本格式

当然可以实现。在Unity中,放置到现实世界的AR游戏对象本质上还是普通的GameObject,你可以直接访问它的Transform组件来获取位置、旋转、缩放数据,再将这些数值格式化为文本。

获取并格式化位置信息

位置数据存储在Transform.position中,这是一个Vector3类型的变量,包含x、y、z三个轴的数值。你可以直接提取每个轴的值,再拼接成文本:

// 假设你已经获取到了放置后的目标GameObject
GameObject arObject = /* 你的AR对象引用 */;
Vector3 pos = arObject.transform.position;
string positionText = $"位置:X={pos.x:F2}, Y={pos.y:F2}, Z={pos.z:F2}";

这里用F2格式化保留两位小数,你可以根据需求调整精度。

获取并格式化旋转信息

旋转数据通常用Transform.eulerAngles来获取(欧拉角,更直观),同样是Vector3类型,对应三个轴的旋转角度:

Vector3 rot = arObject.transform.eulerAngles;
string rotationText = $"旋转:X={rot.x:F1}, Y={rot.y:F1}, Z={rot.z:F1}";

注意:Unity中旋转也可以用四元数Transform.rotation,但欧拉角更适合转为可读文本。

获取并格式化缩放信息

缩放数据在Transform.localScale中(AR场景中一般使用局部缩放),同样提取三个轴的值:

Vector3 scale = arObject.transform.localScale;
string scaleText = $"缩放:X={scale.x:F2}, Y={scale.y:F2}, Z={scale.z:F2}";

整合所有信息

你可以把这三部分文本合并成一个完整的字符串,用于UI显示、日志输出或者保存:

string allTransformText = $"{positionText}\n{rotationText}\n{scaleText}";
// 示例:输出到控制台
Debug.Log(allTransformText);
// 示例:显示在UI文本组件上
// GetComponent<Text>().text = allTransformText;

注意事项

  • 确保你已经正确获取到AR放置后的GameObject引用,比如在AR Foundation的ARRaycastManager回调中拿到生成的对象。
  • 位置数值是基于Unity世界坐标系的,对应AR会话中的现实世界空间定位。

内容的提问来源于stack exchange,提问作者P D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 07:17:13