using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(menuName = "Config/CreateRoleScriptableObject")] public class CreateRoleScriptableObject : ScriptableObject { [SerializeField] CameraParams m_CameraParams; public CameraParams cameraParams { get { return m_CameraParams; } } [SerializeField] RoleShowParams m_Warrior; public RoleShowParams warrior { get { return m_Warrior; } } [SerializeField] RoleShowParams m_Magic; public RoleShowParams magic { get { return m_Magic; } } static CreateRoleScriptableObject config; public static CameraParams GetCameraParams() { if (config == null) { config = BuiltInLoader.LoadScriptableObject("CreateRoleConfig"); } return config.cameraParams; } public static RoleShowParams GetJobParams(int job) { if (config == null) { config = BuiltInLoader.LoadScriptableObject("CreateRoleConfig"); } switch (job) { case 1: return config.warrior; case 2: return config.magic; default: return default(RoleShowParams); } } [System.Serializable] public struct CameraParams { public string prefabName; public string warriorToMagic; public float warriorToMagicTime; public string magicToWarrior; public float magicToWarriorTime; } [System.Serializable] public struct RoleShowParams { public int job; public float scale; public string platformPrefabName; public Vector3 platformPosition; public Vector3 platformScale; public EnterPictureType enterPictureType; public string animation; public float animationDuration; public int[] persistentEffects; public int showEffect; } public enum EnterPictureType { Stand, OutIn, } }