private void OnLookEnd()
        {
            float duration = STKTestStage.GetTime() - hitTime;

            GetComponent <STKEventSender>().SetEventValue("ObjectName", lookingAt.name);
            GetComponent <STKEventSender>().SetEventValue("Duration", duration);
            GetComponent <STKEventSender>().Deploy();
            lookingAt = null;
        }
 private void OnLookStart()
 {
     if (lookingAt != null)
     {
         OnLookEnd();
     }
     lookingAt = hit.transform.gameObject;
     hitTime   = STKTestStage.GetTime();
 }
 private void Update()
 {
     if (timedInterval && STKTestStage.GetStarted())
     {
         timeToSend -= Time.deltaTime;
         if (timeToSend < 0)
         {
             Deploy();
             timeToSend = interval;
         }
     }
 }
        public override void OnInspectorGUI()
        {
            if (!EditorApplication.isPlaying)
            {
                STKTestStage myTarget = (STKTestStage)target;
                EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());

                EditorGUILayout.LabelField("Add a new Property:");
                propertyName = EditorGUILayout.TextField("Name of new Property: ", propertyName);

                if (propertyName != null && propertyName != "")
                {
                    startProperty = EditorGUILayout.Toggle(new GUIContent("Start Property", "A start property is put in before the stage is started. Otherwise it can be put in while the stage is running."), startProperty);
                    if (GUILayout.Button("Add Input Property"))
                    {
                        myTarget.AddInputProperty(propertyName, startProperty);
                        Debug.Log("Edit " + startProperty);
                        propertyName = "";
                    }
                    if (GUILayout.Button("Add Toggle Property"))
                    {
                        myTarget.AddToggleProperty(propertyName, startProperty);
                        propertyName = "";
                    }
                }
                else
                {
                    GUILayout.Label("Please choose a name before adding a new property.");
                }
                EditorGUILayout.Space();

                EditorGUILayout.LabelField("Add a new Button:");
                buttonName = EditorGUILayout.TextField("Name of new Button: ", buttonName);

                if (buttonName != null && buttonName != "")
                {
                    if (GUILayout.Button("Add Button"))
                    {
                        myTarget.AddButton(buttonName);
                        buttonName = "";
                    }
                }
                else
                {
                    GUILayout.Label("Please choose a name before adding a new button.");
                }
                EditorGUILayout.Space();

                base.OnInspectorGUI();
            }
        }
        public void Deploy()
        {
            if (trackedComponents != null) //Get Values if this is a tracker
            {
                for (int i = 0; i < trackedComponents.Length; i++)
                {
                    for (int j = 0; j < trackedVariableNames.array[i].array.Length; j++)
                    {
                        if (trackedComponents[i].GetType().GetProperty(trackedVariableNames.array[i].array[j]) != null)
                        {
                            eventToSend.SetValue(eventVariableNames.array[i].array[j], trackedComponents[i].GetType().GetProperty(trackedVariableNames.array[i].array[j]).GetValue(trackedComponents[i]));
                        }
                        else if (trackedComponents[i].GetType().GetField(trackedVariableNames.array[i].array[j]) != null)
                        {
                            eventToSend.SetValue(eventVariableNames.array[i].array[j], trackedComponents[i].GetType().GetField(trackedVariableNames.array[i].array[j]).GetValue(trackedComponents[i]));
                        }
                    }
                }
            }

            eventToSend.time = STKTestStage.GetTime();
            STKEventReceiver.ReceiveEvent(eventToSend);
            eventToSend = Instantiate(eventBase);
        }