Страница 1 из 1

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

СообщениеДобавлено: 28 авг 2018, 08:44
ElmarGod
Всем привет, суть в том что есть персонаж и анимация ходьбы.Есть анимация только движения вперед.Мне нужно так, например: нажимаем на 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);
}


}

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

СообщениеДобавлено: 28 авг 2018, 08:55
DimaJoke
Попробуй реализовать вращение по оси 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
правда в видео немного по другому.

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

СообщениеДобавлено: 28 авг 2018, 09:58
ilka
дальше разберёшься... думаю

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

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

СообщениеДобавлено: 28 авг 2018, 10:11
DimaJoke
ilka писал(а):
дальше разберёшься... думаю

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


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

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


Я просто донёс основную мысль)