Mercurial > hg > Members > kazuma > JungleforUnity
view Assets/Application/Scripts/Test/SaveDataTest.cs @ 4:2878be4487ec
add Maping Code.
author | Kazuma |
---|---|
date | Tue, 08 Nov 2016 17:07:48 +0900 |
parents | |
children | 12f4f937da7f |
line wrap: on
line source
using UnityEngine; using UnityEditor; using System.Collections; using UnityEngine.SceneManagement; public class SaveDataTest : MonoBehaviour { DefaultNodePath root = new DefaultNodePath(); NodePath path; System.Collections.Generic.List<ParentObject> ParentList = new System.Collections.Generic.List<ParentObject>(); public ConvertObject co; private void Start () { path = root.add(0); Check (); } private void Update () { if (Input.GetKeyDown (KeyCode.A)) { SaveData.Instance.CreateTree (SceneManager.GetActiveScene().name); } if (Input.GetKeyDown (KeyCode.S)) { int i = 1; foreach (var parent in ParentList) { foreach (var comp in parent.dic) { Mapping (comp.Key, comp.Value); } // SaveData.Instance.GetAttribute (path); path = path.last ().rights(); path = path.add (i); i++; SaveData.Instance.EditorMode (); } } } private void Mapping(string key, Component value) { byte[] array = ConvertObject.Convert (value); SaveData.Instance.PutAttribute (path, key , array); } private void Check () { // やりたいこと // まず親のみ取得 // その後親から辿っていってComponentをすべてとる // http://answers.unity3d.com/questions/275714/how-to-find-all-components-of-a-game-object.html // こことかいいかも // TreeMap<Gameobject, ChildObject> Left : Parent, Right : ChildTreeMap // 一番浅い親のTreeMapをListに入れる int i = 0; foreach (GameObject obj in UnityEngine.Resources.FindObjectsOfTypeAll(typeof(GameObject))) { string path = AssetDatabase.GetAssetOrScenePath (obj); bool isScene = path.Contains (".unity"); if (isScene) { // このシーンの中のオブジェクトかどうか。 if (obj.transform.childCount == 0 && obj.transform.parent == null || obj.transform.childCount > 0 && obj.transform.parent == null) { // 親を取得 ParentObject parent = new ParentObject (obj, root.add (i)); i++; } } } } }