Не могу разобраться с input system. Как сделать движение без физики unity?

Суть такова, что не могу разобраться в поворотах. Движение объекта назначил на w и запихнул в FixedUpdate(), который висит на самом обьекте. Теперь надо реализовать поворот по кнопкам. То есть поворачивать обьект по кругу при нажатии на D (или на S, если вертеть в противоположную сторону). С этим если разобраться не так сложно. То есть вопрос посложнее, как можно реализовать энерцию обьекта, не применяя к нему Rigidbody2D, (и не используя, соответственно, addForce()). Также хотелось бы попробовать реализовать логику без родительского класса MonoBehavior, надо ли вообще так делать и в чём плюсы? Пол инета перерыл, но ответа на эти вот вопросы так и не нашёл, к сожалению.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity;
using UnityEngine.InputSystem;


public class Control : MonoBehaviour
{
    private Actions inputs;
    private Vector2 vector, rotate;

    public void Awake()
    {
        inputs = new Actions();
    }
    public void Start()
    {
        inputs.Enable();
    }

    public void OnDisable()
    {
        inputs.Disable();
    }

    public void FixedUpdate()
    {
        this.gameObject.transform.position += new Vector3(vector.x * 0.1f, vector.y * 0.1f, 0);
        this.gameObject.transform.Rotate(new Vector3(0,0,rotate.x*rotate.y));
    }

    public void OnMove(InputAction.CallbackContext context)
    {
        vector = context.ReadValue<Vector2>();
    }
    public void OnRotate(InputAction.CallbackContext context)
    {
        rotate = context.ReadValue<Vector2>();
    }
}


Вот кусок кода, в котором реализовано движение вперёд, что там ещё есть за муть, я уже не знаю. Пытался допилить в 4 утра, но уже не мог)
  • Вопрос задан
  • 678 просмотров
Решения вопроса 1
Для плавности можно использовать Mathf.Lerp, о нём можно почитать тут: https://docs.unity3d.com/ScriptReference/Mathf.Ler...
Про MonoBehaviour: при работе в Unity от него полностью никак не избавиться, ведь на объекты навешиваются только скрипты, класс в которых унаследован от MonoBehaviour. Есть, правда, ECS плагины (интересная штука, о ней можно почитать в гугл. От себя рекомендую LeoECS), но даже там для инициализации этого всего используется "бехевиор", так что, как было сказано выше, от него не избавиться
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы