|
Sets the value of the preference identified by key.
Round rotations/positions and remember the active option.
// Simple script that lets you round rotations and
// round your positions of your selected objects.
// and it remembers which option is being active
class EditorPrefsBool extends EditorWindow {
var showRoundPosition : boolean = true;
var showRoundRotation : boolean = true;
@MenuItem("Examples/Round positions-rotations")
static function Init() {
var window = GetWindow(EditorPrefsBool);
window.Show();
}
function OnGUI() {
showRoundPosition = EditorGUILayout.BeginToggleGroup("Round Position",showRoundPosition);
if(GUILayout.Button("Round Position!"))
DoRoundPosition();
EditorGUILayout.EndToggleGroup();
showRoundRotation = EditorGUILayout.BeginToggleGroup("Round Rotation", showRoundRotation);
if(GUILayout.Button("Round Rotation!"))
DoRoundRotation();
EditorGUILayout.EndToggleGroup();
}
function DoRoundPosition() {
for (var t : Transform in Selection.transforms)
t.localPosition = Vector3(Mathf.Round(t.localPosition.x),
Mathf.Round(t.localPosition.z),
Mathf.Round(t.localPosition.y));
}
function DoRoundRotation() {
for (var t : Transform in Selection.transforms)
t.rotation = Quaternion.Euler(
Vector3(Mathf.Round(t.eulerAngles.x / 45f) * 45f,
Mathf.Round(t.eulerAngles.y / 45f) * 45f,
Mathf.Round(t.eulerAngles.z / 45f) * 45f));
}
function OnFocus() {
if(EditorPrefs.HasKey("ShowRoundPosition"))
showRoundPosition = EditorPrefs.GetBool("ShowRoundPosition");
if(EditorPrefs.HasKey("ShowRoundRotation"))
showRoundPosition = EditorPrefs.GetBool("ShowRoundRotation");
}
function OnLostFocus() {
EditorPrefs.SetBool("ShowRoundPosition", showRoundPosition);
EditorPrefs.SetBool("ShowRoundRotation", showRoundRotation);
}
function OnDestroy() {
EditorPrefs.SetBool("ShowRoundPosition", showRoundPosition);
EditorPrefs.SetBool("ShowRoundRotation", showRoundRotation);
}
}