少年修仙传客户端代码仓库
client_linchunjie
2018-11-23 1560e8233fe3283684bcb445a3446301b09d775e
4709 【1.3】【前端】魔族法宝副本修改(添加线的特效)
2个文件已修改
58 ■■■■■ 已修改文件
System/Treasure/DemonDungeonBehaviour.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/DemonTreasureWin.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/DemonDungeonBehaviour.cs
@@ -13,12 +13,18 @@
        [SerializeField] Text m_BossName;
        [SerializeField] Image m_Icon;
        [SerializeField] RectTransform m_ContainerSelect;
        [SerializeField] UIEffect m_Line;
        TreasureModel model
        {
            get { return ModelCenter.Instance.GetModel<TreasureModel>(); }
        }
        public UIEffect line
        {
            get { return m_Line; }
        }
        public void Display(int treasureId, int level)
        {
            TreasureDungeon treasureDungeon;
System/Treasure/DemonTreasureWin.cs
@@ -10,7 +10,8 @@
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI {
namespace Snxxz.UI
{
    public class DemonTreasureWin : Window
    {
@@ -114,7 +115,7 @@
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
@@ -381,6 +382,8 @@
                    }
                }
            }
            DisplayLines();
        }
        private void TreasureStateChangeEvent(int id)
@@ -477,6 +480,51 @@
            }
        }
        #region 特效
        const string LINE_STATE_2 = "Effect_FaBao_Xian3_02";
        public const float LINE_NORMAL_LENGTH = 187f;
        public const float LINE_NORMAL_SCALE = 0.78f;
        private void DisplayLines()
        {
            TreasureDungeon treasureDungeon;
            var scriptable = ScriptableObjectLoader.LoadSoDemonDungeon(model.selectedTreasure);
            if (scriptable == null)
            {
                return;
            }
            if (model.TryGetTreasureDungeon(model.selectedTreasure, out treasureDungeon))
            {
                for (int i = 1; i <= treasureDungeon.maxLevel; i++)
                {
                    var index = i - 1;
                    if (index < m_DungeonBehaviours.Length)
                    {
                        var line = m_DungeonBehaviours[index].line;
                        line.Stop();
                        if (i < treasureDungeon.currentLevel)
                        {
                            line.Play();
                            if (line.target != null)
                            {
                                var transform = line.target.transform;
                                var animator = line.target.GetAnimator();
                                var angle = VectorUtility.VectorAngle(scriptable.GetPosition(index + 1),
                                    scriptable.GetPosition(index));
                                line.target.transform.localEulerAngles = Vector3.zero.SetZ(angle);
                                if (animator != null)
                                {
                                    animator.Play(LINE_STATE_2, 0, 0);
                                    animator.transform.localScale = Vector3.one.SetY(Vector2.Distance(scriptable.GetPosition(index),
                                        scriptable.GetPosition(index + 1)) / LINE_NORMAL_LENGTH * LINE_NORMAL_SCALE);
                                }
                            }
                        }
                    }
                }
            }
        }
        #endregion
        enum AnimationStep
        {
            None,