using System.Collections; using System.Collections.Generic; using UnityEngine; using Snxxz.UI; public class CreateRoleProcessor : MonoBehaviour { [SerializeField] CreateRoleBehaviour m_Warrior; [SerializeField] CreateRoleBehaviour m_Magic; [SerializeField] CameraParams m_CameraParams; Animator cameraAnimator; Camera createRoleCamera; public void LoadNecessaryResources() { if (cameraAnimator == null || createRoleCamera == null) { var prefab = SceneLoader.LoadCreateRole(m_CameraParams.prefabName); var instance = GameObject.Instantiate(prefab); cameraAnimator = instance.GetComponent(); createRoleCamera = instance.GetComponentInChildren(true); } } public void DoEnterShow() { WindowCenter.Instance.Close(); cameraAnimator.Play(m_CameraParams.enterShow); m_Warrior.gameObject.SetActive(true); m_Warrior.DoEnterShow(); } public void SwitchToWarrior() { WindowCenter.Instance.Close(); cameraAnimator.Play(m_CameraParams.magicToWarrior); m_Magic.ReleaseEffects(); m_Warrior.ReleaseEffects(); StopCoroutine("Co_SwitchToWarrior"); StartCoroutine("Co_SwitchToWarrior"); } public void SwitchToMagic() { WindowCenter.Instance.Close(); cameraAnimator.Play(m_CameraParams.warriorToMagic); m_Magic.ReleaseEffects(); m_Warrior.ReleaseEffects(); StopCoroutine("Co_SwitchToMagic"); StartCoroutine("Co_SwitchToMagic"); } IEnumerator Co_SwitchToWarrior() { m_Warrior.gameObject.SetActive(true); yield return WaitingForSecondConst.WaitMS1000; m_Magic.gameObject.SetActive(false); m_Warrior.DoRoutineShow(); } IEnumerator Co_SwitchToMagic() { yield return WaitingForSecondConst.WaitMS1000; m_Warrior.gameObject.SetActive(false); m_Magic.gameObject.SetActive(true); m_Magic.DoRoutineShow(); } public void Dispose() { m_Warrior.Dispose(); m_Magic.Dispose(); } [System.Serializable] public struct CameraParams { public string prefabName; public string enterShow; public string warriorToMagic; public string magicToWarrior; } }