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