Суббота, 23 Ноября 2024, 05:01

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
HoneyДата: Пятница, 04 Декабря 2015, 15:45 | Сообщение # 1 | Тема: Вопрос-[ответ] по Unity
уже был
Сейчас нет на сайте
Всем привет) Нужна небольшая помощь. Делаю передвижение объекта и необходимо сделать наклон его на бок при движении влево либо вправо
Код

public class PlayerController : MonoBehaviour {
    
    public float speed;
    public float tilt;
    public Transform tr;
    void Start(){
          tr = GetComponent<Transform> ();
    }

  void FixedUpdate() {

         float moveHorizontal = Input.GetAxis("Horizontal") * Time.deltaTime * speed;
         float moveVertical = Input.GetAxis("Vertical")* Time.deltaTime * speed;

         Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);

         tr.position += movement;
         tr.rotation = Quaternion.Euler (0.0f, 0.0f, Mathf.Clamp(tr.position.x*-tilt,-1.0f,1.0f));
    }
}

Вращение было сделано с помощью Euler, но оно не было ничем ограниченно, при попытке ограничения через Mathf.Clamp вращение происходит пересекая лишь определенную позицию и не возвращается в исходное состояние. Подскажите как можно поворачивать объект лишь на небольшое значение и после прекращения движения вдоль данной оси возвращать его в обычное состояние.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг