将Spline移出Plugin,以调整SplineRenderer的OnWillCameraRender
This commit is contained in:
64
Assets/Dreamteck/Utilities/Editor/Toolbar.cs
Normal file
64
Assets/Dreamteck/Utilities/Editor/Toolbar.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
namespace Dreamteck.Editor
|
||||
{
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
public class Toolbar
|
||||
{
|
||||
GUIContent[] shownContent;
|
||||
GUIContent[] allContent;
|
||||
public bool center = true;
|
||||
public bool newLine = true;
|
||||
public float elementWidth = 0f;
|
||||
public float elementHeight = 23f;
|
||||
|
||||
public Toolbar(GUIContent[] iconsNormal, GUIContent[] iconsSelected, float elementWidth = 0f)
|
||||
{
|
||||
this.elementWidth = elementWidth;
|
||||
if(iconsNormal.Length != iconsSelected.Length)
|
||||
{
|
||||
Debug.LogError("Invalid icon count for toolbar ");
|
||||
return;
|
||||
}
|
||||
allContent = new GUIContent[iconsNormal.Length * 2];
|
||||
shownContent = new GUIContent[iconsNormal.Length];
|
||||
iconsNormal.CopyTo(allContent, 0);
|
||||
iconsSelected.CopyTo(allContent, iconsNormal.Length);
|
||||
}
|
||||
|
||||
public Toolbar(GUIContent[] contents, float elementWidth = 0f)
|
||||
{
|
||||
this.elementWidth = elementWidth;
|
||||
allContent = new GUIContent[contents.Length * 2];
|
||||
shownContent = new GUIContent[contents.Length];
|
||||
contents.CopyTo(allContent, 0);
|
||||
contents.CopyTo(allContent, contents.Length);
|
||||
}
|
||||
|
||||
public void SetContent(int index, GUIContent content)
|
||||
{
|
||||
allContent[index] = content;
|
||||
allContent[shownContent.Length + index] = content;
|
||||
}
|
||||
|
||||
public void SetContent(int index, GUIContent content, GUIContent contentSelected)
|
||||
{
|
||||
allContent[index] = content;
|
||||
allContent[shownContent.Length + index] = contentSelected;
|
||||
}
|
||||
|
||||
public void Draw(ref int selected)
|
||||
{
|
||||
for (int i = 0; i < shownContent.Length; i++)
|
||||
{
|
||||
shownContent[i] = selected == i ? allContent[shownContent.Length + i] : allContent[i];
|
||||
}
|
||||
if(newLine) EditorGUILayout.BeginHorizontal();
|
||||
if(center) GUILayout.FlexibleSpace();
|
||||
if(elementWidth > 0f) selected = GUILayout.Toolbar(selected, shownContent, GUILayout.Width(elementWidth * shownContent.Length), GUILayout.Height(elementHeight));
|
||||
else selected = GUILayout.Toolbar(selected, shownContent, GUILayout.Height(elementHeight));
|
||||
if (center) GUILayout.FlexibleSpace();
|
||||
if (newLine) EditorGUILayout.EndHorizontal();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user