From 031e9f339cd45c6af2cecc96930d42138510f2e3 Mon Sep 17 00:00:00 2001
From: 13519016 <13519016@std.stei.itb.ac.id>
Date: Sat, 9 Apr 2022 00:37:29 +0700
Subject: [PATCH] perbaiki enemyManager

---
 Assets/Scenes/Level_01.unity                  | 14 +++---
 Assets/Scenes/Level_02.unity                  |  4 +-
 Assets/Scripts/Managers/EnemyManager.cs       | 36 +++++--------
 Assets/Scripts/Managers/EnemyManager.cs.meta  |  5 +-
 Assets/Scripts/Managers/EnemyManagerWave.cs   | 50 +++++++++++++++++++
 .../Scripts/Managers/EnemyManagerWave.cs.meta |  8 +++
 6 files changed, 83 insertions(+), 34 deletions(-)
 create mode 100644 Assets/Scripts/Managers/EnemyManagerWave.cs
 create mode 100644 Assets/Scripts/Managers/EnemyManagerWave.cs.meta

diff --git a/Assets/Scenes/Level_01.unity b/Assets/Scenes/Level_01.unity
index 9777a30..39c9cd6 100644
--- a/Assets/Scenes/Level_01.unity
+++ b/Assets/Scenes/Level_01.unity
@@ -38,7 +38,7 @@ RenderSettings:
   m_ReflectionIntensity: 1
   m_CustomReflection: {fileID: 0}
   m_Sun: {fileID: 0}
-  m_IndirectSpecularColor: {r: 0.45061505, g: 0.498609, b: 0.56437516, a: 1}
+  m_IndirectSpecularColor: {r: 0.45061463, g: 0.4986083, b: 0.5643749, a: 1}
   m_UseRadianceAmbientProbe: 0
 --- !u!157 &3
 LightmapSettings:
@@ -762,13 +762,13 @@ MonoBehaviour:
   m_GameObject: {fileID: 240257946}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 76a99222b1e4a384e923ac7e86efc709, type: 3}
+  m_Script: {fileID: 11500000, guid: 3e4449d7cdf76dd4ba03b989a21e7fd4, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
   playerHealth: {fileID: 33458251}
-  enemy: {fileID: 1206665591, guid: f264ab47e25d0374ba89abced0b94b2a, type: 3}
+  enemy: {fileID: 153412, guid: 548c56f4bcf4db24b8aa057e9846a005, type: 3}
   spawnEnemy: 2
-  spawnTime: 5
+  spawnTime: 3
   spawnPoints:
   - {fileID: 36326048}
   factory: {fileID: 180263585}
@@ -781,7 +781,7 @@ MonoBehaviour:
   m_GameObject: {fileID: 240257946}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 76a99222b1e4a384e923ac7e86efc709, type: 3}
+  m_Script: {fileID: 11500000, guid: 3e4449d7cdf76dd4ba03b989a21e7fd4, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
   playerHealth: {fileID: 33458251}
@@ -800,11 +800,11 @@ MonoBehaviour:
   m_GameObject: {fileID: 240257946}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 76a99222b1e4a384e923ac7e86efc709, type: 3}
