NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Skill/Effect/SkillRotateCamera.cs

63 lines
2.0 KiB
C#

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<GameObject>(PREFAB_PATH);
if (sampleObj == null)
{
Debug.LogError("SkillRotateCamera sampleObj is null");
return;
}
rootObj = Object.Instantiate(sampleObj);
_rawCamera = rootObj.GetComponentInChildren<Camera>();
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);
}
}
}