少年修仙传客户端代码仓库
client_Wu Xijin
2018-09-10 fc7713a0f1da991a9e748010ee13d63da317e73b
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
1个文件已修改
82 ■■■■■ 已修改文件
System/Treasure/TreasureComponent.cs 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureComponent.cs
@@ -28,6 +28,7 @@
        private SkinnedMeshRenderer treasureSkin;
        private Transform bottom;
        private Transform name;
        private TextMesh condition;
        #region 红点
        private Transform potentialRed;
@@ -49,6 +50,7 @@
        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 GameObjectPoolManager.GameObjectPool m_ConditionPool;
        static Vector3 m_CacheBottomScale = Vector3.zero;
        TreasureModel m_Model;
@@ -59,6 +61,8 @@
                return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TreasureModel>());
            }
        }
        AchievementModel achievementModel { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } }
        public void SetActive(bool _active)
        {
@@ -84,6 +88,7 @@
                RecycleLockEffect();
                RecycleCollectingSfx();
                RecycleRedpoint();
                RecycleCondition();
                RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent;
            }
            interactProcessor.SetActive(_active);
@@ -307,16 +312,19 @@
                    RecycleCollectingSfx();
                    RequestTreasureEffect();
                    RecycleLockEffect();
                    RecycleCondition();
                    break;
                case TreasureState.Collecting:
                    RequestTreasureEffect();
                    RequestCollectingSfx();
                    RecycleLockEffect();
                    RecycleCondition();
                    break;
                case TreasureState.Locked:
                    RecycleCollectingSfx();
                    RecycleTreasureEffect();
                    RequestLockEffect();
                    RequestCondition();
                    break;
            }
            if (model.GetTreasureUnlockShow(UI3DTreasureSelectStage.Instance.currentCategory) == _treasure.id)
@@ -585,6 +593,78 @@
            }
        }
        void RequestCondition()
        {
            RecycleCondition();
            if (category != TreasureCategory.Human)
            {
                return;
            }
            string displayStr = string.Empty;
            if (model.IsVersionUnOpenTreasure(treasureId))
            {
                displayStr = "=";
            }
            else
            {
                Achievement achievement = null;
                var achievementId = 0;
                var unlock = false;
                if (model.TryGetTreasureUnlockAchievement(treasureId, out achievementId))
                {
                    if (achievementModel.TryGetAchievement(achievementId, out achievement))
                    {
                        unlock = true;
                    }
                }
                if (unlock && !achievement.completed)
                {
                    var _achievementConfig = Config.Instance.Get<SuccessConfig>(achievementId);
                    var _missionId = _achievementConfig.Condition[0];
                    var _taskConfig = Config.Instance.Get<PyTaskConfig>(_missionId);
                    if (_taskConfig == null)
                    {
                        return;
                    }
                    if (_achievementConfig.Type == 3)
                    {
                        displayStr = StringUtility.Contact(_taskConfig.lv, "+");
                    }
                }
            }
            if (string.IsNullOrEmpty(displayStr))
            {
                return;
            }
            if (m_ConditionPool == null)
            {
                var _prefab = UILoader.LoadPrefab("TreasureCondition");
                m_ConditionPool = GameObjectPoolManager.Instance.RequestPool(_prefab);
            }
            condition = m_ConditionPool.Request().GetComponent<TextMesh>();
            condition.gameObject.SetActive(true);
            condition.transform.SetParent(root);
            condition.transform.localPosition = Vector3.zero;
            condition.transform.LookAt(UI3DTreasureSelectStage.Instance.center);
            condition.transform.localPosition = new Vector3(0, -1.75f, 0f);
            condition.transform.localScale = new Vector3(-1, 1, 1);
            condition.text = displayStr;
            LayerUtility.SetLayer(condition.gameObject, LayerUtility.UILayer, true);
        }
        void RecycleCondition()
        {
            if (m_ConditionPool != null && condition != null)
            {
                m_ConditionPool.Release(condition.gameObject);
                condition = null;
            }
        }
        public Vector3 GetAdaptiveDistance(Vector3 _distance)
        {
            var normal = Constants.DESIGN_RESOLUTION.x / Constants.DESIGN_RESOLUTION.y;
@@ -617,6 +697,7 @@
            RecycleBackLight();
            RecycleLockEffect();
            RecycleRedpoint();
            RecycleCondition();
            RequestSpecialEffect();
            Treasure _treasure;
@@ -653,6 +734,7 @@
        public void PlayUnlockShow()
        {
            RecycleLockEffect();
            RecycleCondition();
            try
            {
                var _effect = SFXPlayUtility.Instance.Play(category == TreasureCategory.Demon ? 5157 : 5132, treasureRoot);