Пишу код для игры.В ней есть метла,которую нужно двигать вправо-влево нажатием кнопок.Но мне ещё надо поворачивать при этом родительский объект,а так как я использую Quaternion.Euler ,то 0 градусов относительно оси y не поворачиваются вокруг самого объекта,а поворачиваются вокруг мировой оси y.
Если короче: Персонаж поворачивается,метла поворачивается относительно его(то есть перемещается),но относительно мира при нажатии кнопки "e" она выравнивается по оси y
Вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BroomController : MonoBehaviour
{
private GameObject broom;
private bool InHand = true;
// Start is called before the first frame update
void Start()
{
broom = GameObject.Find("Broom");
Cursor.visible = false;
}
// Update is called once per frame
void Update()
{
if (Input.GetKey("q") || Input.GetKey("e"))
{
if (Input.GetKey("q"))
{
Quaternion fromRT = broom.transform.rotation;
Quaternion toRT = Quaternion.Euler(0, 0, 20);
broom.transform.rotation = Quaternion.Lerp(fromRT, toRT, Time.deltaTime * 10f);
}
if (Input.GetKey("e"))
{
Quaternion fromRT = broom.transform.rotation;
Quaternion toRT = Quaternion.Euler(0, 0, -20);
broom.transform.rotation = Quaternion.Lerp(fromRT, toRT, Time.deltaTime * 10f);
}
}
}
}