[MenuItem("MyMenu/GetTransforms")]static void DoSomething(){if (Selection.activeGameObject==null){EditorUtility.DisplayDialog("错误", "未选中物体", "OK");return;}Debug.Log(Selection.activeGameObject.name);Save(Selection.activeGameObject.transform.GetComponentsInChildren<Transform>());}public class Date{public string name;public Vector3 localPosition;public Vector3 localEulerAngles;public Vector3 localScale;}static void Save(Transform[] trans){string filePath = Application.dataPath + @"/Resources/transDate.json";Debug.Log(Application.dataPath + @"/Resources/transDate.json");//找到当前路径FileInfo file = new FileInfo(filePath);//判断有没有文件,有则打开文件,,没有创建后打开文件StreamWriter sw = file.CreateText();Transform tran;int count = 0;for (int i = 0; i < trans.Length; i++){tran = trans[i];Debug.Log(tran.name + tran.localPosition + tran.localEulerAngles + tran.localScale);Date date = new Date { name=tran.name, localPosition = tran.localPosition, localEulerAngles = tran.localEulerAngles, localScale = tran.localScale };string json = JsonUtility.ToJson(date);sw.WriteLine(json);count++;}EditorUtility.DisplayDialog("恭喜", string.Format("导出数据{0}条", count), "OK");//ToJson接口将你的列表类传进去,,并自动转换为string类型//string json = JsonUtility.ToJson(dates);//将转换好的字符串存进文件,//注意释放资源sw.Close();sw.Dispose();AssetDatabase.Refresh();}
Selection.activeGameObject 编辑器模式下选中物体
EditorUtility.DisplayDialog() 弹出Windos窗口 1,标题 2,内容 3,按钮(有多重重载)
在编辑器模式下对相关物体进行批量操作