Пример #1
0
 public void Init(Transform transform, int damage, DetectPlayer trigger, PlayerManager player, string finishEvent = null)
 {
     this.transform     = transform;
     this.damage        = damage;
     this.trigger       = trigger;
     this.playerManager = player;
     this.finishEvent   = finishEvent;
 }
Пример #2
0
    void Start()
    {
        detectPlayer = GetComponent<DetectPlayer>();
        animator = GetComponent<Animator>();

        // Gets the child GameObject that represents the gun's position
        foreach (Transform child in transform)
            if (child.CompareTag(GameConstants.GunTag))
                gunObject = child.gameObject;
    }
Пример #3
0
    // Start is called before the first frame update
    void Awake()
    {
        damage       = enemyPreset.damage;
        moveTime     = enemyPreset.moveTime;
        idleTimeMin  = enemyPreset.idleTimeMin;
        idleTimeMax  = enemyPreset.idleTimeMax;
        wanderRadius = enemyPreset.wanderRadius;

        home = transform.position;

        trigger = GetComponentInChildren <DetectPlayer>();

        trigger.GetComponent <SphereCollider>().radius = enemyPreset.detectionRadius;

        navMeshAgent = GetComponent <NavMeshAgent>();

        navMeshAgent.speed = enemyPreset.speed;

        fsm = new FSM("MeleeAI FSM");

        WanderState = fsm.AddState("WanderState");
        IdleState   = fsm.AddState("IdleState");
        AlertState  = fsm.AddState("AlertState");
        MeleeState  = fsm.AddState("MeleeState");

        WanderAction = new WanderAction(WanderState);
        IdleAction   = new TextAction(IdleState);
        alertAction  = new AlertAction(AlertState);
        meleeAction  = new MeleeAction(MeleeState);

        WanderState.AddAction(WanderAction);
        IdleState.AddAction(IdleAction);
        AlertState.AddAction(alertAction);
        MeleeState.AddAction(meleeAction);

        WanderState.AddTransition("ToIdle", IdleState);
        WanderState.AddTransition("PlayerDetect", AlertState);
        IdleState.AddTransition("ToWander", WanderState);
        IdleState.AddTransition("PlayerDetect", AlertState);

        AlertState.AddTransition("ToIdle", IdleState);
        AlertState.AddTransition("ToMelee", MeleeState);
        MeleeState.AddTransition("ToAlert", AlertState);

        WanderAction.Init(this.transform, home, navMeshAgent, wanderRadius, moveTime, "ToIdle");
        IdleAction.Init("Idling", Random.Range(idleTimeMin, idleTimeMax), "ToWander");

        alertAction.Init(trigger, navMeshAgent, "ToIdle");
        meleeAction.Init(this.transform, damage, trigger, FindObjectOfType <PlayerManager>(), "ToAlert");

        fsm.Start("IdleState");
    }
Пример #4
0
    void Start()
    {
        detectPlayer = GetComponent <DetectPlayer>();
        animator     = GetComponent <Animator>();

        // Gets the child GameObject that represents the gun's position
        foreach (Transform child in transform)
        {
            if (child.CompareTag(GameConstants.GunTag))
            {
                gunObject = child.gameObject;
            }
        }
    }
Пример #5
0
    void Awake()
    {
        _anim      = GetComponent <Animator>();
        _rb        = GetComponent <Rigidbody>();
        _detection = GetComponentInChildren <DetectPlayer>();
        _agent     = GetComponent <NavMeshAgent>();
        _speed     = maxSpeed;

        if (paths.Length == 1)
        {
            var ps = paths[0].GetComponentsInChildren <Transform>().ToList();
            ps.Remove(ps.First());
            paths = ps.ToArray();
        }
    }
Пример #6
0
 protected override void Start()
 {
     base.Start();
     detectPlayer = GetComponent<DetectPlayer>();
     deathAnimLength = deathAnimation.GetComponent<ParticleSystem>().duration;
 }
Пример #7
0
 void Start()
 {
     detectPlayer = GetComponent <DetectPlayer>();
     detectFood   = GetComponent <DetectFood>();
 }
Пример #8
0
 protected override void Start()
 {
     base.Start();
     detectPlayer    = GetComponent <DetectPlayer>();
     deathAnimLength = deathAnimation.GetComponent <ParticleSystem>().duration;
 }
Пример #9
0
 // Use this for initialization
 void Start()
 {
     detectPlayer = GameObject.Find("GameControl").GetComponent <DetectPlayer>();
     GetComponent <GUIText>().enabled = false;
 }
Пример #10
0
 public StateContext(EnemyBehaviour enemy, DetectPlayer detect)
 {
     this.enemy   = enemy;
     this.detect  = detect;
     CurrentState = EnemyStates.Patrol;
 }
Пример #11
0
 public void Init(DetectPlayer trigger, NavMeshAgent navMeshAgent, string finishEvent = null)
 {
     this.awareCollider = trigger;
     this.navMeshAgent  = navMeshAgent;
     this.finishEvent   = finishEvent;
 }