示例#1
0
    void Update()
    {
        if (m_Valid && Debugging.debugControlEnabled && m_OriginalCamera != null)
        {
            m_MessageTimer += Time.deltaTime;
            bool needUpdateCamera = false;
            if (Input.GetButtonDown(kDebugNext))
            {
                NextCamera();
                needUpdateCamera = true;
            }

            if (Input.GetButtonDown(kDebugPrevious))
            {
                PreviousCamera();
                needUpdateCamera = true;
            }

            if (needUpdateCamera)
            {
                m_MessageTimer = 0.0f;

                if (m_CurrentCamera == m_OriginalCamera)
                {
                    m_OriginalCameraPosition = m_OriginalCamera.transform.position;
                    m_OriginalCameraRotation = m_OriginalCamera.transform.rotation;
                }

                m_CurrentCamera = GetNextCamera();

                if (m_CurrentCamera != null)
                {
                    // If we witch back to the original camera, put back the transform in it.
                    if (m_CurrentCamera == m_OriginalCamera)
                    {
                        m_OriginalCamera.transform.position = m_OriginalCameraPosition;
                        m_OriginalCamera.transform.rotation = m_OriginalCameraRotation;
                    }

                    transform.position = m_CurrentCamera.transform.position;
                    transform.rotation = m_CurrentCamera.transform.rotation;
                }
            }

            if (m_MessageTimer < m_MessageDuration)
            {
                string cameraName = m_CurrentCamera != null ? m_CurrentCamera.name : "NULL";
                string message    = string.Format("Switching to camera : {0}", cameraName);
                Debugging.PushDebugMessage(message);
            }
        }
    }