我试图统一创建一个 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 指南针,但针无法与指南针的主体一起旋转的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D Shader入门指南(转)

3D图形学理论入门指南(转)

如何创建标准无边框按钮(如提到的设计指南中)?

猫都能学会的Unity3D Shader入门指南

3D图形学理论入门指南

如何一次性为所有文本添加语音指南?