using System.Collections; using System.Collections.Generic; using UnityEngine; public class DeveloperNeeds : MonoBehaviour { [SerializeField] List Needs = new List(); private Text2Speech _text2speech; private AudioSource _audioSource; // Start is called before the first frame update void Start() { _text2speech = GetComponent(); _audioSource = GetComponent(); } // Update is called once per frame void Update() { } // TODO: Enums statt strings verwenden // TODO: Multiple Needs möglich übereinander anzeigen? public GameObject SpawnCoffeeNeed(int numNeeds) => spawnNeed("coffee", numNeeds); public GameObject SpawnMateNeed(int numNeeds) => spawnNeed("mate", numNeeds); public GameObject SpawnToiletNeed(int numNeeds) => spawnNeed("toilet", numNeeds); public GameObject SpawnHungerNeed(int numNeeds) => spawnNeed("hunger", numNeeds); public GameObject SpawnMoneyNeed(int numNeeds) => spawnNeed("money", numNeeds); public GameObject spawnNeed(string needName, float numNeeds) { GameObject spawnedNeed = null; string context = ""; switch (needName) { case "coffee": spawnedNeed = Instantiate(Needs[0], new Vector3(0.0f, 2f + (numNeeds * 0.5f), 0.0f), Needs[0].transform.rotation); context = "The Developer wants coffee"; break; case "mate": spawnedNeed = Instantiate(Needs[1], new Vector3(0.0f, 2f + (numNeeds * 0.5f), 0.0f), Needs[0].transform.rotation); context = "The Developer wants a Blub Mate (Yes, its a drink called Blub Mate)"; break; case "toilet": spawnedNeed = Instantiate(Needs[2], new Vector3(0.0f, 2f + (numNeeds * 0.5f), 0.0f), Needs[0].transform.rotation); context = "The Developer wants to go to the toilet, toilet is clogged and dirty"; break; case "hunger": spawnedNeed = Instantiate(Needs[3], new Vector3(0.0f, 2f + (numNeeds * 0.5f), 0.0f), Needs[0].transform.rotation); context = "The Developer wants a pizza"; break; default: Debug.LogError($"Unbekannter need \"{needName}\""); break; } if (spawnedNeed != null) { spawnedNeed.transform.SetParent(transform, false); spawnedNeed.transform.localScale = new Vector3(0.4f, 0.01f, 0.4f); if (!_audioSource.isPlaying) { _text2speech.Generate(context); } return spawnedNeed; } return null; } }