NGUI 中物体坐标/旋转等归零的小功能

这篇博客分享了一个从NGUI源代码中提取的功能,用于在Unity项目中独立实现物体坐标、旋转的快速归零操作。这个工具特别适用于不使用NGUI但仍有此类需求的项目,只需将代码放入项目的Editor目录下即可生效。
摘要由CSDN通过智能技术生成

从NGUI的源代码中抽取出来的, 可以直接用在没有NGUI的项目中 (要放在Editor文件夹下才有效)


//----------------------------------------------

//  NGUI: Next-Gen UI kit
// Copyright © 2011-2014 Tasharen Entertainment
//----------------------------------------------


#if UNITY_3_5


using UnityEngine;
using UnityEditor;


[CustomEditor(typeof(Transform))]
public class NGUITransformInspector : Editor
{
/// <summary>
/// Draw the inspector widget.
/// </summary>


public override void OnInspectorGUI ()
{
Transform trans = target as Transform;
NGUIEditorTools.SetLabelWidth(15f);


Vector3 pos;
Vector3 rot;
Vector3 scale;


// Position
EditorGUILayout.BeginHorizontal();
{
if (DrawButton("P", "Reset Position", IsResetPositionValid(trans), 20f))
{
NGUIEditorTools.RegisterUndo("Reset Position", trans);
trans.localPosition = Vector3.zero;
}
pos = DrawVector3(trans.localPosition);
}
EditorGUILayout.EndHorizontal();


// Rotation
EditorGUILayout.BeginHorizontal();
{
if (DrawButton("R", "Reset Rotation", IsResetRotationValid(trans), 20f))
{
NGUIEditorTools.RegisterUndo("Reset Rotation", trans);
trans.localEulerAngles = Vector3.zero;
}
rot = DrawVector3(trans.localEulerAngles);
}
EditorGUILayout.EndHorizontal();


// Scale
EditorGUILayout.BeginHorizontal();
{
if (DrawButton("S", "Reset Scale", IsResetScaleValid(trans), 20f))
{
NGUIEditorTools.RegisterUndo("Reset Scale", trans);
trans.localScale = Vector3.one;
}
scale = DrawVector3(trans.localScale);
}
EditorGUILayout.EndHorizontal();


// If something changes, set the transform values
if (GUI.changed)
{
NGUIEditorTools.RegisterUndo("Transform Change", trans);
trans.localPosition = Validate(pos);
trans.localEulerAngles = Validate(rot);
trans.localScale = Validate(scale);
}
}


/// <summar
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值