public CharUIElement RemoveUI(Character character) { for (int i = 0; i < charUIs.Count; i++) { if (charUIs[i] != null && charUIs[i].character == character) { CharUIElement z = charUIs[i]; charUIs.Remove(charUIs[i]); OrderUI(); return(z); } } //charUIs.RemoveAll(x => x.character == character); return(null); }
public void PositionUI(CharUIElement cue) { RectTransform rect; int count; if (cue.character.team == 0) { rect = t0anchor.GetComponent <RectTransform>(); count = t0anchor.transform.childCount; cue.transform.SetParent(t0anchor.transform); } else { rect = t1anchor.GetComponent <RectTransform>(); count = t1anchor.transform.childCount; cue.transform.SetParent(t1anchor.transform); } cue.GetComponent <RectTransform>().anchoredPosition = new Vector2(rect.anchoredPosition.x, rect.anchoredPosition.y - count * -offset); }
private void AddCharacter(Tile t, GameObject prefab) { int grp = Undo.GetCurrentGroup(); Undo.RecordObject(world.GetComponent <UiHandler>(), "New Char"); Undo.RecordObject(t.tileContent, "New Char"); GameObject z = PrefabUtility.InstantiatePrefab(prefab) as GameObject; world.AddCharPrefab(z, t, team); t.tileContent.type = GameHelper.TileType.Gras; Undo.RegisterCreatedObjectUndo(z, "New Char"); CharUIElement cue = Instantiate(world.charuiprefab).GetComponent <CharUIElement>(); cue.character = z.GetComponent <Character>(); cue.Init(); world.GetComponent <UiHandler>().AddUI(cue); Undo.RegisterCreatedObjectUndo(cue.gameObject, "New Char"); //has to be done or UiHandler charUis contains None refereces after play EditorUtility.SetDirty(world.GetComponent <UiHandler>()); Undo.CollapseUndoOperations(grp); }
//Add Remove Section private void RemoveCharacter(Tile t) { int grp = Undo.GetCurrentGroup(); //weird RegisterObect not enough UiHandler.charuis will not get updated but with RegisterCompleteObjectUndo it works Undo.RegisterCompleteObjectUndo(world.GetComponent <UiHandler>().gameObject, "New Char"); //Same here Undo.RegisterCompleteObjectUndo(t.tileContent, "Remove Char"); //save position of Ui Undo.RegisterFullObjectHierarchyUndo(GameObject.Find("Canvas"), "Remove Char"); CharUIElement cue = world.GetComponent <UiHandler>().Get(t.tileContent.GetCharacter()); Undo.DestroyObjectImmediate(cue.gameObject); world.GetComponent <UiHandler>().ClearNones(); world.GetComponent <UiHandler>().OrderUI(); Undo.DestroyObjectImmediate(t.tileContent.GetCharacter().gameObject); t.tileContent.character = null; //has to be done or UiHandler charUis contains None refereces after play EditorUtility.SetDirty(world.GetComponent <UiHandler>()); Undo.CollapseUndoOperations(grp); }
public void AddUI(CharUIElement cue) { charUIs.Add(cue); PositionUI(cue); }