少年修仙传客户端代码仓库
client_linchunjie
2019-04-19 39ec1562198212d8c2071c8169cca09f8e5d1109
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
2个文件已添加
7个文件已修改
451 ■■■■■ 已修改文件
System/CreateRole/CreateRoleBehaviour.cs 141 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CreateRole/CreateRoleManager.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CreateRole/CreateRoleProcessor.cs 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CreateRole/CreateRoleScriptableObject.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CreateRole/CreateRoleScriptableObject.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/EquipTrain/EquipTrainPropertyBarBehaviour.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/SelectRoleWin.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SelectRole/SelectRoleBehaviour.cs 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SelectRole/SelectRoleProcessor.cs 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CreateRole/CreateRoleBehaviour.cs
@@ -3,47 +3,53 @@
using UnityEngine;
using Snxxz.UI;
public class CreateRoleBehaviour : MonoBehaviour
public class CreateRoleBehaviour
{
    [SerializeField] int m_Job;
    [SerializeField] float m_Scale = 1;
    [SerializeField] EnterPictureType m_EnterPictureType;
    [SerializeField] ShowAnimation m_RoutimeShowAnimation;
    [SerializeField] Effect[] m_PersistentEffect;
    [SerializeField] Effect[] m_RoutimeShowEffect;
    [SerializeField] CreateRoleHeroPlatform m_Platform;
    [SerializeField] ActorShadowCaster m_Shadow;
    CreateRoleTimeLine showTimeLine = new CreateRoleTimeLine();
    public State state { get; private set; }
    CreateRoleTimeLine showTimeLine = new CreateRoleTimeLine();
    List<SFXController> sfxControllers = new List<SFXController>();
    public void DoRoutineShow()
    GameObject behaviour;
    ActorShadowCaster shadow;
    CreateRoleHeroPlatform platform;
    public void Show(CreateRoleScriptableObject.RoleShowParams showParams)
    {
        m_Shadow.gameObject.SetActive(false);
        m_Platform.transform.localEulerAngles = new Vector3(0, 180, 0);
        m_Platform.ForbidSeconds(m_RoutimeShowAnimation.delay + m_RoutimeShowAnimation.duration);
        CreateRoleManager.Instance.LoadModel(m_Job, (bool ok, UnityEngine.Object @object) =>
        if (behaviour == null)
        {
            var prefab = SceneLoader.LoadCreateRole(showParams.platformPrefabName);
            behaviour = GameObject.Instantiate(prefab, showParams.platformPosition, Quaternion.identity);
            behaviour.name = showParams.platformPrefabName;
            shadow = behaviour.GetComponentInChildren<ActorShadowCaster>();
            platform = behaviour.GetComponentInChildren<CreateRoleHeroPlatform>();
            var camera = behaviour.GetComponent<Camera>("CreateRoleCamera");
            if (camera != null)
            {
                camera.gameObject.SetActive(false);
            }
        }
        shadow.gameObject.SetActive(false);
        platform.transform.localEulerAngles = new Vector3(0, 180, 0);
        platform.ForbidSeconds(showParams.animationDuration);
        CreateRoleManager.Instance.LoadModel(showParams.job, (bool ok, UnityEngine.Object @object) =>
        {
            if (ok)
            {
                var model = @object as GameObject;
                model.transform.SetParentEx(m_Platform.transform, Vector3.zero, Quaternion.identity, Vector3.one * m_Scale);
                model.transform.SetParentEx(platform.transform, Vector3.zero, Quaternion.identity, Vector3.one * showParams.scale);
                switch (m_EnterPictureType)
                switch (showParams.enterPictureType)
                {
                    case EnterPictureType.OutIn:
                    case CreateRoleScriptableObject.EnterPictureType.OutIn:
                        model.SetActive(false);
                        break;
                    case EnterPictureType.Stand:
                    case CreateRoleScriptableObject.EnterPictureType.Stand:
                        model.SetActive(true);
                        m_Shadow.gameObject.SetActive(true);
                        m_Shadow.Cast(model.transform);
                        shadow.gameObject.SetActive(true);
                        shadow.Cast(model.transform);
                        break;
                }
@@ -51,41 +57,38 @@
                state = State.RoutimeShow;
                showTimeLine.ClearNode();
                showTimeLine.AddNone(m_RoutimeShowAnimation.delay, () =>
                showTimeLine.AddNone(0f, () =>
                {
                    if (m_EnterPictureType == EnterPictureType.OutIn)
                    if (showParams.enterPictureType == CreateRoleScriptableObject.EnterPictureType.OutIn)
                    {
                        model.SetActive(true);
                    }
                    var animator = model.GetComponent<Animator>();
                    animator.Play(m_RoutimeShowAnimation.animation);
                    animator.Play(showParams.animation);
                });
                showTimeLine.AddNone(m_RoutimeShowAnimation.delay+0.1f, () =>
                showTimeLine.AddNone(0.1f, () =>
                {
                    if (m_EnterPictureType == EnterPictureType.OutIn)
                    if (showParams.enterPictureType == CreateRoleScriptableObject.EnterPictureType.OutIn)
                    {
                        m_Shadow.gameObject.SetActive(true);
                        m_Shadow.Cast(model.transform);
                        shadow.gameObject.SetActive(true);
                        shadow.Cast(model.transform);
                    }
                });
                foreach (var effect in m_PersistentEffect)
                foreach (var effect in showParams.persistentEffects)
                {
                    showTimeLine.AddNone(effect.delay, () =>
                    showTimeLine.AddNone(0f, () =>
                    {
                        PlayEffect(model.transform, effect);
                    });
                }
                foreach (var effect in m_RoutimeShowEffect)
                showTimeLine.AddNone(0f, () =>
                {
                    showTimeLine.AddNone(effect.delay, () =>
                    {
                        PlayEffect(model.transform, effect);
                    });
                }
                    PlayEffect(model.transform, showParams.showEffect);
                });
                showTimeLine.AddNone(2f, () =>
                {
@@ -98,26 +101,23 @@
        });
    }
    public void SetActive(bool active)
    {
        if (behaviour != null)
        {
            behaviour.gameObject.SetActive(active);
        }
    }
    public void Dispose()
    {
        showTimeLine.Dispose();
        ReleaseEffects();
    }
    private void PlayEffect(Transform model, Effect effect)
    {
        var config = EffectConfig.Get(effect.id);
        Transform parent = null;
        if (!string.IsNullOrEmpty(config.nodeName))
        {
            parent = model.transform.GetChildTransformDeeply(config.nodeName);
        }
        else
        {
            parent = model.transform;
        }
        sfxControllers.Add(SFXPlayUtility.Instance.Play(effect.id, parent));
        showTimeLine = null;
        behaviour = null;
        shadow = null;
        platform = null;
    }
    public void ReleaseEffects()
@@ -130,25 +130,20 @@
        sfxControllers.Clear();
    }
    [System.Serializable]
    public struct ShowAnimation
    private void PlayEffect(Transform model, int effectId)
    {
        public string animation;
        public float delay;
        public float duration;
    }
        var config = EffectConfig.Get(effectId);
        Transform parent = null;
        if (!string.IsNullOrEmpty(config.nodeName))
        {
            parent = model.transform.GetChildTransformDeeply(config.nodeName);
        }
        else
        {
            parent = model.transform;
        }
    [System.Serializable]
    public struct Effect
    {
        public int id;
        public float delay;
    }
    public enum EnterPictureType
    {
        Stand,
        OutIn,
        sfxControllers.Add(SFXPlayUtility.Instance.Play(effectId, parent));
    }
    public enum State
System/CreateRole/CreateRoleManager.cs
@@ -5,13 +5,7 @@
public class CreateRoleManager : Singleton<CreateRoleManager>
{
    CreateRoleProcessor m_Processor;
    CreateRoleProcessor processor {
        get {
            return m_Processor ?? (m_Processor = GameObject.FindObjectOfType<CreateRoleProcessor>());
        }
    }
    CreateRoleProcessor processor;
    Dictionary<int, GameObject> jobModels = new Dictionary<int, GameObject>();
    public readonly LogicInt selectedJob = new LogicInt();
@@ -24,7 +18,12 @@
    public void View(int job, bool immediately)
    {
        processor.LoadNecessaryResources();
        if (processor == null)
        {
            processor = new CreateRoleProcessor();
            processor.LoadNecessaryResources();
        }
        selectedJob.value = job;
        switch (job)
        {
@@ -39,8 +38,8 @@
    public void Dispose()
    {
        m_Processor.Dispose();
        m_Processor = null;
        processor.Dispose();
        processor = null;
        jobModels.Clear();
        if (!AssetSource.mobFromEditor)
System/CreateRole/CreateRoleProcessor.cs
@@ -3,12 +3,13 @@
using UnityEngine;
using Snxxz.UI;
public class CreateRoleProcessor : MonoBehaviour
public class CreateRoleProcessor
{
    [SerializeField] CreateRoleBehaviour m_Warrior;
    [SerializeField] CreateRoleBehaviour m_Magic;
    CreateRoleTimeLine m_WarriorTimeLine = new CreateRoleTimeLine();
    CreateRoleTimeLine m_MagicTimeLine = new CreateRoleTimeLine();
    [SerializeField] CameraParams m_CameraParams;
    CreateRoleBehaviour m_WarriorBehaviour = new CreateRoleBehaviour();
    CreateRoleBehaviour m_MagicBehaviour = new CreateRoleBehaviour();
    Animator cameraAnimator;
    Camera createRoleCamera;
@@ -17,65 +18,78 @@
    {
        if (cameraAnimator == null || createRoleCamera == null)
        {
            var prefab = SceneLoader.LoadCreateRole(m_CameraParams.prefabName);
            var cameraParams = CreateRoleScriptableObject.GetCameraParams();
            var prefab = SceneLoader.LoadCreateRole(cameraParams.prefabName);
            var instance = GameObject.Instantiate(prefab);
            cameraAnimator = instance.GetComponent<Animator>();
            createRoleCamera = instance.GetComponentInChildren<Camera>(true);
            createRoleCamera.enabled = false;
        }
    }
    public void SwitchToWarrior(bool immediately)
    {
        WindowCenter.Instance.Close<CreateRoleWin>();
        cameraAnimator.Play(m_CameraParams.magicToWarrior, 0, immediately ? 1f : 0f);
        m_Magic.ReleaseEffects();
        m_Warrior.ReleaseEffects();
        m_WarriorTimeLine.ClearNode();
        var cameraParams = CreateRoleScriptableObject.GetCameraParams();
        StopCoroutine("Co_SwitchToWarrior");
        StartCoroutine("Co_SwitchToWarrior", immediately ? 0f : m_CameraParams.magicToWarriorTime);
        m_MagicBehaviour.SetActive(false);
        m_WarriorBehaviour.SetActive(false);
        m_WarriorTimeLine.AddNone(0f, () =>
        {
            WindowCenter.Instance.Close<CreateRoleWin>();
            createRoleCamera.enabled = true;
            cameraAnimator.Play(cameraParams.magicToWarrior, 0, immediately ? 1f : 0f);
            m_MagicBehaviour.ReleaseEffects();
            m_WarriorBehaviour.ReleaseEffects();
        });
        m_WarriorTimeLine.AddNone(immediately ? 0f : cameraParams.magicToWarriorTime, () =>
        {
            m_WarriorBehaviour.SetActive(true);
            m_WarriorBehaviour.Show(CreateRoleScriptableObject.GetJobParams(1));
        });
    }
    public void SwitchToMagic(bool immediately)
    {
        WindowCenter.Instance.Close<CreateRoleWin>();
        cameraAnimator.Play(m_CameraParams.warriorToMagic, 0, immediately?1f:0f);
        m_Magic.ReleaseEffects();
        m_Warrior.ReleaseEffects();
        m_MagicTimeLine.ClearNode();
        var cameraParams = CreateRoleScriptableObject.GetCameraParams();
        StopCoroutine("Co_SwitchToMagic");
        StartCoroutine("Co_SwitchToMagic", immediately ? 0f : m_CameraParams.warriorToMagicTime);
    }
        m_MagicBehaviour.SetActive(false);
        m_WarriorBehaviour.SetActive(false);
    IEnumerator Co_SwitchToWarrior(float waitTime)
    {
        yield return new WaitForSeconds(waitTime);
        m_Magic.gameObject.SetActive(false);
        m_Warrior.gameObject.SetActive(true);
        m_Warrior.DoRoutineShow();
    }
        m_MagicTimeLine.AddNone(0f, () =>
        {
            WindowCenter.Instance.Close<CreateRoleWin>();
            createRoleCamera.enabled = true;
            cameraAnimator.Play(cameraParams.warriorToMagic, 0, immediately ? 1f : 0f);
    IEnumerator Co_SwitchToMagic(float waitTime)
    {
        yield return new WaitForSeconds(waitTime);
        m_Warrior.gameObject.SetActive(false);
        m_Magic.gameObject.SetActive(true);
        m_Magic.DoRoutineShow();
            m_MagicBehaviour.ReleaseEffects();
            m_WarriorBehaviour.ReleaseEffects();
        });
        m_MagicTimeLine.AddNone(immediately ? 0f : cameraParams.warriorToMagicTime, () =>
        {
            m_MagicBehaviour.SetActive(true);
            m_MagicBehaviour.Show(CreateRoleScriptableObject.GetJobParams(2));
        });
    }
    public void Dispose()
    {
        m_Warrior.Dispose();
        m_Magic.Dispose();
    }
        m_WarriorBehaviour.Dispose();
        m_MagicBehaviour.Dispose();
        m_WarriorBehaviour = null;
        m_MagicBehaviour = null;
    [System.Serializable]
    public struct CameraParams
    {
        public string prefabName;
        public string warriorToMagic;
        public float warriorToMagicTime;
        public string magicToWarrior;
        public float magicToWarriorTime;
        m_WarriorTimeLine.Dispose();
        m_MagicTimeLine.Dispose();
        cameraAnimator = null;
        createRoleCamera = null;
    }
System/CreateRole/CreateRoleScriptableObject.cs
New file
@@ -0,0 +1,76 @@
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<CreateRoleScriptableObject>("CreateRoleConfig");
        }
        return config.cameraParams;
    }
    public static RoleShowParams GetJobParams(int job)
    {
        if (config == null)
        {
            config = BuiltInLoader.LoadScriptableObject<CreateRoleScriptableObject>("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 EnterPictureType enterPictureType;
        public string animation;
        public float animationDuration;
        public int[] persistentEffects;
        public int showEffect;
    }
    public enum EnterPictureType
    {
        Stand,
        OutIn,
    }
}
System/CreateRole/CreateRoleScriptableObject.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 41159df38ea09e0419833fb7efe84e1a
timeCreated: 1555642714
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/EquipTrain/EquipTrainPropertyBarBehaviour.cs
@@ -104,7 +104,7 @@
                {
                    if (operateType == EquipTrainModel.TrainOperateType.Train)
                    {
                        m_DeltaValue.text = inevitable ? "最大" : "";
                        m_DeltaValue.text = inevitable ? "必增" : "";
                        m_DeltaValue.color = UIHelper.GetUIColor(TextColType.Green, true);
                        m_DeltaValueMax.text = inevitable ? string.Format("+{0}", propertyBar.deltaMax) : "";
                    }
System/Login/SelectRoleWin.cs
@@ -23,18 +23,6 @@
        [SerializeField] Image m_Description;
        [SerializeField] Image m_JobName;
        SelectRoleProcessor m_SelectRoleProcessor;
        SelectRoleProcessor selectRoleProcessor {
            get {
                if (m_SelectRoleProcessor == null)
                {
                    m_SelectRoleProcessor = GameObject.FindObjectOfType<SelectRoleProcessor>();
                }
                return m_SelectRoleProcessor;
            }
        }
        LoginModel model { get { return ModelCenter.Instance.GetModel<LoginModel>(); } }
        #region Built-in
@@ -68,7 +56,6 @@
        protected override void OnAfterClose()
        {
            selectRoleProcessor.Dispose();
        }
        #endregion
@@ -108,7 +95,7 @@
            m_Description.SetSprite(config.description);
            m_JobName.SetSprite(config.jobName);
            selectRoleProcessor.Show(PlayerDatas.Instance.loginInfo.Job);
            new SelectRoleProcessor().Show();
        }
    }
System/SelectRole/SelectRoleBehaviour.cs
@@ -3,18 +3,19 @@
using UnityEngine;
using Snxxz.UI;
public class SelectRoleBehaviour : MonoBehaviour
public class SelectRoleBehaviour
{
    [SerializeField] Camera m_CreateRoleCamera;
    [SerializeField] CreateRoleHeroPlatform m_HeroPlatform;
    [SerializeField] ActorShadowCaster m_Shadow;
    GameObject behaviour;
    Camera ceateRoleCamera;
    CreateRoleHeroPlatform platform;
    ActorShadowCaster shadow;
    UI3DShowHero playerModel = new UI3DShowHero();
    public void Show()
    {
        Dispose();
        LoadAssets(CreateRoleScriptableObject.GetJobParams(PlayerDatas.Instance.loginInfo.Job));
        playerModel.Dispose();
        var fashionClothes = 0;
        var fashionWeapon = 0;
@@ -69,33 +70,45 @@
            secondaryId = secondaryItemId,
        };
        m_CreateRoleCamera.gameObject.SetActive(true);
        var model = playerModel.Show(data, m_HeroPlatform.transform);
        ceateRoleCamera.gameObject.SetActive(true);
        var model = playerModel.Show(data, platform.transform);
        playerModel.StandUp();
        m_Shadow.gameObject.SetActive(true);
        m_Shadow.Cast(model.transform);
        shadow.gameObject.SetActive(true);
        shadow.Cast(model.transform);
    }
    public void Hide()
    {
        if (ceateRoleCamera != null)
        {
            ceateRoleCamera.gameObject.SetActive(false);
        }
        if (shadow != null)
        {
            shadow.gameObject.SetActive(false);
        }
    }
    public void Dispose()
    {
        m_CreateRoleCamera.gameObject.SetActive(false);
        m_Shadow.gameObject.SetActive(false);
        playerModel.Dispose();
        behaviour = null;
        ceateRoleCamera = null;
        platform = null;
        shadow = null;
        playerModel = null;
    }
    private void Awake()
    private void LoadAssets(CreateRoleScriptableObject.RoleShowParams showParams)
    {
        m_CreateRoleCamera.gameObject.SetActive(false);
        m_Shadow.gameObject.SetActive(false);
        if (behaviour == null)
        {
            var prefab = SceneLoader.LoadCreateRole(showParams.platformPrefabName);
            behaviour = GameObject.Instantiate(prefab, showParams.platformPosition, Quaternion.identity);
            behaviour.name = showParams.platformPrefabName;
            shadow = behaviour.GetComponentInChildren<ActorShadowCaster>();
            platform = behaviour.GetComponentInChildren<CreateRoleHeroPlatform>();
            ceateRoleCamera = behaviour.GetComponentInChildren<Camera>();
        }
    }
    private void OnEnable()
    {
    }
    private void OnDestroy()
    {
        StopAllCoroutines();
    }
}
System/SelectRole/SelectRoleProcessor.cs
@@ -3,28 +3,11 @@
using UnityEngine;
using Snxxz.UI;
public class SelectRoleProcessor : MonoBehaviour
public class SelectRoleProcessor
{
    [SerializeField] SelectRoleBehaviour m_Job1;
    [SerializeField] SelectRoleBehaviour m_Job2;
    public void Show(int job)
    public void Show( )
    {
        switch (job)
        {
            case 1:
                m_Job1.Show();
                break;
            case 2:
                m_Job2.Show();
                break;
        }
    }
    public void Dispose()
    {
        m_Job1.Dispose();
        m_Job2.Dispose();
        new SelectRoleBehaviour().Show();
    }
}