private void Awake() { enemyMain = GetComponent <EnemyMain>(); aimAnims = GetComponent <IAimShootAnims>(); aimingShoot = GetComponent <AimingShoot>(); SetStateNormal(); }
// === コード(Monobehaviour基本機能の実装) ================ void FixedUpdate() { var activeEnemyMainList = new List <EnemyMain>(); // カメラに写っている敵を検索 GameObject[] enemyList = GameObject.FindGameObjectsWithTag("Enemy"); if (enemyList == null) { return; } foreach (GameObject enemy in enemyList) { //Debug.Log (string.Format(">>> obj Name {0} position {1}",enemy.name,enemy.transform.position)); EnemyMain enemyMain = enemy.GetComponent <EnemyMain> (); if (enemyMain != null) { if (enemyMain.combatAIOerder && enemyMain.cameraEnabled) { activeEnemyMainList.Add(enemyMain); } } else { Debug.LogWarning(string.Format("CombatAI : EnemyMain null : {0} {1}", enemy.name, enemy.transform.position)); } } // 攻撃する敵を抑制 int i = 0; foreach (EnemyMain enemyMain in activeEnemyMainList) { if (i < freeAIMax) { // そのまま自由に行動させる } else if (i < freeAIMax + blockAttackAIMax) { // 攻撃を抑制する if (enemyMain.aiState == ENEMYAISTS.RUNTOPLAYER) { enemyMain.SetCombatAIState(ENEMYAISTS.WAIT); } } else { // 行動を停止する if (enemyMain.aiState != ENEMYAISTS.WAIT) { enemyMain.SetCombatAIState(ENEMYAISTS.WAIT); } } i++; } //Debug.Log(string.Format(">>> Combat AI {0}",i)); }
private void Awake() { enemyMain = GetComponent <EnemyMain>(); characterBase = GetComponent <CharacterAim_Base>(); aimAnims = GetComponent <IAimShootAnims>(); aimingShoot = GetComponent <AimingShoot>(); SetStateNormal(); }
private void Awake() { enemyList.Add(this); EnemyMain = GetComponent <EnemyMain>(); state = State.Normal; healthBar = new World_Bar(transform, new Vector3(0, 10), new Vector3(10, 1.3f), Color.grey, Color.red, 1f, 10000, new World_Bar.Outline { color = Color.black, size = .5f }); }
void FixedUpdate() { var activeEnemyMainList = new List <EnemyMain>(); // ค้นหา enemy ที่อยู่หน้ากล้อง (มองเห็น) แล้วบันทึกลงใน enemyList GameObject[] enemyList = GameObject.FindGameObjectsWithTag("Enemy"); if (enemyList == null) { return; } foreach (GameObject enemy in enemyList) { EnemyMain enemyMain = enemy.GetComponent <EnemyMain> (); if (enemyMain != null) { if (enemyMain.combatAIOerder && enemyMain.cameraEnabled) { activeEnemyMainList.Add(enemyMain); } } else { Debug.LogWarning(string.Format("CombatAI : EnemyMain null : {0} {1}", enemy.name, enemy.transform.position)); } } // คอนโทรล enemy แต่ละตัวที่กำลังโจมตีอยู่ int i = 0; foreach (EnemyMain enemyMain in activeEnemyMainList) { if (i < freeAIMax) { // ปล่อยไปตามโปรแกรม } else if (i < freeAIMax + blockAttackAIMax) { // กลุ่มนี้คุมหน่อย if (enemyMain.aiState == ENEMYAISTS.RUNTOPLAYER) { enemyMain.SetCombatAIState(ENEMYAISTS.WAIT); } } else { // ส่วนที่เหลือให้หยุดเลย if (enemyMain.aiState != ENEMYAISTS.WAIT) { enemyMain.SetCombatAIState(ENEMYAISTS.WAIT); } } i++; } //Debug.Log(string.Format(">>> Combat AI {0}",i)); }
void FixedUpdate() { // var? javascript? var activeEnemyMainList = new List <EnemyMain>(); GameObject[] enemyList = GameObject.FindGameObjectsWithTag("Enemy"); if (enemyList == null) { return; } foreach (GameObject enemy in enemyList) { EnemyMain enemyMain = enemy.GetComponent <EnemyMain>(); if (enemyMain != null) { if (enemyMain.combatAIOrder && enemyMain.cameraEnabled) { activeEnemyMainList.Add(enemyMain); } } else { } } //공격하는 적을 억제한다 int i = 0; foreach (EnemyMain enemyMain in activeEnemyMainList) { if (i < freeAIMax) { // 자유롭게 공격 } else if (i < freeAIMax + blockAttackAIMax) { if (enemyMain.aiState == ENEMYAISTS.RUNTOPLAYER) { enemyMain.SetCombatAIState(ENEMYAISTS.WAIT); } } else { if (enemyMain.aiState != ENEMYAISTS.WAIT) { enemyMain.SetCombatAIState(ENEMYAISTS.WAIT); } } i++; } }
public void DestroyEnemy(EnemyMain _enemy, bool _killed) { m_enemies.Remove(_enemy); Destroy(_enemy.gameObject); if (_killed) { AddScore(10); } }
private void Awake() { enemyMain = GetComponent <EnemyMain>(); characterBase = GetComponent <Character_Base>(); aimTransform = transform.Find("Aim"); SetStateNormal(); HideAim(); }
// Update is called once per frame void Update() { shoot.loop = false; int layerMask = 1 << 9; Debug.DrawRay(camera.transform.position, camera.transform.forward, Color.red); if (Input.GetButtonDown("Fire1") && FindObjectOfType <PlayerMains>().Ammo > 0) { FindObjectOfType <PlayerMains>().ammo_cap -= 1; shoot.Play();; // Debug.Log(FindObjectOfType<PlayerMains>().Ammo); if (Physics.Raycast(camera.transform.position, camera.transform.forward, out hit, range, layerMask)) { EnemyMain target = hit.transform.GetComponent <EnemyMain>(); if (target != null) { target.TakeDamage(damage); } Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal)); // Debug.Log(hit.collider.name); } } }
// Update is called once per frame void Update() { m_tempDistance = 60f; foreach (EnemyMain _enemy in GameState.instance.m_enemies) { if (m_tempDistance > _enemy.m_transform.position.z - m_transform.position.z) { m_tempDistance = _enemy.m_transform.position.z - m_transform.position.z; m_target = _enemy; } } m_relativePos = m_target.transform.position - m_transform.position; m_rotation = Quaternion.LookRotation(m_relativePos); m_transform.rotation = m_rotation; if (m_attacktimer <= 0) { Instantiate(m_bullet, m_transform.position, m_transform.rotation); m_attacktimer = Random.Range(200, 300); } m_attacktimer--; }
void Awake () { // EnemyMain을 검색 enemyMain = GetComponentInParent<EnemyMain> (); }
private void Awake() { enemyMain = GetComponent <EnemyMain>(); }
public void HitEnemy(EnemyMain _enemy, float _damage) { _enemy.ChangeHealth(_damage); Debug.Log("Enemy was hit!"); }
void Awake() { // EnemyMainを検索 enemyMain = GetComponentInParent <EnemyMain> (); }
private void Awake() { gameObject.SetActive(false); enemyMain = GetComponent <EnemyMain>(); }
static void ColliderGizmoDraw(GameObject go, GizmoType gt) { if (!debugViewEnabled) { return; } if (go.tag == "Player") { // Scaler for (int x = -10; x < 10; x++) { Vector3 vecA = go.transform.position + Vector3.left * x; Vector3 vecB = vecA + Vector3.up; Gizmos.color = (Mathf.Abs(x) < 5) ? Color.red : Color.white; Gizmos.DrawLine(vecA, vecB); } for (int x = -10; x < 10; x++) { Vector3 vecA = go.transform.position + Vector3.up * x; Vector3 vecB = vecA + Vector3.left; Gizmos.color = (Mathf.Abs(x) < 5) ? Color.red : Color.white; Gizmos.DrawLine(vecA, vecB); } } else if (go.tag == "Enemy") { // AI Status Gizmos.color = Color.red; Gizmos.DrawCube(go.transform.position, new Vector3(0.1f, 0.1f, 0.1f)); GUIStyle style = new GUIStyle(); style.active.textColor = Color.red; style.normal.textColor = Color.red; style.hover.textColor = Color.red; style.focused.textColor = Color.red; EnemyMain em = go.GetComponent <EnemyMain>(); if (em == null) { return; } if (em.cameraEnabled) { Handles.Label(go.transform.position, string.Format("{0} {1} {2}", em.aiState, em.GetComponent <EnemyController>().grounded, em.GetDistanePlayer())); } // Dog Pile Gizmos.color = Color.red; StageObject_DogPile[] dogPileList = GameObject.FindObjectsOfType <StageObject_DogPile>(); foreach (StageObject_DogPile dogPile in dogPileList) { foreach (GameObject enemy in dogPile.enemyList) { if (go == enemy) { Gizmos.DrawLine(go.transform.position, dogPile.transform.position); return; } } } } }
internal void Process(ApiInfo rpInfo, BattleStage rpFirstStage = null) { var rData = rpInfo.Data as RawBattleBase; var rCombinedFleetData = rData as IRawCombinedFleet; FriendAndEnemy = new BattleParticipantSnapshot[rCombinedFleetData == null ? 12 : 24]; for (var i = 1; i < rData.CurrentHPs.Length; i++) { if (rData.MaximumHPs[i] != -1) { FriendAndEnemy[i - 1] = new BattleParticipantSnapshot(rData.MaximumHPs[i], rData.CurrentHPs[i]); } } FriendMain = FriendAndEnemy.Take(6).TakeWhile(r => r != null).ToArray(); for (var i = 0; i < FriendMain.Count; i++) { FriendMain[i].Participant = Owner.Participants.FriendMain[i]; } EnemyMain = FriendAndEnemy.Skip(6).TakeWhile(r => r != null).ToArray(); for (var i = 0; i < EnemyMain.Count; i++) { EnemyMain[i].Participant = Owner.Participants.EnemyMain[i]; } if (rCombinedFleetData != null) { BattleParticipantSnapshot[] rFriendAndEnemyEscort; if (rpFirstStage == null) { rFriendAndEnemyEscort = rCombinedFleetData.EscortFleetCurrentHPs.Zip(rCombinedFleetData.EscortFleetMaximumHPs, (rpCurrent, rpMaximum) => rpMaximum != -1 ? new BattleParticipantSnapshot(rpMaximum, rpCurrent) : null).Skip(1).ToArray(); } else { IEnumerable <BattleParticipantSnapshot> rFriendEscort = rpFirstStage.FriendEscort; if (rFriendEscort == null) { rFriendEscort = Enumerable.Repeat <BattleParticipantSnapshot>(null, 6); } IEnumerable <BattleParticipantSnapshot> rEnemyEscort = rpFirstStage.EnemyEscort; if (rEnemyEscort == null) { rEnemyEscort = Enumerable.Repeat <BattleParticipantSnapshot>(null, 6); } rFriendAndEnemyEscort = rFriendEscort.Concat(rEnemyEscort).Select(r => r != null ? new BattleParticipantSnapshot(r.Maximum, r.Current) : null).ToArray(); } if (rFriendAndEnemyEscort[0] != null) { FriendEscort = rFriendAndEnemyEscort.Take(6).TakeWhile(r => r != null).ToArray(); for (var i = 0; i < FriendEscort.Count; i++) { FriendEscort[i].Participant = Owner.Participants.FriendEscort[i]; FriendAndEnemy[i + 12] = FriendEscort[i]; } } if ((rpFirstStage == null && rFriendAndEnemyEscort.Length > 6) || (rpFirstStage != null && rpFirstStage.EnemyEscort != null)) { EnemyEscort = rFriendAndEnemyEscort.Skip(6).ToArray(); for (var i = 0; i < EnemyEscort.Count; i++) { EnemyEscort[i].Participant = Owner.Participants.EnemyEscort[i]; FriendAndEnemy[i + 18] = EnemyEscort[i]; } } } if (FriendEscort == null) { Friend = FriendMain; } else { Friend = FriendMain.Concat(FriendEscort).ToArray(); } if (EnemyEscort == null) { Enemy = EnemyMain; } else { Enemy = EnemyMain.Concat(EnemyEscort).ToArray(); } foreach (var rPhase in Phases) { rPhase.Process(); } if (!Owner.IsPractice) { foreach (var rSnapshot in Friend) { var rParticipant = (FriendShip)rSnapshot.Participant; if (rSnapshot.State == BattleParticipantState.HeavilyDamaged && rParticipant.EquipedEquipment.Any(r => r.Info.Type == EquipmentType.DamageControl)) { rParticipant.IsDamageControlConsumed = false; rParticipant.IsDamageControlVisible = true; } } } }
// Use this for initialization void Start() { enemyMain = GetComponentInParent<EnemyMain> (); }
private void Start() { navMeshAgent = GetComponent<NavMeshAgent>(); enemy = GetComponent<EnemyMain>(); viewStartTransform = transform.FindChild("ViewStart"); deadZone *= Mathf.Deg2Rad; }