我试图统一创建一个 3d 指南针,但针无法与指南针的主体一起旋转
Posted
技术标签:
【中文标题】我试图统一创建一个 3d 指南针,但针无法与指南针的主体一起旋转【英文标题】:Am trying to create a 3d compass in unity, but the needle fails to rotate along with the body of the compass 【发布时间】:2021-10-09 18:00:04 【问题描述】:我试图统一创建一个 3d 指南针,但指针无法与指南针主体一起旋转/倾斜。指针准确地指向北方的“空游戏对象”。但唯一的问题是它无法与指南针主体一起倾斜/旋转(向上或向下)。下面是d脚本
public class AmpCompass : ResetObject
public Transform target, compassNeedle;
public float speed = 1.0f;
private void Start()
protected override void ObjectIsGrabbed()
base.ObjectIsGrabbed();
private void Update()
Vector3 needleDir = new Vector3(target.position.x, compassNeedle.position.y, target.position.z);
compassNeedle.LookAt(needleDir);
【问题讨论】:
【参考方案1】:虽然我不太了解你的游戏对象的结构,但我的理解是你想让这个指南针在水平面上旋转。
但是,如果你想手动形成一个 Vector3 并进行这个变换来查看这个坐标,你为什么选择保持它的'Y coordinate
?因为我猜你想维护Z coordinate
,因为冻结Horizontal Level
,这意味着你应该在Update()方法中这样做:
Vector3 needleDir = new Vector3(target.position.x, target.position.y, compassNeedle.position.z);
compassNeedle.LookAt(needleDir);
【讨论】:
以上是关于我试图统一创建一个 3d 指南针,但针无法与指南针的主体一起旋转的主要内容,如果未能解决你的问题,请参考以下文章