void Update()
    {
        // Start sequence: Y_manette ou A_clavier
        if ((Input.GetKeyDown(KeyCode.JoystickButton3) || Input.GetKeyDown(KeyCode.A)) && !m_PSM.GetIsRunning())
        {
            if (m_OutputWriter.GetRecord())
            {
                m_OutputWriter.CreateFile();
            }

            StartCoroutine(m_PSM.FirstStep());
        }

        // Toggle menu: LeftAlt_clavier ou Start_manette
        if (Input.GetKeyDown(KeyCode.LeftAlt) || Input.GetKeyDown(KeyCode.JoystickButton7))
        {
            //panel.gameObject.SetActive(!panel.gameObject.activeSelf);
        }

        // Quitter: Back_manette ou Echap_clavier
        if (Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.JoystickButton6))
        {
            Application.Quit();
        }
    }
    void Shoot()
    {
        Ray        ray = new Ray(transform.position, transform.forward);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            if (hit.transform.tag == "Target")
            {
                // Hide indication and hide crosshair for half a second
                m_HUD.DisplayTexture(0);
                StartCoroutine(BlindCrosshair());

                // Re-lock targets so there can only be one shoot
                m_targetManager.LockTargets();

                // Get info
                string targetName = hit.transform.parent.name;
                m_impactGameobject.transform.position = hit.point;
                m_impactGameobject.transform.parent   = hit.transform;
                Vector3 localResult = m_impactGameobject.transform.localPosition;
                Vector3 targetSize  = hit.transform.gameObject.GetComponent <MeshFilter>().mesh.bounds.size;
                Vector3 results     = new Vector3(Mathf.Abs((2f * localResult.x) / targetSize.x), 0f, Mathf.Abs((2f * localResult.z) / targetSize.z));

                // Output info in .txt file
                if (m_outputWriter.GetRecord())
                {
                    m_outputWriter.AddRelativeResults(targetName, results, m_timer.Lap());
                }

                // Launch next step or stop and reset timer
                StopAllCoroutines();

                if (m_playSequenceManager.GetLastIteration())
                {
                    // Sequence ending
                    m_timer.Stop();
                    m_timer.Reset();
                    m_outputWriter.StandardExit();

                    // Thumbs up !
                    StartCoroutine(ThumbsUp(m_playSequenceManager.GetTemporisationTime()));

                    m_playSequenceManager.SetIsRunning(false);
                }
                else
                {
                    StartCoroutine(m_playSequenceManager.NextStep());
                }
            }
        }
    }
    void Shoot()
    {
        Ray        ray = new Ray(transform.position, transform.forward);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            if (hit.transform.tag == "Target")
            {
                // Hide indication
                m_HUD.DisplayTexture(0);

                // Re-lock targets so there can only be one shoot
                m_targetManager.LockTargets();

                // Get info
                string     targetName     = hit.transform.parent.name;
                Vector3    targetCenter   = hit.transform.position;
                Vector3    targetSize     = hit.transform.gameObject.GetComponent <MeshFilter>().mesh.bounds.size;
                Vector3    targetScale    = hit.transform.lossyScale;
                Quaternion targetRotation = hit.transform.rotation;

                //Vector3 results = m_matrixCalculation.ComputeResult(hit, MatrixCalculation.ComputationMethod.Euler);
                Vector3 results = m_matrixCalculation.ComputeResult(hit, MatrixCalculation.ComputationMethod.Quaternion);

                // Output info in .txt file
                if (m_outputWriter.GetRecord())
                {
                    //m_outputWriter.AddTrialResults(targetName, targetCenter, targetRotation, targetSize, targetScale, hit.point, m_timer.Lap());
                    m_outputWriter.AddRelativeResults(targetName, results, m_timer.Lap());
                }

                // Launch next step or stop and reset timer
                StopAllCoroutines();

                if (m_playSequenceManager.GetLastIteration())
                {
                    // Sequence ending
                    m_timer.Stop();
                    m_timer.Reset();
                    m_playSequenceManager.SetIsRunning(false);

                    // Thumbs up ?
                }
                else
                {
                    StartCoroutine(m_playSequenceManager.NextStep());
                }
            }
        }
    }
Exemple #4
0
    void Update()
    {
        // Start sequence: Y_manette ou A_clavier
        if ((Input.GetKeyDown(KeyCode.JoystickButton3) || Input.GetKeyDown(KeyCode.A)) && !m_PSM.GetIsRunning())
        {
            if (m_OutputWriter.GetRecord())
            {
                m_OutputWriter.CreateFile();
            }

            LoadGun();
            StartCoroutine(m_PSM.FirstStep());
        }

        // Quitter: Back_manette ou Echap_clavier
        if (Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.JoystickButton6))
        {
            Application.Quit();
        }
    }