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(); }
//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; }
//初期化 別クラス処理の為、インスタンス取得 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; } }
// 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); } } }
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 }
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; }
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>()); } }
public void InitializeEnemy(EnemyAIManager inManager) { GetComponentInChildren <Collider>().isTrigger = true; _manager = inManager; }
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>(); }