]> git.lizzy.rs Git - SuperMouseAdventure.git/blob - 2DGame/Assets/Scripts/Enemies/FollowPlayer.cs
Neuer Gegner: Die Heli-Katze
[SuperMouseAdventure.git] / 2DGame / Assets / Scripts / Enemies / FollowPlayer.cs
1 using System;
2 using System.Collections;
3 using System.Collections.Generic;
4 using UnityEngine;
5
6 public class FollowPlayer : MonoBehaviour
7 {
8     //SerializeFields sind private, tauchen allerdings trotzdem im Inspector in Unity auf
9
10     [SerializeField]
11     Transform player;
12
13     public float agroRange;
14
15     [SerializeField]
16     private float MoveSpeed;
17
18     public float distToPlayer;
19
20     Rigidbody2D rb;
21
22     public bool followsMouse;
23
24     // Start is called before the first frame update
25     void Start()
26     {
27         rb = GetComponent<Rigidbody2D>();
28     }
29
30     // Update is called once per frame
31     void Update()
32     {
33         if (followsMouse)
34         {
35             //Abstand zur Spielfigur
36             distToPlayer = Vector2.Distance(transform.position, player.position);
37
38             if (distToPlayer < agroRange)
39             {
40                 ChasePlayer();
41             }
42             else
43             {
44                 StopChasingPlayer();
45             }
46         }
47     }
48
49     void ChasePlayer()
50     {
51         if(transform.position.x < player.position.x)
52         {
53             //Der Gegner ist links neben dem Spieler, also bewegt er sich nach rechts
54             rb.velocity = new Vector2(MoveSpeed, 0);
55
56             //Gegner wird der Bewegung entsprechend gedreht
57             transform.localScale = new Vector2(-1, 1);
58         }
59         else if(transform.position.x > player.position.x)
60         {
61             //Der Gegner ist rechts neben dem Spieler, also bewegt er sich nach links
62             rb.velocity = new Vector2(-MoveSpeed, 0);
63
64             //Gegner wird der Bewegung entsprechend gedreht
65             transform.localScale = new Vector2(1, 1);
66         }
67     }
68
69     void StopChasingPlayer()
70     {
71         //Geschwindigkeit des Gegners auf null setzen
72         rb.velocity = Vector2.zero;
73     }
74 }