diff --git a/Assets/AddressableAssetsData/link.xml b/Assets/AddressableAssetsData/link.xml deleted file mode 100644 index 9349bee82..000000000 --- a/Assets/AddressableAssetsData/link.xml +++ /dev/null @@ -1,445 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Assets/AddressableAssetsData/link.xml.meta b/Assets/AddressableAssetsData/link.xml.meta deleted file mode 100644 index 450ae2f86..000000000 --- a/Assets/AddressableAssetsData/link.xml.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 5814112af9c1a52439cb7c4531796080 -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Framework/ActionKit/IAction.cs b/Assets/Scripts/Framework/ActionKit/IAction.cs index 4e7f4e939..8086ad8d0 100644 --- a/Assets/Scripts/Framework/ActionKit/IAction.cs +++ b/Assets/Scripts/Framework/ActionKit/IAction.cs @@ -132,16 +132,16 @@ namespace AibisDream.Kit // { // return self.Start(ActionKitCurrentScene.SceneComponent, onFinish); // } - // - // public static IActionController StartGlobal(this IAction self, Action onFinish = null) - // { - // return self.Start(ActionKitMonoBehaviourEvents.Instance, onFinish); - // } - // - // public static IActionController StartGlobal(this IAction self, Action onFinish) - // { - // return self.Start(ActionKitMonoBehaviourEvents.Instance, onFinish); - // } + + public static IActionController StartGlobal(this IAction self, Action onFinish = null) + { + return self.Start(ActionKitMonoBehaviourEvents.Instance, onFinish); + } + + public static IActionController StartGlobal(this IAction self, Action onFinish) + { + return self.Start(ActionKitMonoBehaviourEvents.Instance, onFinish); + } public static void Pause(this IActionController self) diff --git a/Assets/Scripts/Framework/OtherKit/CameraKit.cs b/Assets/Scripts/Framework/OtherKit/CameraKit.cs index 992d9d203..74bc88e56 100644 --- a/Assets/Scripts/Framework/OtherKit/CameraKit.cs +++ b/Assets/Scripts/Framework/OtherKit/CameraKit.cs @@ -26,7 +26,6 @@ namespace AibisDream.Framework private CameraEnum _curCameraEnum; private CamState _curInitState; - public Camera uiCamera; private Camera _orthoMainCamera; private Camera _perspectiveMainCamera; @@ -61,48 +60,10 @@ namespace AibisDream.Framework _orthoMainCamera.gameObject.SetActive(true); _perspectiveMainCamera.gameObject.SetActive(false); } - - // 获取UICamera - if (_orthoMainCamera && _orthoMainCamera.TryGetComponent(out var orthoMaincameraData)) - { - // 获取Stack Cameras - var stackCameras = orthoMaincameraData.cameraStack; - - // 获取UICamera - uiCamera = stackCameras.Find(cam => cam && cam.name == "UI Camera"); - } - - if (_perspectiveMainCamera && _perspectiveMainCamera.TryGetComponent(out var perspectiveMaincameraData)) - { - // 获取Stack Cameras - var stackCameras = perspectiveMaincameraData.cameraStack; - - // 获取UICamera - uiCamera = stackCameras.Find(cam => cam && cam.name == "UI Camera"); - } } #region 相机信息注册 - - /// - /// 添加UI相机 - /// - public void AddUICamera(Camera camera) - { - if (Camera.main && Camera.main.TryGetComponent(out var cameraData)) - { - cameraData.cameraStack.Add(camera); - } - } - - public void RemoveUICamera(Camera camera) - { - if (Camera.main && Camera.main.TryGetComponent(out var cameraData)) - { - cameraData.cameraStack.Remove(camera); - } - } - + public void RegisterCamera(CameraEnum camType, ICinemachineCamera virtualCamera, bool isPerspective = false) { _virtualCameraDict[camType] = virtualCamera; @@ -157,23 +118,30 @@ namespace AibisDream.Framework /// /// public IEnumerator SwitchCamera(CameraEnum camType) + { + var switchDuration = SwitchCameraSync(camType); + yield return new WaitForSeconds(switchDuration); + } + + public float SwitchCameraSync(CameraEnum camType) { Debug.Log("Camera Type is:" + camType); if (_curCameraEnum == camType) { - yield break; + return 0; } if (!_virtualCameraDict.ContainsKey(camType)) { Debug.Log($"{camType.ToString()}相机未注册"); - yield break; + return 0; } // 切换主相机 bool isPerspective = _camInitStateDict[camType].isPerspective; _orthoMainCamera.gameObject.SetActive(!isPerspective); // _perspectiveMainCamera.gameObject.SetActive(isPerspective); + var activeBrain = isPerspective ? _perspectiveCameraBrain : _orthoCameraBrain; // 设置虚拟相机优先级 foreach (var camPair in _virtualCameraDict) @@ -181,13 +149,23 @@ namespace AibisDream.Framework if (camPair.Key == camType) camPair.Value.Priority = HighPriority; if (camPair.Key != camType) camPair.Value.Priority = LowPriority; } - + _curInitState = _camInitStateDict[camType]; + var lastCamEnum = _curCameraEnum; _curCameraEnum = camType; + + // 切完之后记得复原 + ActionKit.Delay(activeBrain.m_DefaultBlend.BlendTime, () => ResetVirCam(lastCamEnum)).StartGlobal(); - // 等待相机切换完成 - var activeBrain = isPerspective ? _perspectiveCameraBrain : _orthoCameraBrain; - yield return new WaitForSeconds(activeBrain.m_DefaultBlend.BlendTime); + return activeBrain.m_DefaultBlend.BlendTime; + } + + private void ResetVirCam(CameraEnum cameraEnum) + { + var virCam = _virtualCameraDict[cameraEnum]; + virCam.VirtualCameraGameObject.transform.localPosition = _curInitState.pos; + var camObj = virCam.VirtualCameraGameObject.GetComponent(); + camObj.m_Lens.OrthographicSize = _curInitState.initOrthoSize; } public Tween TransCamera(Vector3 targetPos, float targetOrthographicSize, float duration) @@ -204,17 +182,31 @@ namespace AibisDream.Framework return sq; } - public Tween ReturnInitCamera(float duration) + /// + /// + /// + /// 相机 + /// + /// + public Tween TransCamera(float targetOrthographicSize, float duration) + { + // 寻找现在正在激活的相机 + var curCamera = _orthoCameraBrain.ActiveVirtualCamera; + return curCamera.DOOrthoSize(targetOrthographicSize, duration); + } + + public Tween TransCamera(Vector3 targetPos, float duration) + { + // 寻找现在正在激活的相机 + var curCamera = _orthoCameraBrain.ActiveVirtualCamera; + return curCamera.DOLocalMove(targetPos, duration); + } + + private Tween ReturnInitCamera(float duration) { return TransCamera(_curInitState.pos, _curInitState.initOrthoSize, duration); } - - public IEnumerator TransCameraAsync(Vector3 targetPos, float duration) - { - var curCamera = _orthoCameraBrain.ActiveVirtualCamera; - yield return curCamera.DOLocalMove(targetPos, duration).WaitForCompletion(); - } - + public IEnumerator TransCameraAsync(Vector3 targetPos, float targetOrthographicSize, float duration) { yield return TransCamera(targetPos, targetOrthographicSize, duration).WaitForCompletion(); @@ -244,7 +236,6 @@ namespace AibisDream.Framework _perspectiveMainCamera : _orthoMainCamera; } - } public static class CinemachineExtension @@ -259,7 +250,7 @@ namespace AibisDream.Framework public static TweenerCore DOOrthoSize(this ICinemachineCamera camera, float endValue, float duration) { - var virtualCamera = camera.VirtualCameraGameObject.gameObject.GetComponent(); + var virtualCamera = camera.VirtualCameraGameObject.GetComponent(); var currentOrthoSize = virtualCamera.m_Lens.OrthographicSize; return DOTween.To(() => currentOrthoSize, x => currentOrthoSize = x, endValue, duration) .OnUpdate(() => virtualCamera.m_Lens.OrthographicSize = currentOrthoSize); @@ -281,13 +272,6 @@ namespace AibisDream.Framework return CameraKit.Instance.TransCameraAsync(targetPos, targetOrthographicSize, duration); } - [YarnCommand("trans_camera_pos")] - public static IEnumerator TransCameraAsync(float x, float y, float duration) - { - Vector3 targetPos = new Vector3(x, y, -10); - return CameraKit.Instance.TransCameraAsync(targetPos, duration); - } - [YarnCommand("shake_camera")] public static IEnumerator ShakeCamera(float duration, float strength, int vibrate = 10) { diff --git a/Assets/Scripts/UI/Panel/PlayToolPanel.cs b/Assets/Scripts/UI/Panel/PlayToolPanel.cs index 041106051..cb96c22d6 100644 --- a/Assets/Scripts/UI/Panel/PlayToolPanel.cs +++ b/Assets/Scripts/UI/Panel/PlayToolPanel.cs @@ -56,6 +56,16 @@ namespace AibisDream return _fadeImage.FadeOutAsync(duration); } + public void FadeInSync(float duration = 1) + { + StartCoroutine(FadeInAsync(duration)); + } + + public void FadeOutSync(float duration = 1) + { + StartCoroutine(FadeOutAsync(duration)); + } + /// /// 显示物体 ///