Я хочу повернуть своего игрока в игре единства.Я пытаюсь заставить это работать, используя несколько методов, таких как 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