Хочу вернуться к этому вопросу. Почитал уроки, посмотрел примеры..
Я хочу сделать небольшой ролик в юнити такого плана — человек идет прямо(проигрывается цикл хождения), потом на определенном месте, он переходит в анимацию переставного шага и бежит в бок, потом на определенном месте он останавливается и начинает стрелять.
Вот как я это реализовал:
Используется csharp
using UnityEngine;
using System.Collections;
public class sit : MonoBehaviour {
public float speed;
public float speedx;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
transform.Translate(Vector3.left * (speedx)); // Move object in moveDirection scaled with time
transform.Translate(Vector3.forward * (speed)); // Move object in moveDirection scaled with time
if (transform.position.z <= 69) {
animation.Play("walk");
}
if (transform.position.z >= 70) {
speed = 0f;
speedx = 0.065f;
animation.CrossFade("beg_perestavnoy");
}
if (transform.position.x <= 51) {
speed = 0f;
speedx = 0f;
animation.CrossFade("stay_fight");
}
}
}
Как вам такой метод?
Может лучше привязку анимаци ко времени делать? Типа 10 секунд идет, а не задавать условие с transform.position.x... ?
Главная проблема в том, что такой метод на разных компах работает по разному. Даже у меня при фуллскрине, он движеться в 1,5 раза быстрее, и место обычной хотьбы начинает зверски буксовать ногами.