/// <summary> /// 生成敌人类型1 /// </summary> /// <param name="Rooms"></param> public void generatingLocation1(List <Transform> Rooms) { foreach (var item in Rooms) { RoomEnemy Re = item.gameObject.AddComponent(typeof(RoomEnemy)) as RoomEnemy; roomEne.Add(Re); GetCollisionDetection(item.transform.Find("CollisionDetection").GetComponentsInChildren <EnterRoom>(), Re); SkeletonrInitial SI = item.gameObject.AddComponent(typeof(SkeletonrInitial)) as SkeletonrInitial; skeletonrIn.Add(SI); Transform EnemyPos = item.gameObject.transform.Find("EnemyPos"); SkeletonPhys Sp = EnemyPos.gameObject.AddComponent(typeof(SkeletonPhys)) as SkeletonPhys; SI.skeletonPhys = Sp; insPos1.Add(EnemyPos.GetComponentsInChildren <Transform>()); } foreach (var item in insPos1) { int a = Random.Range(1, 4); Transform[] enemys = new Transform[a]; int[] k = randomPos(a, item.Length - 1); for (int i = 0; i < a; i++) { enemys[i] = InsEnemy1(item[k[i]]); } roomEne[roomEneCount].getBehaviorTree(enemys); skeletonrIn[roomEneCount].getTransform(enemys); roomEneCount++; } }
private void GetCollisionDetection(EnterRoom[] enterRooms, RoomEnemy roomEnemy) { foreach (var item in enterRooms) { item.roomEnemy = roomEnemy; } }
void Start() { skeletonPhys.EnemyCount = skeleTrans.Length; roomEnemy = GetComponent <RoomEnemy>(); Player = GameObject.FindGameObjectWithTag("Player").transform; upBehaviors(); roomEnemy.upEnemyCount(upBehaviors); }
public override void OnAwake() { anim = gameObject.GetComponent <Animator>(); deathParticle = this.transform.Find("Death_Particle").GetComponent <ParticleSystem>(); room = roomEnemy.Value.GetComponent <RoomEnemy>(); foreach (Transform child in this.transform.GetComponentsInChildren <Transform>(true)) { if (child.tag == "Dissolve") { materials.Add(child.GetComponent <Renderer>().material); } } }
public EnemyDead_S_2(SkeletonBehaviorTree skeletonBehaviorTree) : base("EnemyDead_S_2") { anim = skeletonBehaviorTree.Anim; transform = skeletonBehaviorTree.transform; deathParticle = this.transform.Find("Death_Particle").GetComponent <ParticleSystem>(); room = roomEnemy.GetComponent <RoomEnemy>(); StartCoroutine = skeletonBehaviorTree.StartCoroutine_BehaviorTree; foreach (Transform child in this.transform.GetComponentsInChildren <Transform>(true)) { if (child.tag == "Dissolve") { materials.Add(child.GetComponent <Renderer>().material); } } }
/// <summary> /// 生成敌人2 /// </summary> /// <param name="Rooms"></param> public void generatingLocation2(List <Transform> Rooms) { foreach (var item in Rooms) { RoomEnemy Re = item.gameObject.AddComponent(typeof(RoomEnemy)) as RoomEnemy; roomEne.Add(Re); GetCollisionDetection(item.transform.Find("CollisionDetection").GetComponentsInChildren <EnterRoom>(), Re); Transform EnemyPos = item.gameObject.transform.Find("EnemyPos"); insPos2.Add(EnemyPos.GetComponentsInChildren <Transform>()); } //foreach (var item in insPos2) //{ // int a = 2; // Transform[] enemys = new Transform[a]; // int[] k = randomPos(a); // for (int i = 0; i < a; i++) // { // enemys[i] = InsEnemy2(item[k[i]]); // } // roomEne[l++].getBehaviorTree(enemys); //} for (int i = 0; i < insPos2.Count; i++) { int a = 2; Transform[] enemys = new Transform[a]; int[] k = randomPos(a, 4); for (int j = 0; j < a; j++) { enemys[j] = InsEnemy2(insPos2[i][k[j]]); //BearInitial BI = enemys[j].gameObject.AddComponent(typeof(BearInitial)) as BearInitial; } roomEne[roomEneCount + i].getBehaviorTree(enemys); } }
private IEnumerator TransitionRoutine() { new GameFlowEvent(EGameFlowAction.StartTransition).Push(); // Teleport the player to the nex room m_PlayerTransform.position = new Vector3(m_PlayerNode.position.x, m_PlayerTransform.position.y, m_PlayerTransform.position.z); m_PlayerMovement.Freeze(); yield return(new WaitForSecondsRealtime(m_TransitionTime)); m_CurrentMinX = m_EnterRoom.GetMinX(); m_CurrentMaxX = m_EnterRoom.GetMaxX(); m_CurrentMinY = m_EnterRoom.GetMinY(); m_CurrentMaxY = m_EnterRoom.GetMaxY(); m_EnterRoom.gameObject.SetActive(true); RoomEnemy enemies = m_EnterRoom.GetComponent <RoomEnemy>(); if (enemies != null) { enemies.ResetEnemies(); } m_ExitRoom.gameObject.SetActive(false); m_PlayerMovement.Unfreeze(); new GameFlowEvent(EGameFlowAction.EndTransition).Push(); }
public override void OnAwake() { anim = gameObject.GetComponent <Animator>(); deathParticle = this.transform.Find("Death_Particle").GetComponent <ParticleSystem>(); room = roomEnemy.Value.GetComponent <RoomEnemy>(); }