少年修仙传客户端代码仓库
client_Wu Xijin
2019-03-27 7a5536e73e76cf67e6a8516ff1992b186754c61c
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
1个文件已修改
2个文件已添加
153 ■■■■ 已修改文件
System/Treasure/HumanThreeDimensionsBehaviour.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/HumanThreeDimensionsBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureComponent.cs 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/HumanThreeDimensionsBehaviour.cs
New file
@@ -0,0 +1,75 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class HumanThreeDimensionsBehaviour : MonoBehaviour
    {
        [SerializeField] Canvas m_TreasureCanva;
        [SerializeField] Text m_Chapter;
        [SerializeField] Text m_ChapterName;
        [SerializeField] Transform m_ContainerLock;
        [SerializeField] Transform m_ContainerCollecting;
        [SerializeField] Text m_TreasureName;
        [SerializeField] Transform m_ContainerCollected;
        static readonly char[] split_identify = new char[1] { ' ' };
        int treasureId = 0;
        TreasureModel model { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
        public void Display(int treasureId)
        {
            this.treasureId = treasureId;
            DisplayBase();
            DisplayState();
        }
        void DisplayBase()
        {
            List<int> tasks = null;
            if (model.TryGetTreasureTasks(treasureId, out tasks))
            {
                var config = TreasureConfig.Get(treasureId);
                var taskConfig = TaskListConfig.Get(tasks[0]);
                var chapterArray = taskConfig.ChapterName.Split(split_identify, System.StringSplitOptions.RemoveEmptyEntries);
                var chapterName = chapterArray.Length > 1 ? chapterArray[1] : chapterArray[0];
                m_Chapter.text = chapterArray[0];
                m_ChapterName.text = chapterName;
                m_TreasureName.text = string.Format("获得{0}", config.Name);
            }
        }
        void DisplayState()
        {
            Treasure treasure;
            if (model.TryGetTreasure(treasureId, out treasure))
            {
                m_ContainerCollecting.gameObject.SetActive(treasure.state == TreasureState.Collecting);
                m_ContainerCollected.gameObject.SetActive(treasure.state == TreasureState.Collected);
                m_ContainerLock.gameObject.SetActive(treasure.state == TreasureState.Locked);
            }
        }
        public void SetCamera(Camera camera)
        {
            m_TreasureCanva.worldCamera = camera;
        }
        private void LateUpdate()
        {
            if (!gameObject.layer.Equals(LayerUtility.DevisableUI))
            {
                LayerUtility.SetLayer(gameObject, LayerUtility.DevisableUI, true);
            }
        }
        public void Dispose()
        {
        }
    }
}
System/Treasure/HumanThreeDimensionsBehaviour.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 02d3f645a4abf1844a876c2f4dfe7792
timeCreated: 1553678663
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Treasure/TreasureComponent.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Snxxz.UI
{
@@ -34,6 +33,7 @@
        TextMesh condition;
        DemonDungeonLabel treasureLabel;
        TreasureThreeDimensionsBehaviour m_ThreeDimensionsBehaviour;
        HumanThreeDimensionsBehaviour m_HumanThreeDimensions;
        SFXController treasureEffect;
        SFXController backLightEffect;
@@ -43,11 +43,16 @@
        public Treasure3DConfig paramConfig { get; set; }
        static Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool> m_BottomPoolDict = new Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool>();
        static Dictionary<TreasureState, GameObjectPoolManager.GameObjectPool> m_StatePoolDict = new Dictionary<TreasureState, GameObjectPoolManager.GameObjectPool>();
        static Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool> m_ConditionPoolDict = new Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool>();
        static Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool> m_LabelPoolDict = new Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool>();
        static GameObjectPoolManager.GameObjectPool m_TreasureCanvaPool;
        static Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool> m_BottomPoolDict
            = new Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool>();
        static Dictionary<TreasureState, GameObjectPoolManager.GameObjectPool> m_StatePoolDict
            = new Dictionary<TreasureState, GameObjectPoolManager.GameObjectPool>();
        static Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool> m_ConditionPoolDict
            = new Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool>();
        static Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool> m_LabelPoolDict
            = new Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool>();
        static Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool> m_TreasureCanvaPool
            = new Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool>();
        static Vector3 m_CacheBottomScale = Vector3.zero;
        TreasureModel m_Model;
@@ -95,7 +100,7 @@
        public void RequestName()
        {
            RecycleName();
            if (category == TreasureCategory.King)
            if (category == TreasureCategory.King || category == TreasureCategory.Human)
            {
                return;
            }
@@ -654,43 +659,58 @@
        public void RequestTreasureCanva()
        {
            RecycleTreasureCanva();
            if (category != TreasureCategory.King)
            if (category != TreasureCategory.King
                && category != TreasureCategory.Human)
            {
                return;
            }
            if (m_TreasureCanvaPool == null)
            if (!m_TreasureCanvaPool.ContainsKey(category))
            {
                var prefab = UILoader.LoadTreasure("Misc", "TreasureCanva");
                var prefab = UILoader.LoadTreasure("Misc", "TreasureCanva_" + category.ToString());
                if (prefab)
                {
                    m_TreasureCanvaPool = GameObjectPoolManager.Instance.RequestPool(prefab);
                    m_TreasureCanvaPool.Add(category, GameObjectPoolManager.Instance.RequestPool(prefab));
                }
            }
            if (m_TreasureCanvaPool != null)
            if (m_TreasureCanvaPool.ContainsKey(category))
            {
                var go = m_TreasureCanvaPool.Request();
                var pool = m_TreasureCanvaPool[category];
                var go = pool.Request();
                go.SetActive(true);
                go.transform.SetParent(root);
                go.transform.localPosition = Vector3.zero;
                go.transform.localEulerAngles = new Vector3(0, -180, 0);
                go.transform.localScale = Vector3.one * 0.01f;
                LayerUtility.SetLayer(go, LayerUtility.DevisableUI, true);
                m_ThreeDimensionsBehaviour = go.GetComponent<TreasureThreeDimensionsBehaviour>();
                m_ThreeDimensionsBehaviour.SetCamera(UI3DTreasureSelectStage.Instance.treasureUICamera);
                m_ThreeDimensionsBehaviour.Display(treasureId);
                switch (category)
                {
                    case TreasureCategory.Human:
                        m_HumanThreeDimensions = go.GetComponent<HumanThreeDimensionsBehaviour>();
                        m_HumanThreeDimensions.SetCamera(UI3DTreasureSelectStage.Instance.treasureUICamera);
                        m_HumanThreeDimensions.Display(treasureId); break;
                    case TreasureCategory.King:
                        m_ThreeDimensionsBehaviour = go.GetComponent<TreasureThreeDimensionsBehaviour>();
                        m_ThreeDimensionsBehaviour.SetCamera(UI3DTreasureSelectStage.Instance.treasureUICamera);
                        m_ThreeDimensionsBehaviour.Display(treasureId);
                        break;
                }
            }
        }
        public void RecycleTreasureCanva()
        {
            if (m_TreasureCanvaPool != null)
            if (m_ThreeDimensionsBehaviour != null)
            {
                if (m_ThreeDimensionsBehaviour != null)
                {
                    m_ThreeDimensionsBehaviour.gameObject.SetActive(false);
                    m_TreasureCanvaPool.Release(m_ThreeDimensionsBehaviour.gameObject);
                    m_ThreeDimensionsBehaviour = null;
                }
                m_ThreeDimensionsBehaviour.gameObject.SetActive(false);
                m_TreasureCanvaPool[TreasureCategory.King].Release(m_ThreeDimensionsBehaviour.gameObject);
                m_ThreeDimensionsBehaviour = null;
            }
            if (m_HumanThreeDimensions != null)
            {
                m_HumanThreeDimensions.gameObject.SetActive(false);
                m_TreasureCanvaPool[TreasureCategory.Human].Release(m_HumanThreeDimensions.gameObject);
                m_HumanThreeDimensions = null;
            }
        }