Тут кто-то делал на юнити игры. Надеюсь что они еще на форуме остались, ибо мне реально больше негде спросить.
Нужно сделать чтобы ноги поворачивались(делаю игру с видом сверху). Тазовой кости в модели нет, есть только ноги. Через transform.rotation все это плохо работает. Решил сделать через Mecanim(т.к. скелет я решил делать Humanoid):
if(Input.GetAxis("Horizontal"))
{
ac.SetIKRotationWeight(AvatarIKGoal.LeftFoot, 1);
ac.SetIKRotation(AvatarIKGoal.LeftFoot, Quaternion.LookRotation(cam.transform.right*Input.GetAxis("Horizontal")));
ac.SetIKRotationWeight(AvatarIKGoal.RightFoot, 1);
ac.SetIKRotation(AvatarIKGoal.RightFoot, Quaternion.LookRotation(cam.transform.right*Input.GetAxis("Horizontal")));
}
if(Input.GetAxis("Vertical"))
{
ac.SetIKRotationWeight(AvatarIKGoal.LeftFoot, 1);
ac.SetIKRotation(AvatarIKGoal.LeftFoot, Quaternion.LookRotation(cam.transform.up*Input.GetAxis("Vertical")));
ac.SetIKRotationWeight(AvatarIKGoal.RightFoot, 1);
ac.SetIKRotation(AvatarIKGoal.RightFoot, Quaternion.LookRotation(cam.transform.up*Input.GetAxis("Vertical")));
}
Получилось через жопу. Т.е. нормально сделать поворот ног я не могу как во всех нормальных TDS. Вообще в этом плане я ориентируюсь на очень старый пример Angry Bots, и часть механики решил скопировать оттуда. Но в том коде я не разобрался что к чему, к тому же там legacy анимация. Так что прошу помощи тех лоровцев, кто работает с Unity3D.