+  m_Script: {fileID: 11500000, guid: 3e4449d7cdf76dd4ba03b989a21e7fd4, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
   playerHealth: {fileID: 33458251}
-  enemy: {fileID: 2022850296, guid: 73871ddf5c8d02442be00d9671a9d510, type: 3}
+  enemy: {fileID: 100002, guid: e5171f72421770240bd7c3989fe351e3, type: 3}
   spawnEnemy: 0
   spawnTime: 3
   spawnPoints:
diff --git a/Assets/Scenes/Level_02.unity b/Assets/Scenes/Level_02.unity
index 8382e02..435434e 100644
--- a/Assets/Scenes/Level_02.unity
+++ b/Assets/Scenes/Level_02.unity
@@ -844,8 +844,8 @@ MonoBehaviour:
   spawnTime: 5
   spawnPointsCenter: {x: 0, y: 0, z: 0}
   spawnRotation: {x: 0, y: 0, z: 0}
-  size: {x: 100, y: 0, z: 100}
-  factory: {fileID: 180263585}
+  size: {x: 0, y: 0, z: 0}
+  factory: {fileID: 0}
 --- !u!4 &240257950
 Transform:
   m_ObjectHideFlags: 0
diff --git a/Assets/Scripts/Managers/EnemyManager.cs b/Assets/Scripts/Managers/EnemyManager.cs
index 4f734e1..c286017 100644
--- a/Assets/Scripts/Managers/EnemyManager.cs
+++ b/Assets/Scripts/Managers/EnemyManager.cs
@@ -1,7 +1,6 @@
-using System.Collections;
+using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
-using UnityEngine.AI;
 
 public class EnemyManager : MonoBehaviour
 {
@@ -9,42 +8,31 @@ public class EnemyManager : MonoBehaviour
     public GameObject enemy;
     public int spawnEnemy;
     public float spawnTime = 3f;
-    public Vector3 spawnPointsCenter;
-    public Vector3 spawnRotation;
-    public Vector3 size;
-    UnityEngine.AI.NavMeshAgent nav;
-    int floorMask;
+    public Transform[] spawnPoints;
+
     [SerializeField]
     public MonoBehaviour factory;
     IFactory Factory { get { return factory as IFactory; } }
 
-    void Start ()
+    void Start()
     {
-        floorMask = LayerMask.GetMask("Floor");
         //Mengeksekusi fungs Spawn setiap beberapa detik sesui dengan nilai spawnTime
-        nav = GetComponent<UnityEngine.AI.NavMeshAgent>();
         InvokeRepeating("Spawn", spawnTime, spawnTime);
     }
 
 
-    void Spawn ()
+    void Spawn()
     {
         if (playerHealth.currentHealth <= 0f)
         {
             return;
         }
-        NavMeshHit hit;
-        bool search = true;
-        while (search)
-        {
-            Vector3 pos = spawnPointsCenter + new Vector3(Random.Range(-size.x / 2, size.x / 2), 0.5f, Random.Range(-size.z / 2, size.z / 2));
-            if (NavMesh.SamplePosition(pos, out hit, 1f, NavMesh.AllAreas))
-            {
-                Quaternion quaternion = Quaternion.Euler(spawnRotation.x, spawnRotation.y, spawnRotation.z);
-                // Menduplikasi enemy
-                Instantiate(Factory.FactoryMethod(spawnEnemy), pos, quaternion);
-                search = false;
-            }
-        }
+
+        int spawnPointIndex = Random.Range(0, spawnPoints.Length);
+
+        // Menduplikasi enemy
+        Instantiate(Factory.FactoryMethod(spawnEnemy), spawnPoints[spawnPointIndex].position, spawnPoints[spawnPointIndex].rotation);
+
+
     }
 }
diff --git a/Assets/Scripts/Managers/EnemyManager.cs.meta b/Assets/Scripts/Managers/EnemyManager.cs.meta
index 2473a11..2423de3 100644
--- a/Assets/Scripts/Managers/EnemyManager.cs.meta
+++ b/Assets/Scripts/Managers/EnemyManager.cs.meta
@@ -1,8 +1,11 @@
 fileFormatVersion: 2
-guid: 76a99222b1e4a384e923ac7e86efc709
+guid: 3e4449d7cdf76dd4ba03b989a21e7fd4
 MonoImporter:
+  externalObjects: {}
   serializedVersion: 2
   defaultReferences: []
   executionOrder: 0
   icon: {instanceID: 0}
   userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/Managers/EnemyManagerWave.cs b/Assets/Scripts/Managers/EnemyManagerWave.cs
new file mode 100644
index 0000000..ea416d6
--- /dev/null
+++ b/Assets/Scripts/Managers/EnemyManagerWave.cs
@@ -0,0 +1,50 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.AI;
+
+public class EnemyManagerWave : MonoBehaviour
+{
+    public PlayerHealth playerHealth;
+    public GameObject enemy;
+    public int spawnEnemy;
+    public float spawnTime = 3f;
+    public Vector3 spawnPointsCenter;
+    public Vector3 spawnRotation;
+    public Vector3 size;
+    UnityEngine.AI.NavMeshAgent nav;
+    int floorMask;
+    [SerializeField]
+    public MonoBehaviour factory;
+    IFactory Factory { get { return factory as IFactory; } }
+
+    void Start ()
+    {
+        floorMask = LayerMask.GetMask("Floor");
+        //Mengeksekusi fungs Spawn setiap beberapa detik sesui dengan nilai spawnTime
+        nav = GetComponent<UnityEngine.AI.NavMeshAgent>();
+        InvokeRepeating("Spawn", spawnTime, spawnTime);
+    }
+
+
+    void Spawn ()
+    {
+        if (playerHealth.currentHealth <= 0f)
+        {
+            return;
+        }
+        NavMeshHit hit;
+        bool search = true;
+        while (search)
+        {
+            Vector3 pos = spawnPointsCenter + new Vector3(Random.Range(-size.x / 2, size.x / 2), 0.5f, Random.Range(-size.z / 2, size.z / 2));
+            if (NavMesh.SamplePosition(pos, out hit, 1f, NavMesh.AllAreas))
+            {
+                Quaternion quaternion = Quaternion.Euler(spawnRotation.x, spawnRotation.y, spawnRotation.z);
+                // Menduplikasi enemy
+                Instantiate(Factory.FactoryMethod(spawnEnemy), pos, quaternion);
+                search = false;
+            }
+        }
+    }
+}
diff --git a/Assets/Scripts/Managers/EnemyManagerWave.cs.meta b/Assets/Scripts/Managers/EnemyManagerWave.cs.meta
new file mode 100644
index 0000000..2473a11
--- /dev/null
+++ b/Assets/Scripts/Managers/EnemyManagerWave.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 76a99222b1e4a384e923ac7e86efc709
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
-- 
GitLab