示例#1
0
    private void Update()
    {
        if (m_Type == RotateTypeUI.None)
        {
            return;
        }

        if (m_Type == RotateTypeUI.Continuous)
        {
            m_Transform.Rotate(m_RotateAxis * m_Speed * Time.deltaTime);
        }

        if (m_Type == RotateTypeUI.Discreet)
        {
            float rate = (Time.time - m_StartTime) / m_Time;
            m_Angle = Mathf.Lerp(0.0f, m_ToAngle, m_Curve.Evaluate(rate));
            m_Transform.rotation = Quaternion.Euler(m_RotateAxis * m_Angle);

            if (m_Angle >= m_ToAngle)
            {
                m_Type = RotateTypeUI.None;
                m_Transform.rotation = Quaternion.identity;
            }
        }
    }
示例#2
0
 public void Rotate()
 {
     m_StartTime = Time.time;
     m_Type      = RotateTypeUI.Discreet;
 }
示例#3
0
 private void Start()
 {
     m_Type = m_UseContinuous ? RotateTypeUI.Continuous : RotateTypeUI.None;
 }