Unity使用编辑器类创建窗口,在窗口上创建颜色编辑框,选择一个对象,编辑颜色,点击Button改变被选对象的颜色
点击颜色框,改变颜色,然后在Hierarchy窗口中选中一个Cube对象,然后点击 “Change”按钮, “Cube”颜色改变
在Editor文件夹下脚本如下
using UnityEngine;
using System.Collections;
using UnityEditor;
public class TestEditor : EditorWindow
{
private Color matColor = Color.white;
[MenuItem("Examples/Massive Color Change")]
static void Init() {
var window = GetWindow(typeof(TestEditor));
window.position = new Rect(0,0,300,300);
window.Show();
}
void OnGUI() {
//创建一个颜色框
matColor = EditorGUI.ColorField(new Rect(3,3,position.width - 6, 15),
"New Color:",
matColor);
//创建一个按钮
if(GUI.Button(new Rect(3,25,position.width-6, 30),"Change!"))
ChangeColors();
}
void ChangeColors() {//改变颜色
if(Selection.activeGameObject) { //如果选中激活对象
foreach(GameObject t in Selection.gameObjects) //遍历所有选中的对象,
if (t.renderer)
{
t.renderer.sharedMaterial.color = matColor; //改变 颜色
}
}
EditorUtility.FocusProjectWindow();
}
}