using AOT.PostProcess.ColorFade; using Cysharp.Threading.Tasks; using Framework; using Gameplay.PostProcess.ColorFade; using PhxhSDK; using UnityEngine; namespace Gameplay.Skill { public class SkillRotateCamera { public const string PREFAB_PATH = "Assets/Art_Out/Other/SkillCamera/skill_camera_rotate.prefab"; public GameObject rootObj; private Camera _rawCamera; public SkillRotateCamera() { var sampleObj = AssetManager.Instance.GetPreLoadResult(PREFAB_PATH); if (sampleObj == null) { Debug.LogError("SkillRotateCamera sampleObj is null"); return; } rootObj = Object.Instantiate(sampleObj); _rawCamera = rootObj.GetComponentInChildren(); rootObj.SetActive(false); } public async void Show() { var fadeInTime = TableManager.Instance.Tables.GlobalConfig.SkillCameraFadeInTime; GlobalFadeManager.instance.FadeIn(fadeInTime); await UniTask.WaitForSeconds(fadeInTime); var skillUnit = SkillManager.instance.inSkillingUnit; if (skillUnit == null) { Debug.LogError("SkillRotateCamera Show skillUnit is null"); return; } var skillPos = skillUnit.transform.position; var skillRot = skillUnit.transform.rotation; rootObj.transform.position = skillPos; rootObj.transform.rotation = skillRot; rootObj.SetActive(true); GlobalFadeManager.instance.FadeOut(fadeInTime); } public async void Hide() { var fadeOutTime = TableManager.Instance.Tables.GlobalConfig.SkillCameraFadeOutTime; GlobalFadeManager.instance.FadeIn(fadeOutTime); await UniTask.WaitForSeconds(fadeOutTime); rootObj.SetActive(false); GlobalFadeManager.instance.FadeOut(fadeOutTime); } } }