using System.Collections; using UnityEngine; public class HaiScript : MonoBehaviour { [SerializeField] GameObject button; [Header("Spawn Points")] [SerializeField] GameObject SPBack; [SerializeField] GameObject SPLeft; [SerializeField] GameObject SPRight; [SerializeField] GameObject SPDeath; bool spawnLeft = false; [Header("Character")] [SerializeField] GameObject Hai; //[SerializeField] int damageDealt = 1; //hat aktuell keinen Zweck [SerializeField] public float stateTime = 10f; public bool haiKill; [Header("Scripts")] [SerializeField] GameObject scriptPile; [SerializeField] GameObject door1; //1 is always Left [SerializeField] GameObject door2; [SerializeField] GameObject levelScript; [SerializeField] GameObject eFie; [SerializeField] GameObject eSilv; ChangeHealth healthScript; Door doorSwitch; Door doorSwitch2; LevelBehavior level; FieScript fie; SilvScript silv; private void Awake() { healthScript = scriptPile.GetComponent(); doorSwitch = door1.GetComponent(); doorSwitch2 = door2.GetComponent(); level = levelScript.GetComponent(); fie = eFie.GetComponent(); silv = eSilv.GetComponent(); } void Start() { button.SetActive(false); //zum vorherigen Debuggen genutzt spawnLeft = false; //StateOne(); StartStuff(); } void Update() { } public void HitPlayer() { healthScript.GetHit(); } public void StartStuff() { Debug.Log("I´m starting stuff."); StartCoroutine(WanderAround()); } IEnumerator WanderAround() { float elapsed = 0; Debug.Log("Hai: Wandering around"); button.SetActive(false); Hai.transform.position = SPBack.transform.position; //Hauptposition Debug.Log("Hai: Bin hinten"); int random = Random.Range(1, 3); if (random == 1) //1 bedeutet immer left { spawnLeft = true; } else { spawnLeft = false; } Debug.Log("random = " + random); while (elapsed < stateTime) { elapsed += Time.deltaTime; } yield return new WaitForSeconds(stateTime); StartCoroutine(WanderClose()); } IEnumerator WanderClose() { float elapsed2 = 0; if (spawnLeft == true) //1 bedeutet immer left { Hai.transform.position = SPLeft.transform.position; } else { Hai.transform.position = SPRight.transform.position; } //einen von zwei Punkten aussuchen Debug.Log("Hai: Komme näher"); while (elapsed2 < stateTime) { elapsed2 += Time.deltaTime; } yield return new WaitForSeconds(stateTime); StartCoroutine(GetTooClose()); } IEnumerator GetTooClose() { float elapsed3 = 0; float stickAround = 0f; if (spawnLeft && doorSwitch.isOpen == true) { Hai.transform.position = SPDeath.transform.position; Debug.Log("Hai: Hab dich!"); //reingehen HitPlayer(); fie.fieKill = false; silv.silvKill = false; haiKill = true; stickAround += Time.deltaTime; if (stickAround >= 2f) { Hai.transform.position = SPBack.transform.position; stickAround = 0f; } } else if (!spawnLeft && doorSwitch2.isOpen == true) { Hai.transform.position = SPDeath.transform.position; Debug.Log("Hai: Hab dich!"); //reingehen HitPlayer(); fie.fieKill = false; silv.silvKill = false; haiKill = true; stickAround += Time.deltaTime; if (stickAround >= 2f) { Hai.transform.position = SPBack.transform.position; stickAround = 0f; } } else { //AudioSpielen haiKill = false; level.earnedGems += level.earnGems; Debug.Log("Hai: Och menno"); Hai.transform.position = SPBack.transform.position; } spawnLeft = false; //StateOne(); while (elapsed3 < stateTime) { elapsed3 += Time.deltaTime; } yield return new WaitForSeconds(stateTime); StartCoroutine(WanderAround()); } }