function GetClass () : System.Type
Description
Returns the System.Type object of the class implemented by this script
ScriptAdder in the editor Window.
class ScriptAdder
extends EditorWindow {
var numComponents = 1;
var componentsToAdd : MonoScript[];
@
MenuItem(
"Examples/Script Adder")
static function Init() {
var window = GetWindow(ScriptAdder);
window.Show();
}
function Awake() {
numComponents =
EditorPrefs.GetInt(
"NumberOfComponents", 1);
componentsToAdd =
new MonoScript[numComponents];
}
function OnDestroy() {
EditorPrefs.SetInt(
"NumberOfComponents", numComponents);
}
function OnGUI() {
if(
GUILayout.Button(
"Clear all components"))
for(
var c : MonoScript
in componentsToAdd)
c = null;
EditorGUILayout.BeginHorizontal();
if(
GUILayout.Button(
"-")) IncreaseDecreaseComponents(-1);
if(
GUILayout.Button(
"+")) IncreaseDecreaseComponents(1);
EditorGUILayout.EndHorizontal();
for(
var i = 0; i < numComponents; i++)
componentsToAdd[i] =
EditorGUILayout.ObjectField(
"Component", componentsToAdd[i], MonoScript);
if(
GUILayout.Button(
"Add to selection"))
if(
Selection.activeGameObject)
for(
var go :
GameObject in Selection.gameObjects)
for(
var c : MonoScript
in componentsToAdd)
go.AddComponent(c.GetClass());
}
function IncreaseDecreaseComponents(num :
int) {
if(numComponents + num == 0) {
numComponents = 1;
return;
}
numComponents += num ;
var newArray : MonoScript[] =
new MonoScript[numComponents];
var count = 0;
if(num > 0)
for(count = 0; count < componentsToAdd.Length; count++)
newArray[count] = componentsToAdd[count];
else for(count = 0; count < newArray.Length; count++)
newArray[count] = componentsToAdd[count];
componentsToAdd = newArray;
}
}