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