public void Init(MultipleChoiceTrigger _trigger) { DisableAllButton(); trigger = _trigger; question.text = trigger.question; int i = 0; foreach (MultipleChoiceTrigger.Choice choice in trigger.choices.Values) { choiceButton[i].GetComponentsInChildren<Text>(true)[0].text = choice.Value; choiceButton[i].gameObject.SetActive(true); i++; } Enable(true); }
/// <summary> /// The method for creating a trigger /// </summary> /// <param name="_trigger">The xml element containing the trigger description (Root node = Trigger)</param> /// <returns>The newly created trigger.</returns> public override Trigger CreateTrigger(XElement _trigger) { MultipleChoiceTrigger t = null; String id = _trigger.Attribute("id").Value; String question = _trigger.Descendants("Question").First().Value; Dictionary<String, MultipleChoiceTrigger.Choice> choices = new Dictionary<String, MultipleChoiceTrigger.Choice>(); XElement choicesElement = _trigger.Descendants("Choices").First(); foreach (XElement choiceElement in choicesElement.Elements()) { MultipleChoiceTrigger.Choice choice = new MultipleChoiceTrigger.Choice(); choice.Value = choiceElement.Value; choice.Action = choiceElement.Attribute("action") == null ? "" : choiceElement.Attribute("action").Value; choice.Waypoint = choiceElement.Attribute("waypoint") == null ? "" : choiceElement.Attribute("waypoint").Value; choice.Object = choiceElement.Attribute("object") == null ? "" : choiceElement.Attribute("object").Value; choices.Add(choice.Value, choice); } t = new MultipleChoiceTrigger(id, question, choices); t.preTriggerObjectIds = new List<string>(); t.postTriggerObjectIds = new List<string>(); if (_trigger.Element("PreTriggerObject") != null) foreach (XElement objectIdElement in _trigger.Element("PreTriggerObject").Elements()) { t.preTriggerObjectIds.Add(objectIdElement.Value); } if (_trigger.Element("PostTriggerObject") != null) foreach (XElement objectIdElement in _trigger.Element("PostTriggerObject").Elements()) { t.postTriggerObjectIds.Add(objectIdElement.Value); } return t; }
//Enables trigger areas based on the question state public void EnableTriggerAreas(QuestionManager.QuestionState questionState) { switch (questionState) { case QuestionManager.QuestionState.None: //Trigger Areas AmbientTrigger.SetActive(true); PollTrigger.SetActive(false); MultipleChoiceTrigger.SetActive(false); ScatterPlotTrigger.SetActive(false); //CGF Areas foreach (var cgf in PollCgfs) { cgf.Enable = false; } foreach (var cgf in MultipleChoiceCgfs) { cgf.Enable = false; } break; case QuestionManager.QuestionState.Poll: //Trigger Areas AmbientTrigger.SetActive(false); PollTrigger.SetActive(true); MultipleChoiceTrigger.SetActive(false); ScatterPlotTrigger.SetActive(false); //CGF Areas foreach (var cgf in PollCgfs) { cgf.Enable = true; } foreach (var cgf in MultipleChoiceCgfs) { cgf.Enable = false; } break; case QuestionManager.QuestionState.MultipleChoice: //Trigger Areas AmbientTrigger.SetActive(false); PollTrigger.SetActive(false); MultipleChoiceTrigger.SetActive(true); ScatterPlotTrigger.SetActive(false); //CGF Areas foreach (var cgf in PollCgfs) { cgf.Enable = false; } foreach (var cgf in MultipleChoiceCgfs) { cgf.Enable = true; } break; case QuestionManager.QuestionState.ScatterPlot: //Trigger Areas AmbientTrigger.SetActive(false); PollTrigger.SetActive(false); MultipleChoiceTrigger.SetActive(false); ScatterPlotTrigger.SetActive(true); //CGF Areas foreach (var cgf in PollCgfs) { cgf.Enable = false; } foreach (var cgf in MultipleChoiceCgfs) { cgf.Enable = false; } break; } }