Вращение объекта в зависимости от положения оси гироскопа датчика гироскопа - PullRequest
0 голосов
/ 13 февраля 2019

Я хочу повернуть своего игрока в игре единства.Я пытаюсь заставить это работать, используя несколько методов, таких как rotateto или slurp, которые должны вращаться в направлении заданного угла.Однако я не совсем уверен, что они должны делать, и правильно ли я их использую.

Я бы хотел, чтобы камера вращалась в зависимости от устройства, наклоненного за пределы границы, с которой игрок изначальноначинает игруТогда для внешней границы мне бы хотелось, чтобы чем дальше наклонялось устройство, тем быстрее вращался персонаж в этом направлении.

Однако мне удалось повернуть персонаж только на угол, точнотак же, как положение устройства. Это моя попытка сделать вращение, и я знаю, что это может быть не самым эффективным, но я врезался в стену и не могу никуда добраться.

private void Start() {
    PlayerRotation = Player.transform.rotation;
    if (SystemInfo.supportsGyroscope) {
        GyroStart();
        startrotation = Quaternion.Euler(Gyro.attitude.eulerAngles);
        Debug.Log("Gyro Enabled");
        Debug.Log("Start Rotation: " + startrotation);
    }
    else {
        Debug.Log("No Gyro Detected");
    }
}
private void Update()
{
    mappedRotation = Quaternion.Euler(0.0f,0.0f,ExtentionMethods.Remap((Input.gyro.attitude.eulerAngles.z - startrotation.z), 0,360,0,180));
    TargetRotation = mappedRotation * TargetRotation;
    Debug.Log("Target Rotation:" + TargetRotation);
    if (mappedRotation.eulerAngles.z > 15f)
    {
        PlayerRotation = Quaternion.Slerp(PlayerRotation, TargetRotation, Time.deltaTime);
        Debug.Log("Positive");
    }
    else if (mappedRotation.eulerAngles.z>155f)
    {
        TargetRotation = Quaternion.Inverse(TargetRotation);
        PlayerRotation = Quaternion.Slerp(PlayerRotation, TargetRotation, Time.deltaTime);
        Debug.Log("Negative");
    }
    else Debug.Log("Dead Zone");
}

Следовательно,вопрос, который я хотел бы знать, как решить, почему мой персонаж не вращается и если я правильно использую euler? Thankyou

...