//public void OnHandleEvent(IGameNormalEventSender sender, E_GameNormalEvent e, params object[] args) //{ // if (E_GameNormalEvent.Trigger_Camera_Stock == e) // { // CameraStock stock = (CameraStock)args[0]; // m_cameraImpl.UpdateStock(stock); // } // else if (E_GameNormalEvent.Trigger_Camera_Zoom == e) // { // float Distance = (float)args[0]; // float Time = (float)args[1]; // m_cameraImpl.StartCoroutine(ZoomBlendStart(Distance, Time)); // } // else if (E_GameNormalEvent.StartDarkChange == e) // StartDarkChange(); // else if (E_GameNormalEvent.EndDarkChange == e) // EndDarkChange(); //} IEnumerator ZoomBlendStart(float distance, float time) { CameraSetting setting = m_cameraImpl.Setting; float deltatime = 0.0f; float olddis = setting.CameraStock.Distance; bool outcheck = distance > 0.0f ? true : false; float newdis = Mathf.Abs(distance); var ease = Interpolate.Ease(Interpolate.EaseType.Linear); while (deltatime <= time) { deltatime += TimeManager.deltaTime; float deltadis = ease(0.0f, newdis, deltatime, time); if (outcheck) { setting.CameraStock.Distance = olddis + deltadis; } else { setting.CameraStock.Distance = olddis - deltadis; } m_cameraImpl.UpdateStock(setting.CameraStock); yield return(new WaitForEndOfFrame()); } setting.CameraStock.Distance = distance; }