Форум программистов, компьютерный форум, киберфорум
Наши страницы
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
 
Vla00
7 / 7 / 9
Регистрация: 06.10.2012
Сообщений: 542
#1

Воспроизведение анимации - Unity, Unity3D

12.09.2015, 17:56. Просмотров 1343. Ответов 7
Метки нет (Все метки)

Когда боты подходят к игроку нужно что-бы они останавливались и начинали меня кусать (анимация). Но при моём коде они всегда идут и быстро (очень быстро) кусают и двигаются. Как исправить?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class AtackBot : MonoBehaviour {
 
    public Transform mob;           //наш моб
    public Transform player;        //игрок
    public float speedMonster;      //скорость монстра
    
    // Update is called once per frame
    void Update () {
        //поворачиваем нашего бота на игрока
        transform.LookAt(player);
        //начинаем двигаться к игроку
        mob.transform.Translate(0, 0, speedMonster);
        //включаем анимацию движения
        animation.Play("Run");
        Atack();
    }
 
    void Atack()
    {
        RaycastHit hit;
        Vector3 Ray = transform.TransformDirection(Vector3.forward);
        if (Physics.Raycast(transform.position, Ray, out hit, 5))
        {
            if (hit.collider.tag == "Player")
            {
                Invoke("Bite", 3);
            }
        }
    }
 
    void Bite()
    {
        animation.Play("Bite2");
        Debug.Log("1");
    }
}

http://www.cyberforum.ru/unity/thread1791049.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2015, 17:56
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Воспроизведение анимации (Unity, Unity3D):

Воспроизведение анимации при наведении мыши на объект + обратная анимация
В C# новичок, задача такова: Есть два объекта, при наведении курсора мыши на...

Воспроизведение музыки
Добрый вечер, возникла проблема, а точнее нужно при нажатии на отдельные кнопки...

Воспроизведения анимации
Есть модель ловушки с анимацией.Из ловушки должны вверх подниматься...

Анимации и их наложение
Добрый вечер, вопрос состоит вот в чем: есть две анимации для стандартного...

Всё те же анимации
Здравствуйте. Недавно возник вопрос с анимациями, но ответ найти так и не...

7
Cr0c
525 / 426 / 157
Регистрация: 06.08.2015
Сообщений: 1,824
Завершенные тесты: 2
12.09.2015, 19:17 #2
C#
1
mob.transform.Translate(0, 0, speedMonster * Time.deltaTime);
Так?
0
8Observer8
2037 / 1330 / 216
Регистрация: 05.10.2013
Сообщений: 4,224
Записей в блоге: 56
12.09.2015, 22:07 #3
Двигающийся объект, как правило, должен иметь компонент Rigidbody:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
using UnityEngine;
 
public class EnemyMove : MonoBehaviour
{
    public Transform Player;
    public float speed = 5f;
 
    void FixedUpdate ()
    {
        Vector3 dir = Player.position - transform.position;
        GetComponent<Rigidbody>().velocity = dir.normalized * speed;
    }
}
0
Vla00
7 / 7 / 9
Регистрация: 06.10.2012
Сообщений: 542
13.09.2015, 13:18  [ТС] #4
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Двигающийся объект, как правило, должен иметь компонент Rigidbody:
У меня есть. я его не кодом прописал.

Добавлено через 7 минут
Цитата Сообщение от Cr0c Посмотреть сообщение
Код C#Выделить код
1
mob.transform.Translate(0, 0, speedMonster * Time.deltaTime);
Так?
Я так сделал. и они вообще теперь не двигаются. тупо анимация на одном месте.
0
Cr0c
525 / 426 / 157
Регистрация: 06.08.2015
Сообщений: 1,824
Завершенные тесты: 2
13.09.2015, 13:20 #5
Цитата Сообщение от Vla00 Посмотреть сообщение
Я так сделал. и они вообще теперь не двигаются. тупо анимация на одном месте.
speedMonster будет скоростью юнитов в секунду в этом случае, правильно она задана?
0
8Observer8
2037 / 1330 / 216
Регистрация: 05.10.2013
Сообщений: 4,224
Записей в блоге: 56
13.09.2015, 13:56 #6
Цитата Сообщение от Vla00 Посмотреть сообщение
У меня есть. я его не кодом прописал.
Я его тоже не кодом прописывал. Просто предложил двигать объект не через transform.Translate, а с помощью изменения скорости: GetComponent<Rigidbody>().velocity. Нет смысла добавлять Rigidbody и при этом двигать с помощью transform.Translate
0
Malkkiri
35 / 10 / 1
Регистрация: 14.09.2015
Сообщений: 60
Завершенные тесты: 1
14.09.2015, 01:13 #7
Я еще новичок в юнити)) поэтому не судите строго...
Я бы у бота сделал несколько состояний : движение к цели, атака цели, смерть.
currentState ( текущий стейт );
MovingState, AttackState и т.д

В таком случае в зависимости от текущего стейта выбиралась бы нужная функция в Update, OnTriggerEnter или OnCollisionEnter, а также OnTriggerExit

Например, currentState==MovingState.

void OnTriggerEnter(Collider other) {
currentState=AttackState
}
void Update(){
if(currentState==AttackState){
attack();
}
if(currentState==MovingState){
transform.LookAt(player);
mob.transform.Translate(0, 0, speedMonster);
animation.Play("Run");
}
}

... как то так
повторюсь, в Юнити новичек ....
0
8Observer8
2037 / 1330 / 216
Регистрация: 05.10.2013
Сообщений: 4,224
Записей в блоге: 56
14.09.2015, 13:12 #8
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Нет смысла добавлять Rigidbody и при этом двигать с помощью transform.Translate
Я опровергну сам себя. Это я, конечно, неправильно написал, так как зависит от задачи.
0
14.09.2015, 13:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2015, 13:12
Привет! Вот еще темы с решениями:

События в анимации
Проблема с коллайдером. При старте анимации я включаю коллайдер у объекта...

Включение анимации
У меня есть дверь с анимацией. Хочу сделать чтобы при подходе к двери...

Анимации разваливаются!
Здравствуйте!В общем всё нормально работает:бег,прыжки,анимации стояния...

Проигрывание анимации
Как в последней версии Unity при определённом условии проиграть анимацию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru