轉載:http://blog.csdn.net/liqiangeastsun/article/details/42173669
Unity編輯器類在菜單欄創建一個按鈕,點擊按鈕創建一個Window(窗口)
點擊 “Improved copy buffer”跳出如下界面
點擊 按鈕
點擊 “Clear all saves” 將所有緩存清除
在Editor文件夾下創建腳本 dfdff
using UnityEngine;
using System.Collections;
using UnityEditor;
public class dfdff : EditorWindow {
public string[] savedCopies = new string[5]; //定義一個字符串數組
public bool load = false;
[MenuItem("Examples/Improved copy buffer")] //在工具欄創建按鈕
static void Init() {
dfdff window = (dfdff)EditorWindow.GetWindow(typeof(dfdff)); //定義一個窗口對象
}
void OnGUI() {
load = EditorGUILayout.Toggle("Load:", load); //創建一個 Toggle
EditorGUILayout.BeginHorizontal(); //開始水平布局
for (int i = 0; i < savedCopies.Length; i++)
{
if (GUILayout.Button(i.ToString())) // 創建這些按鈕,并且當點擊按鈕時觸發條件
{
if (load)
{
EditorGUIUtility.systemCopyBuffer = savedCopies[i]; // 獲取值
}
else
{
savedCopies[i] = "123"; //給每一個字符串賦值
}
}
}
EditorGUILayout.EndHorizontal(); //結束水平布局
for (int j = 0; j < savedCopies.Length; j++)
{
EditorGUILayout.LabelField("Saved " + j, savedCopies[j]); //將所有已字符串以Label的形式顯示出來
}
EditorGUILayout.LabelField("Current buffer:", EditorGUIUtility.systemCopyBuffer); //將獲取的值以Label的形式顯示出來
if(GUILayout.Button("Clear all saves")) //清空所有的緩存
{
int i = 0;
foreach (string s in savedCopies)
{
savedCopies[i] = "";
i++;
}
}
}
void OnInspectorUpdate() {
this.Repaint(); //重新畫窗口
}
}