工程Asset下新建Editor文件夹;
Editor文件夹下新建脚本LogPosition
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
public class LogPosition : EditorWindow
{
//最终输出的数据.
static string logtext;
//增加菜单栏选项
[MenuItem("LOGPOSITION/LOG")]
public static void OpenLoadLevel()
{
//重置数据
logtext = "";
//获取编辑器中当前选中的物体
GameObject[] obj = Selection.gameObjects ;
//如果没有选择任何物体,弹出提示并退出
if (obj == null)
{
EditorUtility.DisplayDialog("ERROR", "No select obj!!", "ENTRY");
return;
}
//遍历所有子物体,并记录数据
// ForeachObjAndSave(obj[0]);
logtext = "new Vector3(" + obj[0].transform.localPosition.x + "f" + "," + obj[0].transform.localPosition.y + "f" + "," + obj[0].transform.localPosition.z + "f" + ")" + "\n" +
"new Vector3(" + obj[0].transform.localEulerAngles.x + "f" + "," + obj[0].transform.localEulerAngles.y + "f" + "," + obj[0].transform.localEulerAngles.z + "f" + ")" + "\n" +
"path:" +OutputObjPath(obj[0].transform, obj[0].transform.name);
//}
Debug.Log(logtext);
复制到剪贴板
//TextEditor editor = new TextEditor();
//editor.text = new GUIContent(logtext);
//editor.SelectAll();
//editor.Copy();
}
static string objPathEditor = "";
static string OutputObjPath(Transform tar, string path)
{
if (tar.parent != null)
{
objPathEditor = tar.parent.name + "/" + path;
OutputObjPath(tar.parent, objPathEditor);
}
return objPathEditor;
}
//遍历所有子物体
static void ForeachObjAndSave(GameObject obj)
{
//foreach (Transform child in obj.transform)
//{
// logtext += (child.localPosition.x + "," + child.localPosition.y + "," + child.localPosition.z + "\n");
//}
}
}
场景选择物体后,点击界面上方LOGPOSITION
引用原文链接: