using System.Collections; using System.Collections.Generic; using UnityEngine; using System; [Serializable] public class ThugModel { [SerializeField] public string name; [SerializeField] public Vector3 position; public ThugModel(string _name, Vector3 _position) { name = _name; position = _position; } } public class NPCManager : MonoBehaviour { GameObject NPCCollection; public List thugs; public ThugModel bossThug; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { } void Awake() { NPCCollection = GameObject.FindGameObjectWithTag("NPCCollection"); if (NPCCollection == null) { throw new Exception("Object not found"); } if (GameObject.FindGameObjectWithTag("EnemyCollection").transform.Find(bossThug.name) == null) { Debug.Log("Build me :D"); CreateBossThug(); CreateThugs(); } } private void CreateThugs() { var model = Resources.Load("SampleScene/Enemies/Thug") as GameObject; foreach (var thug in thugs) { var ThugClone = GameObject.Instantiate(model, thug.position, Quaternion.identity, NPCCollection.transform); ThugClone.name = thug.name; ThugClone.transform.SetParent(NPCCollection.transform); //Debug.Log("Thug Name: " + ThugClone.name + " Positions: " + ThugClone.transform.position.x + " + " + ThugClone.transform.position.y + " + " + ThugClone.transform.position.z); //Debug.Log("Thug Name: " + ThugClone.name + " Local Positions: " + ThugClone.transform.localPosition.x + " + " + ThugClone.transform.localPosition.y + " + " + ThugClone.transform.localPosition.z); ThugClone.GetComponent().Name = thug.name; ThugClone.GetComponent().enemyName = thug.name; //delete and set in the controller todo? ThugClone.GetComponent().MinionName = "Thug"; ThugClone.GetComponent().isKilled = PlayerPrefs.HasKey(thug.name + "-S") ? PlayerPrefs.GetInt(thug.name + "-S") : 0; if (PlayerPrefs.HasKey(thug.name + "-S.health")) { ThugClone.GetComponent().health = PlayerPrefs.GetFloat(thug.name + "-S.health"); } // Dont set up it manually, let allow logic in Following Enemy scriptmanage avaible itself //ThugClone.SetActive(PlayerPrefs.HasKey(thug.name + "-S") ? !Convert.ToBoolean(PlayerPrefs.GetInt(thug.name + "-S")) : true); } } private void CreateBossThug() { Debug.Log("BOSS THUG IS CREATED!"); var modelBossThug = Resources.Load("SampleScene/Enemies/BossThug") as GameObject; var BossThugClone = GameObject.Instantiate(modelBossThug, bossThug.position, Quaternion.identity, NPCCollection.transform); BossThugClone.name = bossThug.name; BossThugClone.transform.SetParent(NPCCollection.transform); BossThugClone.GetComponent().Name = bossThug.name; BossThugClone.GetComponent().enemyName = bossThug.name; //delete and set in the controller todo? BossThugClone.GetComponent().MinionName = "Thug"; BossThugClone.SetActive(PlayerPrefs.HasKey(bossThug.name + "-S") ? !Convert.ToBoolean(PlayerPrefs.GetInt(bossThug.name + "-S")) : true); BossThugClone.GetComponent().isPanelEnabled = false; } }