public void AñadirPersonaje(Personaje character) { if (personajes.ContainsKey(character)) { Debug.LogWarning("CharacterInterfaceController::AñadirPersonaje error: Ya existe un personaje así."); return; } if (manager == null) { Debug.LogWarning("CharacterInterfaceController::AñadirPersonaje error: No existe el manager."); return; } GameObject obj = GameObject.Instantiate(controller.characterInterfacePrefab); obj.transform.SetParent(controller.panelCharacterInterface.transform); obj.transform.localScale = new Vector3(1, 1, 1); obj.GetComponent <RectTransform>().anchoredPosition = new Vector2(60 + 100 * personajes.Count, -25); CharacterPanel script = obj.GetComponent <CharacterPanel>(); script.SetCharacter(character); script.boton.onClick.AddListener(() => { manager.characterController.Actualizar(character); }); EventTrigger trigger = obj.GetComponent <EventTrigger>(); //Entrar EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerEnter; entry.callback.AddListener((eventData) => { script.subPanel.SetActive(true); }); trigger.triggers.Add(entry); //Salir EventTrigger.Entry exit = new EventTrigger.Entry(); exit.eventID = EventTriggerType.PointerExit; exit.callback.AddListener((eventData) => { script.subPanel.SetActive(false); }); trigger.triggers.Add(exit); script.subPanel.SetActive(false); personajes.Add(character, script); }
public void AssignSelectedObject(ISelectable obj) { HidePanels(); if (obj is Building) { PanelVisible = true; Building building = (Building)obj; if (building.Module == null) { if (building.GetDisplayObject() is ConstructionSiteDisplayObject) { ConstructionSiteDisplayObject cds = (ConstructionSiteDisplayObject)building.GetDisplayObject(); ConstructionPanel.gameObject.SetActive(true); ConstructionPanel.SetConstructionSite(cds.ConstructionSite); BuildingModulePanel.gameObject.SetActive(true); BuildingModulePanel.SetModule(cds.ConstructionSite); } else if (building.Type == "Stairs" || building.Type == "Platform" || building.Type == "Slab") { OtherBuildingPanel.gameObject.SetActive(true); OtherBuildingPanel.SetOtherBuilding(building); } } else { if (building.Module is Storage) { StoragePanel.gameObject.SetActive(true); StoragePanel.SetStorage((Storage)building.Module); } else if (building.Module is Factory) { if (((Factory)building.Module).IsNaturalDeposit) { NaturalDepositPanel.gameObject.SetActive(true); NaturalDepositPanel.SetDeposit((Factory)building.Module); } else { FactoryPanel.gameObject.SetActive(true); FactoryPanel.SetFactory((Factory)building.Module); } } else if (building.Module is Service) { ServicePanel.gameObject.SetActive(true); ServicePanel.SetService((Service)building.Module); } if (building.Prototype.IsNaturalDeposit) { return; } BuildingModulePanel.gameObject.SetActive(true); BuildingModulePanel.SetModule(building.Module); } } else if (obj is Character) { PanelVisible = true; Character c = (Character)obj; if (c.IsRobot) { RobotPanel.gameObject.SetActive(true); RobotPanel.SetRobot(c); } else { CharacterPanel.gameObject.SetActive(true); CharacterPanel.SetCharacter(c); } } }