コード例 #1
0
	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);
	}
コード例 #2
0
	/// <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;
	}
コード例 #3
0
    //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;
        }
    }