// Update is called once per frame void Update() { // make the uis if we havent done so yet, after the manager has called Start() if (uis.Count == 0) { uis = new List <CharacterUI>(); if (prefab.GetComponent <CharacterUI>().FloatingMenu == true) { for (int i = 0; i < manager.characters.Count; i++) { GameObject go = Instantiate(prefab.gameObject, transform); CharacterUI tmp = go.GetComponent <CharacterUI>(); uis.Add(tmp); tmp.SetCharacter(manager.characters[i]); } } else { //creates only 1 for the menu GameObject go = Instantiate(prefab.gameObject, transform); CharacterUI tmp = go.GetComponent <CharacterUI>(); uis.Add(tmp); tmp.SetCharacter(manager.characters[0]); } } }
//lets you right click the portraits to change the active player too private void HudCharacterClick() { Debug.Log("hud called"); PointerEventData pointer = new PointerEventData(EventSystem.current); pointer.position = Input.mousePosition; EventSystem.current.RaycastAll(pointer, hits); //loops over all hits, if the gameobject has a charaUI component it will set only that character to active/change the animations foreach (RaycastResult hit in hits) { CharacterUI charaUi = hit.gameObject.GetComponentInParent <CharacterUI>(); if (charaUi != null && !charaUi.character.IsDead) { Debug.Log("in loop"); foreach (Character chara in manager.characters) { chara.ActivePlayer = false; } manager.battleUIController.FloatingStats.UpdateHalos(); hit.gameObject.GetComponentInParent <CharacterUI>().character.ActivePlayer = true; //turing halo on for active playert foreach (Character chara in manager.characters) { if (chara.ActivePlayer == true && charaUi.character == chara && charaUi.Halo != null) { charaUi.Halo.gameObject.SetActive(true); } } for (int i = 0; i < manager.characters.Count; i++) { manager.MoveSetCheck(i); } } } }