annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
1 using UnityEngine;
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
2 using UnityEditor;
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
3 using System.Collections;
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
4 using UnityEngine.SceneManagement;
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
5
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
6 public class SaveDataTest : MonoBehaviour {
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
7
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
8 DefaultNodePath root = new DefaultNodePath();
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
9 NodePath path;
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
10 System.Collections.Generic.List<ParentObject> ParentList = new System.Collections.Generic.List<ParentObject>();
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
11 public ConvertObject co;
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
12
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
13 private void Start () {
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
14 path = root.add(0);
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
15 Check ();
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
16 }
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
17
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
18 private void Update () {
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
19 if (Input.GetKeyDown (KeyCode.A)) {
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
20 SaveData.Instance.CreateTree (SceneManager.GetActiveScene().name);
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
21 }
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
22
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
23 if (Input.GetKeyDown (KeyCode.S)) {
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
24 int i = 1;
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
25 foreach (var parent in ParentList) {
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
26 foreach (var comp in parent.dic) {
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
27 Mapping (comp.Key, comp.Value);
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
28 }
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
29 // SaveData.Instance.GetAttribute (path);
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
30 path = path.last ().rights();
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
31 path = path.add (i);
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
32 i++;
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
33 SaveData.Instance.EditorMode ();
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
34 }
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
35 }
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
36 }
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
37
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
38 private void Mapping(string key, Component value) {
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
39 byte[] array = ConvertObject.Convert (value);
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
40 SaveData.Instance.PutAttribute (path, key , array);
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
41 }
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
42
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
43 private void Check () {
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
44 // やりたいこと
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
45 // まず親のみ取得
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
46 // その後親から辿っていってComponentをすべてとる
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
47 // http://answers.unity3d.com/questions/275714/how-to-find-all-components-of-a-game-object.html
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
48 // こことかいいかも
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
49
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
50 // TreeMap<Gameobject, ChildObject> Left : Parent, Right : ChildTreeMap
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
51 // 一番浅い親のTreeMapをListに入れる
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
52 int i = 0;
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
53 foreach (GameObject obj in UnityEngine.Resources.FindObjectsOfTypeAll(typeof(GameObject))) {
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
54 string path = AssetDatabase.GetAssetOrScenePath (obj);
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
55 bool isScene = path.Contains (".unity");
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
56 if (isScene) { // このシーンの中のオブジェクトかどうか。
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
57 if (obj.transform.childCount == 0 && obj.transform.parent == null || obj.transform.childCount > 0 && obj.transform.parent == null) { // 親を取得
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
58 ParentObject parent = new ParentObject (obj, root.add (i));
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
59 i++;
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
60 }
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
61 }
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
62 }
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
63 }
2878be4487ec add Maping Code.
Kazuma
parents:
diff changeset
64 }