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; }
public void StopCameraCoverLightChange() { if (m_cameraLightType != ENCameraLightType.enNone) { if (m_cameraLightType != ENCameraLightType.enD2L) { m_cameraLightIndex = -1; } m_cameraLightType = ENCameraLightType.enD2L; } }
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; } }