Unity重置游戏对象transform的插件
Why To Make It
有时候我们对对象进行操作, 但是需要将他进行还原, 这时候一个个改他的属性十分的麻烦
How To Solve
- 点击菜单或快捷键Alt+R进行重置
- 代码
using UnityEditor;
using UnityEngine;
public class NewBehaviourScript
{
/// <summary>
/// 添加自定义快捷键, 并绑定alt_R作为快捷键
/// 将选定对象移动到父对象初始位置或世界原点, 重置transform中的属性
/// </summary>
[MenuItem("GameObject/Reset Transform &r")]
public static void reset()
{
//获取选定的游戏对象
GameObject[] selectObjs = Selection.gameObjects;
foreach (GameObject selectObj in selectObjs)
{
Undo.RegisterCompleteObjectUndo(selectObj.transform, "Reset GameObj To Origin.");
//初始化属性
Vector3 pos = Vector3.zero;
Quaternion rot = Quaternion.identity;
if (selectObj.transform.parent != null)
{
pos += selectObj.transform.parent.position;
rot *= selectObj.transform.parent.rotation;
}
selectObj.transform.position = pos;
selectObj.transform.rotation = rot;
selectObj.transform.localScale = Vector3.one;
}
}
}