using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using System;
|
#if UNITY_EDITOR
|
using UnityEditor;
|
#endif
|
namespace Snxxz.UI
|
{
|
public class TalentTreeScriptable : ScriptableObject
|
{
|
[SerializeField] TalentTree[] talentTrees;
|
[SerializeField] Vector2 m_ContentSizeDelta;
|
[SerializeField] TalentElement[] skillElements;
|
[SerializeField] ArrowElement[] arrowElements;
|
|
public Vector2 contentSizeDelta
|
{
|
get { return m_ContentSizeDelta; }
|
}
|
|
public TalentElement GetTalentElement(int index)
|
{
|
if (index < skillElements.Length)
|
{
|
return skillElements[index];
|
}
|
return default(TalentElement);
|
}
|
|
public bool Belong(int job, int talentType, int talentSeries)
|
{
|
for (int i = 0; i < talentTrees.Length; i++)
|
{
|
if (talentTrees[i].Belong(job, talentType, talentSeries))
|
{
|
return true;
|
}
|
}
|
return false;
|
}
|
|
[Serializable]
|
public struct TalentTree
|
{
|
public int job;
|
public int talentType;
|
public int talentSeries;
|
|
public bool Belong(int job, int talentType, int talentSeries)
|
{
|
return this.job == job && this.talentType == talentType && this.talentSeries == talentSeries;
|
}
|
}
|
|
[Serializable]
|
public struct TalentElement
|
{
|
public Vector3 position;
|
}
|
|
[Serializable]
|
public struct ArrowElement
|
{
|
public Vector3 position;
|
public Vector3 rotation;
|
public Vector2 sizeDelta;
|
}
|
}
|
|
#if UNITY_EDITOR
|
public class TalentTreeScriptableEditor : Editor
|
{
|
[MenuItem("策划工具/生成天赋配置文件")]
|
static void BuildConfig()
|
{
|
TalentTreeScriptable config = CreateInstance<TalentTreeScriptable>();
|
string _path = StringUtility.Contact("Assets/ResourcesOut/Refdata/ScriptableObject/SoTalentTree/",
|
"SoTalentTree_",
|
".asset");
|
AssetDatabase.CreateAsset(config, _path);
|
AssetDatabase.Refresh();
|
ProjectWindowUtil.ShowCreatedAsset(config);
|
}
|
}
|
#endif
|
}
|