using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using Snxxz.UI; public class CreateRolePostProcessor { public static bool HasPlayMovie(int playerId) { return LocalSave.GetBool(StringUtility.Contact(playerId, "_CreateRolePostMovie")); } public static void RecordPlayMovie(int playerId) { LocalSave.SetBool(StringUtility.Contact(playerId, "_CreateRolePostMovie"), true); } static bool isSkiped = false; static Action onEnd; public static void Begin(Action onComplete) { onEnd = onComplete; isSkiped = false; var uiroot = WindowCenter.Instance.uiRoot; uiroot.EnableCanvas(false, uiroot.baseCanvas, uiroot.lifeBarCanvas, uiroot.nameCanvas, uiroot.normalCanvas, uiroot.modalCanvas, uiroot.tipsCanvas, uiroot.systemCanvas, uiroot.recycleBin, uiroot.fightCanvasGroup.damageNumGroups[0].parent); WindowCenter.Instance.Open(); CameraController.Instance.CameraObject.enabled = false; if (Application.isEditor) { PlayMovie(); } else { WindowCenter.Instance.Close(); CameraManager.uiCamera.backgroundColor = Color.black; CameraManager.uiCamera.clearFlags = CameraClearFlags.SolidColor; Clock.AlarmAfter(0.1f, PlayMovie); } } public static void Skip() { isSkiped = true; MoviePlayer.Instance.Stop(); } static void PlayMovie() { switch (Application.platform) { case RuntimePlatform.Android: case RuntimePlatform.IPhonePlayer: Handheld.PlayFullScreenMovie("CreateRoleMovie.mp4", Color.black, FullScreenMovieControlMode.CancelOnInput, FullScreenMovieScalingMode.AspectFit); Clock.AlarmAfter(0.1f, PlayCameraAnimation); break; case RuntimePlatform.WindowsPlayer: MoviePlayer.Instance.Play("CreateRoleMovie", PlayCameraAnimation); break; case RuntimePlatform.WindowsEditor: case RuntimePlatform.OSXEditor: MoviePlayer.Instance.Play("CreateRoleMovie", PlayCameraAnimation); break; } } static void PlayCameraAnimation() { CameraManager.uiCamera.clearFlags = CameraClearFlags.Depth; CameraController.Instance.CameraObject.enabled = true; CameraController.Instance.PlayAnimationClip("KC_Camera"); var logicUpdate = new LogicUpdate(); logicUpdate.Start(() => { if (!CameraController.Instance.IsPlayingAnim) { logicUpdate.Destroy(); OnStop(); } }); } static void OnStop() { var uiroot = WindowCenter.Instance.uiRoot; uiroot.EnableCanvas(true, uiroot.baseCanvas, uiroot.lifeBarCanvas, uiroot.nameCanvas, uiroot.normalCanvas, uiroot.modalCanvas, uiroot.tipsCanvas, uiroot.systemCanvas, uiroot.recycleBin, uiroot.fightCanvasGroup.damageNumGroups[0].parent); WindowCenter.Instance.Close(); var sendInfo = new CA108_tagCMRefreshMainServerRole(); GameNetSystem.Instance.SendInfo(sendInfo); CameraController.Instance.CameraObject.enabled = true; if (onEnd != null) { onEnd(); } } }