示例#1
0
 public void CameraCoverLightChange(string lightToDark, string darkToLight, float duration)
 {
     m_cameraLightL2D       = lightToDark;
     m_cameraLightD2L       = darkToLight;
     m_cameraLightDuration  = duration;
     m_cameraLightStartTime = Time.time;
     m_cameraLightType      = ENCameraLightType.enL2D;
     m_cameraLightIndex     = -1;
 }
示例#2
0
 public void StopCameraCoverLightChange()
 {
     if (m_cameraLightType != ENCameraLightType.enNone)
     {
         if (m_cameraLightType != ENCameraLightType.enD2L)
         {
             m_cameraLightIndex = -1;
         }
         m_cameraLightType = ENCameraLightType.enD2L;
     }
 }
示例#3
0
    void UpdateCameraLight()
    {
        switch (m_cameraLightType)
        {
        case ENCameraLightType.enL2D:
        {
            AnimCurveData data = AnimCurveDataManager.Singleton.GetAnimCurveData("Anim/" + m_cameraLightL2D + ".bytes");
            float         now  = Time.time;
            if (now - m_cameraLightStartTime > data.m_interval || m_cameraLightIndex == -1)
            {
                m_cameraLightStartTime = now;
                ++m_cameraLightIndex;
                if (m_cameraLightIndex >= data.AnimCurveInfoList.Count)
                {
                    m_cameraLightType      = ENCameraLightType.enIng;
                    m_cameraLightStartTime = now;
                    m_cameraLightIndex     = -1;
                    return;
                }
                Renderer[] renders = m_darkerObj.GetComponentsInChildren <Renderer>();
                foreach (Renderer r in renders)
                {
                    KeyframeData info = data.AnimCurveInfoList[m_cameraLightIndex % data.AnimCurveInfoList.Count];
                    foreach (var propItem in info.PropertyInfoList)
                    {
                        if (r.material.HasProperty(propItem.m_name))
                        {
                            //if (propItem.m_color != Color.white)
                            //{
                            //    r.material.SetColor(propItem.m_name, propItem.m_color);
                            //}
                            if (propItem.m_value != float.MinValue)
                            {
                                r.material.SetFloat(propItem.m_name, propItem.m_value);
                            }
                        }
                    }
                }
            }
        }
        break;

        case ENCameraLightType.enIng:
            if (Time.time - m_cameraLightStartTime > m_cameraLightDuration)
            {
                m_cameraLightType      = ENCameraLightType.enD2L;
                m_cameraLightStartTime = Time.time;
                m_cameraLightIndex     = -1;
            }
            break;

        case ENCameraLightType.enD2L:
        {
            AnimCurveData data = AnimCurveDataManager.Singleton.GetAnimCurveData("Anim/" + m_cameraLightD2L + ".bytes");
            float         now  = Time.time;
            if (now - m_cameraLightStartTime > data.m_interval || m_cameraLightIndex == -1)
            {
                m_cameraLightStartTime = now;
                ++m_cameraLightIndex;
                if (m_cameraLightIndex >= data.AnimCurveInfoList.Count)
                {
                    m_cameraLightType = ENCameraLightType.enNone;
                    return;
                }
                Renderer[] renders = m_darkerObj.GetComponentsInChildren <Renderer>();
                foreach (Renderer r in renders)
                {
                    KeyframeData info = data.AnimCurveInfoList[m_cameraLightIndex % data.AnimCurveInfoList.Count];
                    foreach (var propItem in info.PropertyInfoList)
                    {
                        if (r.material.HasProperty(propItem.m_name))
                        {
                            //if (propItem.m_color != Color.white)
                            //{
                            //    r.material.SetColor(propItem.m_name, propItem.m_color);
                            //}
                            if (propItem.m_value != float.MinValue)
                            {
                                r.material.SetFloat(propItem.m_name, propItem.m_value);
                            }
                        }
                    }
                }
            }
        }
        break;

        default:
            break;
        }
    }