コード例 #1
0
ファイル: MainMenuButton.cs プロジェクト: BlackBrad/GGJ2020
    // Update is called once per frame
    void Update()
    {
        float sign = m_IsHovered ? 1.0f : -1.0f;

        m_BlendAmount = Mathf.Clamp(
            m_BlendAmount + m_BlendFactor * Time.deltaTime * sign,
            0.0f, 1.0f);

        m_Text.color = Color.Lerp(m_InitialColor, m_HoverColor,
                                  EasingFunctions.InOutQuat(m_BlendAmount));
    }
コード例 #2
0
    public IEnumerator CloseDoorAnimation()
    {
        m_CurrentT      = 0.0f;
        m_Light.enabled = false;

        while (m_CurrentT < m_MaxT)
        {
            float t = Mathf.Clamp(m_CurrentT / m_MaxT, 0.0f, 1.0f);
            m_CurrentT          += Time.deltaTime;
            t                    = EasingFunctions.InOutQuat(t);
            m_Door.localRotation = Quaternion.Slerp(m_OpenDoorRotation, m_ClosedDoorRotation, t);
            yield return(new WaitForEndOfFrame());
        }
    }
コード例 #3
0
ファイル: FacePlayer.cs プロジェクト: BlackBrad/GGJ2020
    public IEnumerator RotateToTarget(Quaternion targetRotation, bool openDoor = false)
    {
        float      currentT        = 0.0f;
        float      maxT            = 1.9f;
        Quaternion initialRotation = transform.rotation;

        float t = 0.0f;

        while (t < 1.0f)
        {
            t = Mathf.Clamp(currentT / maxT, 0.0f, 1.0f);
            if (t >= 1.0f)
            {
                if (openDoor)
                {
                    MicrowaveController microwaveController = GetComponent <MicrowaveController>();
                    if (microwaveController != null)
                    {
                        microwaveController.OpenDoor();
                    }

                    TvController tvController = GetComponent <TvController>();
                    if (tvController != null)
                    {
                        tvController.SwitchOnScreen();
                    }
                }
            }

            currentT += Time.deltaTime;
            t         = EasingFunctions.InOutQuat(t);
            Quaternion currentRotation = Quaternion.Slerp(initialRotation, targetRotation, t);
            transform.rotation = Quaternion.AngleAxis(currentRotation.eulerAngles.y, Vector3.up);
            yield return(new WaitForEndOfFrame());
        }
    }