После поворота gameobje с помощью джойстика выполните сброс поворота. коррекция поворота джойстика

#unity3d #rotation #joystick

#unity-игровой движок #вращение #джойстик

Вопрос:

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

 public class MyJoystick : MonoBehaviour
{
    public Joystick joystick;
    public Joystick joystickRot;
    public float moveSpeed;
    Quaternion targetRotation;
    Rigidbody rigidbody;


    // Start is called before the first frame update
    void Start()
    {
        rigidbody = GetComponent<Rigidbody>();

    }

    // Update is called once per frame
    void Update()
    {
        // var rigidbody = GetComponent<Rigidbody>();


        rigidbody.velocity = new Vector3(joystick.Horizontal * moveSpeed, rigidbody.velocity.y, joystick.Vertical * moveSpeed);

        // this is problem
        // don't reset the rotate when joysticki is released.

        transform.eulerAngles = new Vector3(transform.eulerAngles.x, Mathf.Atan2(joystickRot.Horizontal
              , joystickRot.Vertical) * Mathf.Rad2Deg, transform.eulerAngles.z);
    }
}
  

Ответ №1:

‘joystickRot’ вернет нули, если не нажимать ни в каком другом направлении, поэтому ваш поворот сбрасывается, поэтому вы должны сначала проверить, действительно ли используется джойстик, прежде чем применять значения к вашему повороту преобразования GameObjects.

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

Кстати, у вас есть ссылки на два объекта джойстика, но я полагаю, что вам нужен только один.