aboutsummaryrefslogtreecommitdiff
path: root/td/Assets/Scripts/Enemy.cs
diff options
context:
space:
mode:
Diffstat (limited to 'td/Assets/Scripts/Enemy.cs')
-rw-r--r--td/Assets/Scripts/Enemy.cs39
1 files changed, 39 insertions, 0 deletions
diff --git a/td/Assets/Scripts/Enemy.cs b/td/Assets/Scripts/Enemy.cs
new file mode 100644
index 0000000..7273370
--- /dev/null
+++ b/td/Assets/Scripts/Enemy.cs
@@ -0,0 +1,39 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class Enemy : MonoBehaviour {
+
+ public float speed;
+ public float initialHp;
+ public Transform pathWay;
+
+ List<Vector3> waypoints = new List<Vector3>();
+ Vector3 waypointPos;
+ int waypointNum = -1; // Using minus one so that first addition returns 0, first element in array
+
+ void Start () {
+ foreach (Transform child in pathWay) {
+ waypoints.Add (child.position);
+ }
+ }
+
+ void Update () {
+ updateWaypoint ();
+
+ float transformStep = speed * Time.deltaTime;
+ transform.position = Vector3.MoveTowards (transform.position, waypointPos, transformStep);
+
+ if (waypointNum == waypoints.Count - 1) {
+ Destroy (gameObject);
+ }
+ }
+
+ void updateWaypoint() {
+ if ( (transform.position == waypointPos && waypointNum < waypoints.Count - 1) || waypointNum == -1) {
+ waypointNum++;
+ waypointPos = new Vector3 (waypoints [waypointNum].x, 0.604f, waypoints [waypointNum].z);
+ }
+ }
+
+}