From 11949828a340f0c911482cc1e9d543354520ccdb Mon Sep 17 00:00:00 2001
From: Ding Yuntian <1491671119@qq.com>
Date: Tue, 20 May 2025 19:31:35 +0800
Subject: [PATCH] =?UTF-8?q?=E7=9B=B8=E6=9C=BA=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Assets/AddressableAssetsData/link.xml | 445 ------------------
Assets/AddressableAssetsData/link.xml.meta | 7 -
Assets/Scripts/Framework/ActionKit/IAction.cs | 20 +-
.../Scripts/Framework/OtherKit/CameraKit.cs | 110 ++---
Assets/Scripts/UI/Panel/PlayToolPanel.cs | 10 +
5 files changed, 67 insertions(+), 525 deletions(-)
delete mode 100644 Assets/AddressableAssetsData/link.xml
delete mode 100644 Assets/AddressableAssetsData/link.xml.meta
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));
+ }
+
///
/// 显示物体
///