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<Animator>();
|
createRoleCamera = instance.GetComponentInChildren<Camera>(true);
|
}
|
}
|
|
public void SwitchToWarrior(bool immediately)
|
{
|
WindowCenter.Instance.Close<CreateRoleWin>();
|
cameraAnimator.Play(m_CameraParams.magicToWarrior, 0, immediately ? 1f : 0f);
|
m_Magic.ReleaseEffects();
|
m_Warrior.ReleaseEffects();
|
|
StopCoroutine("Co_SwitchToWarrior");
|
StartCoroutine("Co_SwitchToWarrior", immediately ? 0f : m_CameraParams.magicToWarriorTime);
|
}
|
|
public void SwitchToMagic(bool immediately)
|
{
|
WindowCenter.Instance.Close<CreateRoleWin>();
|
cameraAnimator.Play(m_CameraParams.warriorToMagic, 0, immediately?1f:0f);
|
m_Magic.ReleaseEffects();
|
m_Warrior.ReleaseEffects();
|
|
StopCoroutine("Co_SwitchToMagic");
|
StartCoroutine("Co_SwitchToMagic", immediately ? 0f : m_CameraParams.warriorToMagicTime);
|
}
|
|
IEnumerator Co_SwitchToWarrior(float waitTime)
|
{
|
yield return new WaitForSeconds(waitTime);
|
m_Magic.gameObject.SetActive(false);
|
m_Warrior.gameObject.SetActive(true);
|
m_Warrior.DoRoutineShow();
|
}
|
|
IEnumerator Co_SwitchToMagic(float waitTime)
|
{
|
yield return new WaitForSeconds(waitTime);
|
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 warriorToMagic;
|
public float warriorToMagicTime;
|
public string magicToWarrior;
|
public float magicToWarriorTime;
|
}
|
|
|
}
|