public void Death()
 {
     animator.SetTrigger("death");
     animator.SetInteger(EnemyAIManager.Instance().transitionParameter, (int)Transition.DEATH);
     enabled = false;
     solidPhysicalCollider.enabled = false;
 }
        // マップに配置しているUnitオブジェクト
        //static GameObject[,] mapUnitObj;

        private void Awake()
        {
            // 各マネージャーの初期化
            mapManager     = new MapManager(mapId);
            unitManager    = new UnitManager(mapManager.field);
            routeManager   = new RouteManager(mapManager.field);
            enemyAIManager = new EnemyAIManager(mapManager.field);
            commonCalc     = new CommonCalc();
        }
Beispiel #3
0
 //200808 初期化された時にUnitクラスを受け取る
 public void Init(Enemy enemy, BattleMapManager battleMapManager, EnemyAIManager enemyAIManager, Main_Map map, int id)
 {
     this.enemy            = enemy;
     this.battleMapManager = battleMapManager;
     this.map            = map;
     this.enemyAIManager = enemyAIManager;
     this.enemyAIPattern = enemy.enemyAIPattern;
     this.actionTurn     = enemy.actionTurn;
     this.enemyId        = id;
 }
Beispiel #4
0
 //初期化 別クラス処理の為、インスタンス取得
 public void Init(BattleMapManager battleMapManager, EffectManager effectManager, EnemyAIManager enemyAIManager,
                  BattleTalkManager battleTalkManager, EXPWindow expWindow, bool battleTextVisible)
 {
     this.battleMapManager  = battleMapManager;
     this.battleTalkManager = battleTalkManager;
     this.effectManager     = effectManager;
     this.enemyAIManager    = enemyAIManager;
     this.expWindow         = expWindow;
     this.battleTextVisible = battleTextVisible;
 }
 override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     if (ChaseState.ShouldChasePlayer(animator.transform.position))
     {
         animator.SetInteger(EnemyAIManager.Instance().transitionParameter, (int)Transition.CHASE);
     }
     else if (!navAgent.hasPath)
     {
         animator.SetInteger(EnemyAIManager.Instance().transitionParameter, (int)Transition.IDLE);
     }
 }
 /// <summary>
 /// Setting up singleton!
 /// </summary>
 private void Awake()
 {
     if (Instance)
     {
         Destroy(this);
     }
     else
     {
         Instance = this;
     }
 }
Beispiel #7
0
    // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
    //override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    //{
    //
    //}

    // OnStateExit is called when a transition ends and the state machine finishes evaluating this state
    //override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    //{
    //
    //}

    // OnStateMove is called right after Animator.OnAnimatorMove()
    override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        if (!ShouldChasePlayer(animator.transform.position))
        {
            animator.SetInteger(EnemyAIManager.Instance().transitionParameter, (int)Transition.IDLE);
        }
        else
        {
            if (!navAgent.hasPath || (player.transform.position - navAgent.pathEndPosition).sqrMagnitude > repathTolerance * repathTolerance)
            {
                SetDestinationNearTarget(navAgent, player);
            }
        }
    }
Beispiel #8
0
    public GameObject[] players; // the players in the scene

    // Use this for initialization
    void Awake()
    {
        // if the singleton exists

        /*
         * if (Instance != null) {
         *  Destroy(this);
         *  return;
         * }
         */

        Instance = this;                                            // set singleton instance

        this.players = GameObject.FindGameObjectsWithTag("Player"); // find positions of players
    }
Beispiel #9
0
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        if (navAgent == null)
        {
            navAgent = animator.GetComponentInParent <NavMeshAgent>();
        }

        if (player == null)
        {
            player = EnemyAIManager.Instance().player;
        }

        // Reset the path so the AI could create new path to chase the player
        navAgent.ResetPath();
        navAgent.speed = runSpeed;
    }
Beispiel #10
0
    private void GenerateEnemyCharacters()
    {
        var aiManagerObj = new GameObject("AIManager");

        aiManagerObj.transform.parent = _levelContainer.transform;

        _enemyAIManager = aiManagerObj.AddComponent <EnemyAIManager>();
        _enemyAIManager.AICharacters = new List <CharacterController>();

        var numberOfEnemyCharacters = Random.Range(LevelProfile.MinEnemyCharacters, LevelProfile.MaxEnemyCharacters + 1);
        var enemyProfiles           = LevelProfile.PossibleEnemyCharacters.OrderBy(x => Random.Range(0, 100)).Take(numberOfEnemyCharacters);

        foreach (var enemyProfile in enemyProfiles)
        {
            var characterGameObject = GenerateCharacter(enemyProfile, true);
            characterGameObject.transform.parent = aiManagerObj.transform;
            _enemyAIManager.AICharacters.Add(characterGameObject.GetComponent <CharacterController>());
            PlaceCharacterOnGrid(characterGameObject.GetComponent <CharacterController>());
        }
    }
Beispiel #11
0
 public void InitializeEnemy(EnemyAIManager inManager)
 {
     GetComponentInChildren <Collider>().isTrigger = true;
     _manager = inManager;
 }
Beispiel #12
0
    public static bool ShouldChasePlayer(Vector3 chaserPosition)
    {
        ThirdPersonControl p = EnemyAIManager.Instance().player;

        return((p.transform.position - chaserPosition).sqrMagnitude < chaseRadius * chaseRadius);
    }
 private void Start()
 {
     aiManager = FindObjectOfType <EnemyAIManager>();
 }