工程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
引用原文链接:
unity编辑器中打印选中物体所有子物体的坐标并复制到剪贴板_unity打印物体x轴-CSDN博客