Hirarchy To Text メモ not yet
HierarchyToText.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEngine;
/// <summary>
/// シーン内でアタッチされているすべてを表示するEditorWindow
/// </summary>
public class HierarchyToText : EditorWindow
{
Vector2 scrollPosition = Vector2.zero;
UnityEngine.Object[] preScripts = new UnityEngine.Object[0];
UnityEngine.Object[] scripts = new UnityEngine.Object[0];
Dictionary<UnityEngine.Object, string> dicScripts = new Dictionary<UnityEngine.Object, string>();
string scenescript;
[MenuItem("Tools/HierarchyToText")]
static void Open()
{
GetWindow<HierarchyToText>();
}
void OnGUI()
{
GUILayout.Label("ヒエラルキー上で使用されている全てを表示します");
GUILayout.Space(2f);
// ボタン表示
if (GUILayout.Button("一覧 表示"))
{
SetDisctionary();
}
this.scrollPosition = EditorGUILayout.BeginScrollView(this.scrollPosition);
foreach (var key in dicScripts.Keys)
{
EditorGUILayout.ObjectField(key, typeof(UnityEngine.Object), false);
}
EditorGUILayout.EndScrollView();
GUI.backgroundColor = Color.white;
//2019/02/20 保存ウィンドウ
if (GUILayout.Button("保存"))
{
// 保存先のファイルパスを取得する
var filePath = EditorUtility.SaveFilePanel("Save", "Assets", "Hierarchy", "txt");
this.scenescript = "";
// スクリプト一覧表示
if (dicScripts != null && dicScripts.Count != 0)
{
foreach (var key in dicScripts.Keys)
{
scenescript += dicScripts[key] + key.name + "\r";
}
}
// パスが入っていれば選択されたということ(キャンセルされたら入ってこない)
if (!string.IsNullOrEmpty(filePath))
{
// 保存処理
textSave(scenescript, filePath);
}
}
}
/// <summary>
/// シーン内でアタッチされているすべての自作スクリプトを取得する
/// </summary>
private IEnumerable<UnityEngine.Object> GetScripts()
{
var gameObjects = (GameObject[])UnityEngine.Object.FindObjectsOfType(typeof(GameObject)); // シーン内の全てのGameObject
foreach (var go in gameObjects)
{
yield return go;
}
}
void Traverse(GameObject obj)
{
Debug.Log(obj.name);
foreach (Transform child in obj.transform)
{
Traverse(child.gameObject);
dicScripts.Add(child, "|-"+ child.GetSiblingIndex().ToString());
}
}
private void SetDisctionary()
{
dicScripts.Clear();
//Transform[] all_transforms = UnityEngine.Object.FindObjectsOfType<Transform>().OrderBy(m => m.transform.GetSiblingIndex()).ToArray();
// Loop through the transforms in the scene, exporting what is necessary
//foreach (Transform go in all_transforms)
//{
// if (go.transform.parent == null)
// {
// Traverse(go.gameObject);
// }
// else
// {
// dicScripts.Add(go, go.root.GetSiblingIndex().ToString());
// }
//}
var gameObjects = (GameObject[])UnityEngine.Object.FindObjectsOfType(typeof(GameObject)); // シーン内の全てのGameObject
foreach (var go in gameObjects)
{
if (go.transform.parent == null)
{
Traverse(go);
}
else
{
dicScripts.Add(go, go.transform.root.GetSiblingIndex().ToString());
}
}
}
public void textSave(string txt, string filepath)
{
StreamWriter sw = new StreamWriter(filepath, false); //true=追記 false=上書き
sw.WriteLine(txt);
sw.Flush();
sw.Close();
}
}
Author And Source
この問題について(Hirarchy To Text メモ not yet), 我々は、より多くの情報をここで見つけました https://qiita.com/monolith8/items/095513d2ebb1531495ba著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .