EditorGUILayout.BeginToggleGroup 开始开关组

static function BeginToggleGroup (label : string, toggle : bool) : bool
static function BeginToggleGroup (label : GUIContent, toggle : bool) : bool

Parameters参数

Returns

bool - The enabled state selected by the user.

返回布尔,用于选择的开启状态。

Description描述

Begin a vertical group with a toggle to enable or disable all the controls within at once.

开始带有开关按钮的一个垂直组,在这里立即启用或禁用控件。

参见:EndToggleGroup.

EditorGUILayout.BeginToggleGroup 开始开关组

Align position/rotation/scale of the selected GameObjects.
对齐选择游戏物体的位置/旋转/缩放。

// C# Example

// Simple script that lets you align GameObjects

// position/rotation/scale wise with the selected active transform

//对齐选择变换的位置/旋转/缩放。

using UnityEngine;

using UnityEditor;



public class Aligner : EditorWindow {

	bool[] pos = new bool[3] { true, true, true };

	bool[] rot = new bool[3] { true, true, true };

	bool[] scale = new bool[3] { true, true, true };



	bool posGroupEnabled = true;

	bool rotGroupEnabled = true;

	bool scaleGroupEnabled = false;



	void OnGUI() {

		posGroupEnabled = EditorGUILayout.BeginToggleGroup("Align position", posGroupEnabled);

		pos[0] = EditorGUILayout.Toggle("x", pos[0]);

		pos[1] = EditorGUILayout.Toggle("y", pos[1]);

		pos[2] = EditorGUILayout.Toggle("z", pos[2]);

		EditorGUILayout.EndToggleGroup();



		rotGroupEnabled = EditorGUILayout.BeginToggleGroup("Align rotation", rotGroupEnabled);

		rot[0] = EditorGUILayout.Toggle("x", rot[0]);

		rot[1] = EditorGUILayout.Toggle("y", rot[1]);

		rot[2] = EditorGUILayout.Toggle("z", rot[2]);

		EditorGUILayout.EndToggleGroup();



		scaleGroupEnabled = EditorGUILayout.BeginToggleGroup("Align scale", scaleGroupEnabled);

		scale[0] = EditorGUILayout.Toggle("x", scale[0]);

		scale[1] = EditorGUILayout.Toggle("y", scale[1]);

		scale[2] = EditorGUILayout.Toggle("z", scale[2]);

		EditorGUILayout.EndToggleGroup();



		GUILayout.Space(30);

		if (GUILayout.Button("Align!"))

			Align();

	}



	void Align() {

		Transform[] transforms = Selection.transforms;

		Transform activeTransform = Selection.activeTransform;

		if (transforms.Length < 2) {

			Debug.LogWarning("Aligner: select at least two objects.");

			return;

		}

		for (int i = 0; i < transforms.Length; i++) {

			if (posGroupEnabled) {

				Vector3 newPos;

				newPos.x = pos[0] ?

					activeTransform.position.x : transforms[i].position.x;

				newPos.y = pos[1] ?

					activeTransform.position.y : transforms[i].position.y;

				newPos.z = pos[2] ?

					activeTransform.position.z : transforms[i].position.z;

				transforms[i].position = newPos;

			}

			if (rotGroupEnabled) {

				Vector3 newRot;

				newRot.x = rot[0] ?

					activeTransform.rotation.eulerAngles.x : transforms[i].rotation.eulerAngles.x;

				newRot.y = rot[1] ?

					activeTransform.rotation.eulerAngles.y : transforms[i].rotation.eulerAngles.y;

				newRot.z = rot[2] ?

					activeTransform.rotation.eulerAngles.z : transforms[i].rotation.eulerAngles.z;

				transforms[i].rotation = Quaternion.Euler(newRot);

			}

			if (scaleGroupEnabled) {

				Vector3 newScale;

				newScale.x = scale[0] ?

					activeTransform.localScale.x : transforms[i].localScale.x;

				newScale.y = scale[1] ?

					activeTransform.localScale.y : transforms[i].localScale.y;

				newScale.z = scale[2] ?

					activeTransform.localScale.z : transforms[i].localScale.z;

				transforms[i].localScale = newScale;

			}

		}

	}



	[MenuItem("Examples/Position-Rotation-Scale Aligner")]

	static void Init() {

		Aligner window = (Aligner)EditorWindow.GetWindow(typeof(Aligner));

		window.Show();

	}

}
Page last updated: 2011-7-14