Синтаксис:
Используется javascript
import System;
import UnityEngine;
import UnityEditor;
@CustomEditor(typeof(Transform))
class TransformTool extends Editor
{
var targetTransform:Transform ;
function OnEnable()
{
targetTransform = target as Transform;
}
var source:GameObject;
var showPosition : boolean =false;
var status : String = "Центровка";
override function OnInspectorGUI () {
EditorGUIUtility.LookLikeControls();
var startPos:Vector3 = targetTransform.localPosition;
startPos = EditorGUILayout.Vector3Field("Position", startPos);
if (targetTransform.localPosition != startPos)
{
targetTransform.localPosition = startPos;
}
if (targetTransform.parent != null)
{
var startRot:Vector3 = targetTransform.localRotation.eulerAngles;
var rot:Vector3 = EditorGUILayout.Vector3Field("Rotation", startRot);
if (startRot != rot)
{
targetTransform.localRotation = Quaternion.identity;
targetTransform.Rotate(rot);
}
}
else
{
var startRot2:Vector3 = targetTransform.rotation.eulerAngles;
var rot2 :Vector3 = EditorGUILayout.Vector3Field("Rotation", startRot2);
if (startRot2 != rot2)
{
targetTransform.rotation = Quaternion.identity;
targetTransform.Rotate(rot2);
}
}
var startScale:Vector3 = targetTransform.localScale;
startScale = EditorGUILayout.Vector3Field("Scale", startScale);
if (startScale != targetTransform.localScale)
{
targetTransform.localScale = startScale;
}
GUILayout.Space (5);
showPosition = EditorGUILayout.Foldout(showPosition, status);
//============================================================================
if(showPosition)
{
if(GUILayout.Button("Центр",EditorStyles.miniButton,GUILayout.Width(60)))
{
targetTransform.localPosition=new Vector3(0,0,0);
targetTransform.localRotation.eulerAngles=new Vector3(0,0,0);
}
GUILayout.BeginHorizontal();
if(GUILayout.Button("Центр",EditorStyles.miniButton,GUILayout.Width(60))&&source)
{
var coord=source.transform.position;
var rott=source.transform.rotation;
targetTransform.localPosition=new Vector3(coord.x,coord.y,coord.z);
targetTransform.localRotation = rott;
}
source = EditorGUILayout.ObjectField(source, typeof(GameObject));
GUILayout.EndHorizontal ();
status = "Центровка";
}
if(!Selection.activeTransform) {
status = "";
showPosition = false;
}
}
}
import UnityEngine;
import UnityEditor;
@CustomEditor(typeof(Transform))
class TransformTool extends Editor
{
var targetTransform:Transform ;
function OnEnable()
{
targetTransform = target as Transform;
}
var source:GameObject;
var showPosition : boolean =false;
var status : String = "Центровка";
override function OnInspectorGUI () {
EditorGUIUtility.LookLikeControls();
var startPos:Vector3 = targetTransform.localPosition;
startPos = EditorGUILayout.Vector3Field("Position", startPos);
if (targetTransform.localPosition != startPos)
{
targetTransform.localPosition = startPos;
}
if (targetTransform.parent != null)
{
var startRot:Vector3 = targetTransform.localRotation.eulerAngles;
var rot:Vector3 = EditorGUILayout.Vector3Field("Rotation", startRot);
if (startRot != rot)
{
targetTransform.localRotation = Quaternion.identity;
targetTransform.Rotate(rot);
}
}
else
{
var startRot2:Vector3 = targetTransform.rotation.eulerAngles;
var rot2 :Vector3 = EditorGUILayout.Vector3Field("Rotation", startRot2);
if (startRot2 != rot2)
{
targetTransform.rotation = Quaternion.identity;
targetTransform.Rotate(rot2);
}
}
var startScale:Vector3 = targetTransform.localScale;
startScale = EditorGUILayout.Vector3Field("Scale", startScale);
if (startScale != targetTransform.localScale)
{
targetTransform.localScale = startScale;
}
GUILayout.Space (5);
showPosition = EditorGUILayout.Foldout(showPosition, status);
//============================================================================
if(showPosition)
{
if(GUILayout.Button("Центр",EditorStyles.miniButton,GUILayout.Width(60)))
{
targetTransform.localPosition=new Vector3(0,0,0);
targetTransform.localRotation.eulerAngles=new Vector3(0,0,0);
}
GUILayout.BeginHorizontal();
if(GUILayout.Button("Центр",EditorStyles.miniButton,GUILayout.Width(60))&&source)
{
var coord=source.transform.position;
var rott=source.transform.rotation;
targetTransform.localPosition=new Vector3(coord.x,coord.y,coord.z);
targetTransform.localRotation = rott;
}
source = EditorGUILayout.ObjectField(source, typeof(GameObject));
GUILayout.EndHorizontal ();
status = "Центровка";
}
if(!Selection.activeTransform) {
status = "";
showPosition = false;
}
}
}