Я создаю FPS-шутер в unity.Bellow - это скрипт, который я использовал для зомби, и он отлично работает, но когда я создаю префаб этого зомби, он также работает, но он перестает делать анимацию атаки и другие вещи работают нормально Что мне теперь делать? Пожалуйста, помогите мне ..... Я использовал трех разных зомби и использовал один и тот же сценарий, все они отлично работают, но когда я создаю префаб из этих зомби, они снова создают проблему и перестают делать анимацию атаки, хотя мое здоровье ухудшается, когда они приближаются , Пожалуйста, помогите мне в этом, я не знаю, если мой код неправильный, или я сделал какую-то ошибку в настройках Unity, но это очень трудно сделать и исправить, что я должен делать, ребята, это мой последний проект проекта года, и я застрял в этой очень сложной ситуации.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerChaseWithoutFaceFollowing : MonoBehaviour {
public Transform player;
// public Transform head;
// public Transform sword;
static Animator anim;
//bool pursuing = false;
// Use this for initialization
void Start()
{
anim = GetComponent<Animator>(); // assigning component
}
// Update is called once per frame
void Update()
{
Vector3 direction = player.position - this.transform.position; //to get the direction
// float angle = Vector3.Angle(direction, this.transform.forward);
// float swordmovement = Vector3.Angle(direction, head.up);
if (anim.GetBool("Death"))
{
anim.SetBool("isWalking", false);
anim.SetBool("isIdle", false);
anim.SetBool("isAttacking", false);
}
else
{
if (Vector3.Distance(player.position, this.transform.position) < 10 )
{
direction.y = 0;
this.transform.rotation = Quaternion.Slerp(this.transform.rotation, Quaternion.LookRotation(direction), 0.1f); // rotate enemy to player
anim.SetBool("isIdle", false); // no more idle state
if (direction.magnitude > 3) // start walking
{
this.transform.Translate(0, 0, 0.5f);
anim.SetBool("isWalking", true); //start walking animation
anim.SetBool("isAttacking", false);
}
else
{
anim.SetBool("isWalking", false);
anim.SetBool("isAttacking", true);
}
}
else
{
anim.SetBool("isIdle", true);
anim.SetBool("isWalking", false);
anim.SetBool("isAttacking", false);
//pursuing = false;
}
}
//if (anim.GetBool("isAttacking") && !anim.GetBool("isWalking"))
//{
// AudioSource EnemyAttack = GetComponent<AudioSource>();
// EnemyAttack.Play();
//}
//if (anim.GetBool("isAttacking") && !anim.GetBool("isWalking"))
//{
// PlayerHealthBar.value -= 2;
// Debug.Log("Hit");
// //anim.SetBool("isAttacking", false);
//}
}
}