【问题标题】:Unity gyroscope default positionunity 陀螺仪默认位置
【发布时间】:2015-04-27 14:43:25
【问题描述】:

我有一个关于陀螺仪默认位置的问题。我在女巫中创建了一个游戏,你通过移动手机(使用陀螺仪)将太空船向前、向后、向左和向右移动。我的问题是我必须像图 1 那样水平握住手机。如果我像图 2 那样像往常一样握住手机(与地面成约 60 度),船就会沉没。有谁知道如何更改陀螺仪的默认位置,这样我就可以正常拿着手机和操纵船了?如果我的手机保持在 60 度,我希望船静止。否则,它会移动到标题方向。

我的代码:

using UnityEngine;
using System.Collections;

[System.Serializable]
public class Boundaryy
{
    public float xMin, xMax, zMin, zMax;
}

public class PlayerControll1 : MonoBehaviour {
    public float speed;
    public float tilt;
    public Boundaryy boundary;

    // Use this for initialization
    void Start () {
        Input.gyro.enabled = true;
        Screen.sleepTimeout = SleepTimeout.NeverSleep;
         }

     void FixedUpdate() {

        float xi = Input.gyro.userAcceleration.x;
        float yi = Input.gyro.userAcceleration.y;


        Vector3 movement = new Vector3 (xi, 0.0f, yi);
        rigidbody.velocity = movement * speed;

        rigidbody.position = new Vector3 
            (
                Mathf.Clamp (rigidbody.position.x, boundary.xMin, boundary.xMax), 0.0f, 
                Mathf.Clamp (rigidbody.position.z, boundary.zMin, boundary.zMax)
                );

        rigidbody.rotation = Quaternion.Euler (0.0f, 0.0f, rigidbody.velocity.x * -tilt);

    }   
}

如果有人知道如何做到这一点,请帮助! :)

【问题讨论】:

    标签: c# unity3d gyroscope accelerator


    【解决方案1】:

    刚刚解决了一个类似的问题,虽然我希望你现在已经解决了这个问题我想我会分享我的解决方案以防其他人偶然发现这个问题......

    在您开始游戏时,您只需要记录一个参考点。然后对于每次涉及当前加速度的计算,减去初始参考加速度值。这将为您提供调整后的加速度值,同时考虑到玩家握持设备的方式。

    public class PlayerControll1 : MonoBehaviour {
        ....
        public Vector3 baseAcceleration;
    
        // Use this for initialization
        void Start () {
            ...
            baseAcceleration = Input.gyro.userAcceleration;
        }
    
        void FixedUpdate() {
    
            float xi = Input.gyro.userAcceleration.x - baseAcceleration.x;
            float yi = Input.gyro.userAcceleration.y - baseAcceleration.y;
    
            ...
        }   
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-05
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多