Позвольте мне сначала задать вопрос :)Проверка сценария Animator on Unity работает только на первом объекте
У меня есть герой и враг. Это боевая игра. И герой, и враг имеют простаивающие, блокирующие, удары и анимации getHit и состояния в Animation Controller. У героя и врага есть прикрепленные к ним сценарии. Герой контролируется игроком, а затем врагом является контроллер AI.
Теперь я прикрепляю сценарий к герою сначала, а затем к врагу. Теперь, когда противник ударяет, и если герой не защищает героя, он получает удар. Но если противник не блокирует и герой попадает в противника, он не получает удар. Это потому, что сценарий был прикреплен к герою вначале.
Теперь, если я удаляю скрипт из обоих и сначала приложите противник к врагу, а затем приложите героя к герою. Вайверверса верна. Во враге будут зарегистрированы хиты, а на героя хиты не будут зарегистрированы.
Я не уверен, почему это происходит, и я пробовал разные вещи, и проблема все еще сохраняется.
Я также пробовал искать везде в Интернете для решения, но ни один из них не затронул мою озабоченность.
Спасибо :)
ниже враг скрипт, который проверяет, является противник может принять удар
void Update() {
myTick++;
currentTick = myTick;
GameObject player = GameObject.Find("theDude");
Animator pAnim = player.GetComponent<Animator>();
//Getting Hit
if (pAnim.GetBool("tIsPunching"))
{
if (anim.GetBool("bEnemyIsDefending") == false)
{
Debug.Log("enemy got hit");
anim.SetTrigger("tEnemyGotHit");
anim.SetBool("bEnemyIsDefending", true);
}
}
}
А вот герой-скрипт, который проверяет, если герой может взять удар.
void Update() {
totalTime += Time.deltaTime;
GameObject enemy = GameObject.Find("Enemy");
Animator eAnim = enemy.GetComponent<Animator>();
//Getting Hit
if (eAnim.GetBool("tEnemyIsPunching"))
{
if (anim.GetBool("bIsDefending") == false)
{
Debug.Log("player got hit");
anim.SetTrigger("tGotHit");
}
}
}
Вместо того чтобы получить объект, я имел обыкновение публиковать GameObject и прикреплял героя и врага к соответствующим классам. Но это не имеет никакого значения.