Суббота, 14 Декабря 2019, 13:38

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос по Аниматору и скриптам
Вопрос по Аниматору и скриптам
wing13Дата: Суббота, 27 Июля 2013, 19:14 | Сообщение # 1
участник
Сейчас нет на сайте
Привет всем!
Вопроса у меня сегодня два.
1. У меня в игровом мире респамятся призраки, все они управляются одним скриптом и все убиваются с одного выстрела. Я решил сделать им HP, что бы выдерживали 2-3 попадания, но переменная применяется сразу ко всем призракам. Как хранить жизнь каждого призрака отдельно?
2. Хочу еще сдеть зомби, поставил зомбака, повесил не него аниматор, в AnimationControllerе сделал дефолтную анимацию (стоит, руками машет), и переход к анимации смерти при значении его HP<1, но это переменная в аниматоре, а как связать ее с перемнной в скрипте?

(на второй вопрос ответ:

var anim : Animator;
function Update () {
anim.SetFloat("Имя переменной в аниматоре", Имя переменной в скрипте);
}


Я вконтакте

Сообщение отредактировал wing13 - Воскресенье, 28 Июля 2013, 01:20
ЛевшаДата: Суббота, 27 Июля 2013, 20:27 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
Цитата (wing13)
Как хранить жизнь каждого призрака отдельно?

Не использовать static var.


X.cor.R (Prologue)
wing13Дата: Суббота, 27 Июля 2013, 20:35 | Сообщение # 3
участник
Сейчас нет на сайте
А можно подробнее? Как мне снять хиты с определенного призрака?
Вот я попадаю в призрака if (hit.collider.tag == "Spirit") и снимаю ему жизнь {Ghosts_Stats.HP--;} если переменная HP будет не статик, то она не распространится на всех?

Призраков если что изначально в сцене нет, они создаются респавнером с одинаковыми параметрами, которые задаются перемнными скрипта Ghosts_Stats


Я вконтакте

Сообщение отредактировал wing13 - Суббота, 27 Июля 2013, 20:39
lentinantДата: Воскресенье, 28 Июля 2013, 00:41 | Сообщение # 4
ленивый программист
Сейчас нет на сайте
Как по мне, ХП должно быть в скрипте, прикрепленном к самому gameObject призрака. Тогда в OnCollisionEnter можно получить доступ к скрипту конкретного призрака с помощью collision.gameObject.GetComponent<HealthScript> (подставить свое название скрипта), и изменять переменную в нем.

Когда-то тут будут ссылки на крутые проекты. Или нет.
wing13Дата: Воскресенье, 28 Июля 2013, 01:05 | Сообщение # 5
участник
Сейчас нет на сайте
lentinant спасибо, это работает smile

Я вконтакте
sinoptisДата: Воскресенье, 28 Июля 2013, 17:26 | Сообщение # 6
почетный гость
Сейчас нет на сайте
Вам не кажется, что перед тем как начать писать скрипты, стоило ознакомиться хотя бы с основами ЯП?
JewReptileДата: Воскресенье, 28 Июля 2013, 17:39 | Сообщение # 7
частый гость
Сейчас нет на сайте
Цитата (wing13)
anim.SetFloat("Имя переменной в аниматоре", Имя переменной в скрипте);

Лучше использовать хеши, лол.
wing13Дата: Воскресенье, 28 Июля 2013, 18:02 | Сообщение # 8
участник
Сейчас нет на сайте
Цитата (sinoptis)
Вам не кажется, что перед тем как начать писать скрипты, стоило ознакомиться хотя бы с основами ЯП?

Даже не знаю, я вообще не кодер и тупо исхожу из того, что мне нужно сделать сейчас.

Цитата (JewReptile)
Лучше использовать хеши, лол.

А как?


Я вконтакте
JewReptileДата: Воскресенье, 28 Июля 2013, 20:31 | Сообщение # 9
частый гость
Сейчас нет на сайте
Цитата (wing13)
как?

Меканимовские параметры и стэйты можно представлять в виде хешей.
Например, если нам нужно получить хеш параметра Speed, то мы создаем переменную типа int. А потом назначаем этой переменной хеш.
Код
speedFloat = Animator.StringToHash("Speed")

Переменная называется speedFloat, потому что параметр в меканиме - float, это делается для того, чтобы не запутаться. Если нужно получить доступ к стейту, то нужно обращаться как:
Код
Animator.StringToHash("имя слоя.название стейта");

Ну а потом заместо строки-названия при обращении указывать хеш. Все просто. Чтобы не получать каждый раз эти значения, в официальных юнититуторах предлагают создать отдельный скрипт с публичными переменными хешей, назначить их при старте, повесить скрипт на какой-либо один объект (главный геймконтроллер, например) и получать хеши уже оттуда.


Сообщение отредактировал JewReptile - Воскресенье, 28 Июля 2013, 20:32
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос по Аниматору и скриптам
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2019 Рейтинг