/// <summary> /// Build multiple choice and returns its controller /// </summary> /// <param name="parent"></param> /// <returns></returns> public MultipleChoiceController Build(Transform parent = null) { //get container GameObject container = GameObject.FindWithTag("MultipleChoicesPanelContainer"); if (container == null) { container = Instantiate(transform.GetChild(0).gameObject); //first child must be container with canvas } //panel build with proper hierarchy GameObject controllerObject = CreateControllerObject(); GameObject panelVisualization = BuildPanelVisualization(numberOfChoices); controllerObject.transform.SetParent(container.transform); controllerObject.transform.localScale = new Vector3(scaleX, scaleY, 1f); panelVisualization.transform.SetParent(controllerObject.transform); //controller setup MultipleChoiceController controller = controllerObject.GetComponent <MultipleChoiceController>(); controller.SetPanelVisualization(panelVisualization); AddButtonActions(controller); return(controller); }
// UNDER HOOD FUNCTIONS ////////////////////////////////////////////////////////////////////////////// private void AddButtonActions(MultipleChoiceController controllerObject) { if (firstButtonActions != null) { foreach (MultipleChoiceController.OnButtonDownDelegate func in firstButtonActions) { controllerObject.onFirstButtonDown += func; } } if (secondButtonActions != null) { foreach (MultipleChoiceController.OnButtonDownDelegate func in secondButtonActions) { controllerObject.onSecondButtonDown += func; } } if (thirdButtonActions != null) { foreach (MultipleChoiceController.OnButtonDownDelegate func in thirdButtonActions) { controllerObject.onThirdButtonDown += func; } } if (fourthButtonActions != null) { foreach (MultipleChoiceController.OnButtonDownDelegate func in fourthButtonActions) { controllerObject.onFourthButtonDown += func; } } ClearControllerActions(); }
void Start() { multipleChoiceControllerInstance = multipleChoiceBuilder.SetNumberOfChoices(4) .SetBackgroundImageToAllButtons(backGroundImage) .SetBackgroundColorToAllButtons(Color.white) .SetTextToAllButtons("") .SetScale(0.75f, 0.75f) .AddOnFirstButtonDownAction(Repair) .AddOnSecondButtonDownAction(Move) .AddOnThirdButtonDownAction(Upgrade) .AddOnFourthButtonDownAction(Destroy) .Build(transform); PlacingEvents placingEvents = GetComponent <PlacingEvents>(); if (placingEvents != null) { GetComponent <PlacingEvents>().onBeginPlacing.AddListener(() => Activate(false)); GetComponent <PlacingEvents>().onPlaced.AddListener(() => Activate(true)); } }