Поворот персонажа

Программирование на Юнити.

Поворот персонажа

Сообщение ElmarGod 28 авг 2018, 08:44

Всем привет, суть в том что есть персонаж и анимация ходьбы.Есть анимация только движения вперед.Мне нужно так, например: нажимаем на D он поворачивается вправо, нажимаем на A он поворачивается влево и т.д. Скажите как это сделать?

Вот управление и как используется анимация:

{
Animator animator;
CharacterController charControl;
public float walkSpeed = 5f;


void Awake()
{
charControl = GetComponent<CharacterController>();
animator = GetComponent<Animator> ();
}

void Start()
{

}

void Update()
{
MovePlayer();
}

void MovePlayer()
{
float horiz = Input.GetAxis("Horizontal");
float vert = Input.GetAxis("Vertical");

Vector3 moveDirSide = transform.right * horiz * walkSpeed;
Vector3 forward = transform.forward * vert * walkSpeed;

charControl.SimpleMove(forward);
charControl.SimpleMove(moveDirSide);

if(vert == 0)
{
animator.SetBool("Walk", false);
}

if(vert >= 0.1f)
{
animator.SetBool("Walk", true);
}


}
ElmarGod
UNец
 
Сообщения: 7
Зарегистрирован: 09 авг 2018, 10:25

Re: Поворот персонажа

Сообщение DimaJoke 28 авг 2018, 08:55

Попробуй реализовать вращение по оси Z

Но делать это надо с помощью Quaternion.

Примерно вот так
Синтаксис:
Используется csharp
obg.transform.rotation.z = Quaternion.Euler(0, 0, 40);
 


дальше разберёшься... думаю..

Если что вот статья на хабре- https://habr.com/post/183908/
+ Видео https://www.youtube.com/watch?v=y7ap2Ww-ueA
правда в видео немного по другому.
Что бы повзрослеть, человек должен преодолеть ошибки юности.

Поэтому я снова здесь..
Аватара пользователя
DimaJoke
UNITрон
 
Сообщения: 293
Зарегистрирован: 12 авг 2018, 18:59
Откуда: Ульяновск
  • Сайт

Re: Поворот персонажа

Сообщение ilka 28 авг 2018, 09:58

дальше разберёшься... думаю

Думаю нет, так как вы присваиваете целый кватерион координате z.
ilka
UNIверсал
 
Сообщения: 478
Зарегистрирован: 21 авг 2015, 19:32

Re: Поворот персонажа

Сообщение DimaJoke 28 авг 2018, 10:11

ilka писал(а):
дальше разберёшься... думаю

Думаю нет, так как вы присваиваете целый кватерион координате z.


ну я же сказал
примерно так:

дальше можно сделать типо
Синтаксис:
Используется csharp
obg.transform.rotation = Quaternion.Euler(0, 0, 40);
 


Я просто донёс основную мысль)
Что бы повзрослеть, человек должен преодолеть ошибки юности.

Поэтому я снова здесь..
Аватара пользователя
DimaJoke
UNITрон
 
Сообщения: 293
Зарегистрирован: 12 авг 2018, 18:59
Откуда: Ульяновск
  • Сайт


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8