From d0735fc3e22de34f6631c853c7e9cd54598ab566 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期三, 26 九月 2018 17:38:26 +0800
Subject: [PATCH] 3687 天赋功能

---
 System/Skill/TalentWin.cs            |   25 ++++++++++++
 System/Skill/TalentTreeScriptable.cs |   59 ++++++++++++++++++++++++-----
 2 files changed, 73 insertions(+), 11 deletions(-)

diff --git a/System/Skill/TalentTreeScriptable.cs b/System/Skill/TalentTreeScriptable.cs
index 48d7a01..d981d0b 100644
--- a/System/Skill/TalentTreeScriptable.cs
+++ b/System/Skill/TalentTreeScriptable.cs
@@ -28,6 +28,15 @@
             return default(TalentElement);
         }
 
+        public ArrowElement GetArrowElement(int index)
+        {
+            if (arrowElements != null && index < arrowElements.Count)
+            {
+                return arrowElements[index];
+            }
+            return default(ArrowElement);
+        }
+
         public float GetPercentBySkillElement(int index, float viewHeight, float offset)
         {
             if (skillElements != null && index < skillElements.Count)
@@ -43,27 +52,58 @@
 #if UNITY_EDITOR
         public void ApplyTalentElement(int index,Vector3 _position)
         {
+            if (skillElements == null)
+            {
+                skillElements = new List<TalentElement>();
+            }
+            var element = new TalentElement()
+            {
+                position = _position,
+            };
             if (index >= skillElements.Count)
             {
-                skillElements.Add(new TalentElement()
-                {
-                    position = _position,
-                });
+                skillElements.Add(element);
             }
             else
             {
-                skillElements[index] = new TalentElement()
-                {
-                    position = _position,
-                };
+                skillElements[index] = element;
             }
         }
 
-        public void SyncElementsCount(int count)
+        public void SyncTalentElementsCount(int count)
         {
             if (count < skillElements.Count)
             {
                 skillElements.RemoveRange(count, skillElements.Count - count);
+            }
+        }
+
+        public void ApplyArrowElement(int index, Vector3 _position, Vector2 _sizeDelta)
+        {
+            if (arrowElements == null)
+            {
+                arrowElements = new List<ArrowElement>();
+            }
+            var element = new ArrowElement()
+            {
+                position = _position,
+                sizeDelta = _sizeDelta,
+            };
+            if (index >= arrowElements.Count)
+            {
+                arrowElements.Add(element);
+            }
+            else
+            {
+                arrowElements[index] = element;
+            }
+        }
+
+        public void SyncArrowElementsCount(int count)
+        {
+            if (count < arrowElements.Count)
+            {
+                arrowElements.RemoveRange(count, arrowElements.Count - count);
             }
         }
 #endif
@@ -123,7 +163,6 @@
         public struct ArrowElement
         {
             public Vector3 position;
-            public Vector3 rotation;
             public Vector2 sizeDelta;
         }
     }
diff --git a/System/Skill/TalentWin.cs b/System/Skill/TalentWin.cs
index a01da27..6ec20eb 100644
--- a/System/Skill/TalentWin.cs
+++ b/System/Skill/TalentWin.cs
@@ -388,6 +388,15 @@
                 var element = config.GetTalentElement(i);
                 m_TalentSkills[i].transform.localPosition = element.position;
             }
+            if (m_Arrows != null)
+            {
+                for (int i = 0; i < m_Arrows.Length; i++)
+                {
+                    var element = config.GetArrowElement(i);
+                    m_Arrows[i].transform.localPosition = element.position;
+                    m_Arrows[i].rectTransform.sizeDelta = element.sizeDelta;
+                }
+            }
         }
 
 #if UNITY_EDITOR
@@ -407,7 +416,21 @@
                     count++;
                 }
             }
-            m_EditorScriptable.SyncElementsCount(count);
+            m_EditorScriptable.SyncTalentElementsCount(count);
+            count = 0;
+            if (m_Arrows != null)
+            {
+                for (int i = 0; i < m_Arrows.Length; i++)
+                {
+                    if (m_Arrows[i].gameObject.activeSelf)
+                    {
+                        m_EditorScriptable.ApplyArrowElement(count, m_Arrows[i].transform.localPosition,
+                            m_Arrows[i].rectTransform.sizeDelta);
+                        count++;
+                    }
+                }
+                m_EditorScriptable.SyncArrowElementsCount(count);
+            }
         }
 #endif
     }

--
Gitblit v1.8.0