示例#1
0
 public virtual void Start()
 {
     agent = GetComponent<NavMeshAgent>();
     obstacle = GetComponent<NavMeshObstacle>();
     obstacle.enabled = false;
     animator = GetComponent<Animator>();
     aggroRadius = GetComponentInChildren<AggroRadius>();
     InitStat();
     InitEventMessenger();
 }
示例#2
0
 protected new void Awake()
 {
     base.Awake();
     if (!m_aggroRadius)
     {
         m_aggroRadius = GetComponent <AggroRadius>();
     }
     if (!m_reward)
     {
         m_reward = GetComponent <Reward>();
     }
 }
示例#3
0
    void Awake()
    {
        Group = transform.parent.GetComponent<AIGroupController>();
        Aggro = GetComponentInChildren<AggroRadius>();
        MoveFSM = GetComponent<MovementFSM>();
        EntityObject = GetComponent<Entity>();
        _animationController = GetComponent<AnimationController>();

        SetupMachine(AIStates.idle);

        HashSet<Enum> idleTransitions = new HashSet<Enum>();
        idleTransitions.Add(AIStates.pursuit);
        idleTransitions.Add(AIStates.wander);

        HashSet<Enum> pursuitTransitions = new HashSet<Enum>();
        pursuitTransitions.Add(AIStates.dead);
        pursuitTransitions.Add(AIStates.reset);

        HashSet<Enum> resetTransitions = new HashSet<Enum>();
        resetTransitions.Add(AIStates.idle);

        HashSet<Enum> wanderTransitions = new HashSet<Enum>();
        wanderTransitions.Add(AIStates.idle);

        AddTransitionsFrom(AIStates.idle, idleTransitions);
        AddTransitionsFrom(AIStates.pursuit, pursuitTransitions);
        AddTransitionsFrom(AIStates.reset, resetTransitions);
        AddTransitionsFrom(AIStates.wander, wanderTransitions);

        StartMachine(AIStates.idle);
        _soundManager = GetComponent<EntitySoundManager>();
    }