Анимация. Как запустить бег через цикл бега на месте?

Раздел, посвящённый всему, что связано с программированием для Редактора Юнити. Скрипты Редактора, Wizards и прочее.

Анимация. Как запустить бег через цикл бега на месте?

Сообщение Nolex 22 окт 2010, 17:52

Здравствуйте.
Есть цикл бега на месте в 3ds max. Я его загрузил в юнити. Все ок, бежит на месте.

Теперь вопрос. Как мне правильно задать перещение персонажа? Например чтоб пробежал из точки А в точку Б? Через скрипты какие-то или через родную анимацию юнити?..
Просветите пожалуйста.
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ


Re: Анимация. Как запустить бег через цикл бега на месте?

Сообщение Nolex 23 ноя 2010, 18:47

Хочу вернуться к этому вопросу. Почитал уроки, посмотрел примеры..

Я хочу сделать небольшой ролик в юнити такого плана — человек идет прямо(проигрывается цикл хождения), потом на определенном месте, он переходит в анимацию переставного шага и бежит в бок, потом на определенном месте он останавливается и начинает стрелять.

Вот как я это реализовал:
Синтаксис:
Используется 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 раза быстрее, и место обычной хотьбы начинает зверски буксовать ногами. :)
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: Анимация. Как запустить бег через цикл бега на месте?

Сообщение Nolex 25 ноя 2010, 12:12

Вообщем благодаря советам товарища Pyx разобрался со своей проблемой.

Переписал код:

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class sit : MonoBehaviour {
public float speed;

        // Use this for initialization
        void Start () {
       
        }
       
        // Update is called once per frame
        void Update () {
       
                       
        if (transform.position.z <= 70) {
                animation.Play("walk");
                transform.Translate(Vector3.forward * Time.deltaTime * (speed));
        }
               
        if ((transform.position.z > 70) && (transform.position.x > 51) ){
                        transform.Translate(Vector3.left * Time.deltaTime * (speed));
                         animation.CrossFade("15fire5");               
               
        }
       
                if (transform.position.x <= 51) {
               
                         animation.CrossFade("ugolnew4", 0.5F);        
               
        }
       
        }
}
 


В transform.Translate надо было еще добавить Time.deltaTime, он движения делает более стабильными и плавными.
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ


Вернуться в Editor

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

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