示例#1
0
    private void PlayAudioInstructions()
    {
        InteractionTechnique it = GetInteractionTechnique();

        AudioClip[] instructions = it.GetInstructions();
        if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            if (currentInstruction < instructions.Length - 1)
            {
                currentInstruction++;
                instructionsAudioSource.Stop();
                instructionsAudioSource.clip = instructions[currentInstruction];
                instructionsAudioSource.Play();
                UpdateStatusText();
            }
        }
        else if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            if (currentInstruction > -1)
            {
                if (currentInstruction > 0)
                {
                    currentInstruction--;
                }
                instructionsAudioSource.Stop();
                instructionsAudioSource.clip = instructions[currentInstruction];
                instructionsAudioSource.Play();
                UpdateStatusText();
            }
        }
    }
示例#2
0
    private void Action(SteamVR_RenderModel arg0, bool arg1)
    {
        InteractionTechnique interactionTechnique = TaskController.Instance.GetInteractionTechnique();

        if (interactionTechnique && !interactionTechnique.moveHoverPoint)
        {
            return;
        }

        Hand hand = arg0.GetComponentInParent <Hand>();

        if (!hand)
        {
            return;
        }

        Transform hoverPoint = hand.transform.Find("HoverPoint");

        if (!hoverPoint)
        {
            return;
        }

        if (arg0.renderModelName.Contains("vive_cosmos"))
        {
            hoverPoint.localPosition = ViveCosmosHoverPointPosition;
        }
        else if (arg0.renderModelName.Contains("controller_vive"))
        {
            hoverPoint.localPosition = ViveProHoverPointPosition;
        }
    }
示例#3
0
    public InteractionTechnique GetInteractionTechnique()
    {
        InteractionTechnique interactionTechnique = null;

        if (currentTechnique != null)
        {
            interactionTechnique = currentTechnique.GetComponent <InteractionTechnique>();
            if (!interactionTechnique)
            {
                interactionTechnique = currentTechnique.GetComponentInChildren <InteractionTechnique>();
            }
        }
        return(interactionTechnique);
    }
        private void ParseStudyConfigFile()
        {
            string studyConfigFile = Properties.Settings.Default.InteractionTechniques;
            InteractionTechniques = new List<InteractionTechnique>();

            string[] techniques = studyConfigFile.Split(';');
            foreach (string t in techniques)
            {
                string[] parts = t.Split(':');

                string name = parts[0];
                string[] conditions = parts.Length > 1 ? parts[1].Split(',') : null;

                if (name != "")
                {
                    InteractionTechnique i = new InteractionTechnique(name, conditions);
                    InteractionTechniques.Add(i);
                }
            }

            Random rnd = new Random(DateTime.UtcNow.Second);
            InteractionTechniques = InteractionTechniques.OrderBy(x => rnd.Next()).ToList();
        }