@Gioo12x

Где ошибка в коде поворота?

Не могу найти ошибку в коде поворота. Объект должен поворачивается между углами z>-90 z<90 на угол 0 z градусов, а между z<-90 z>90 на угол 180. С вторым условием он справляется, а с первым когда объект находится между -90 и 0 то он поворачивается на угол z=180 а так быть не должно. В чём ошибка?
вот код;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Rotation_Swap : MonoBehaviour

{
    float  smooth= 5.0f;
 
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        Vector3 LocalScale = Vector3.one;
        if (transform.eulerAngles.z < 90 )
        {
            Quaternion target = Quaternion.Euler(0, 0, 0);
            transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * smooth);
            LocalScale.y = +1f;
        }
        else if (transform.eulerAngles.z > -90 )
        {
            Quaternion target = Quaternion.Euler(0, 0, 180);
            transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * smooth);
            LocalScale.y = -1f;
        }
            transform.localScale = LocalScale;


    }
}
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 1
@sewar
void Update()
{
    Vector3 LocalScale = Vector3.one;
    if (transform.eulerAngles.z < 90 )
    {
        transform.Rotate(0, 0, 0);
        LocalScale.y = +1f;
    }
    else if (transform.eulerAngles.z > -90 )
    {
        transform.Rotate(0, 0, 180);
        LocalScale.y = -1f;
    }
    transform.localScale = LocalScale;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы