2using System.Collections.Generic;
4using System.Runtime.Serialization;
16 [System.Serializable()]
32 private GameObject thisGO;
42 public pb_SceneNode(SerializationInfo info, StreamingContext context)
44 name = (string)info.GetValue(
"name", typeof(
string));
46 children = (List<pb_SceneNode>)info.GetValue(
"children", typeof(List<pb_SceneNode>));
47 localPos = (Vector3)info.GetValue(
"localPos", typeof(Vector3));
49 foreach (var e
in info)
55 var asd = e.Value.ToString();
61 hash = e.Value.ToString();
63 if (e.Name ==
"rename")
65 rename = e.Value.ToString();
67 if (e.Name ==
"trigger")
69 trigger = Convert.ToBoolean(e.Value);
71 if (e.Name ==
"convex")
73 convex = Convert.ToBoolean(e.Value);
75 if (e.Name ==
"components")
77 var deserializeHack = e.Value.ToString();
78 var comps = Newtonsoft.Json.JsonConvert.DeserializeObject<List<pb_SerializableObject<Component>>>(deserializeHack);
79 var val =
new List<pb_ISerializable>();
97 public void GetObjectData(SerializationInfo info, StreamingContext context)
99 info.AddValue(
"name",
name, typeof(
string));
102 info.AddValue(
"hash", thisGO.GetComponent<
HashHolder>().
Hash, typeof(
string));
110 var positioner = thisGO.GetComponent<
Positioner>();
113 info.AddValue(
"stage", positioner.ActiveInStage, typeof(
int));
114 info.AddValue(
"finalpos", positioner.FinalPosition, typeof(Vector3));
115 info.AddValue(
"finalrot", positioner.FinalRotation, typeof(Vector3));
116 info.AddValue(
"finalfwd", positioner.FinalForward, typeof(Vector3));
117 info.AddValue(
"finalrgt", positioner.FinalRight, typeof(Vector3));
118 info.AddValue(
"final_up", positioner.FinalUp, typeof(Vector3));
119 info.AddValue(
"tolp", positioner.TolerancePos, typeof(
float));
120 info.AddValue(
"tolr", positioner.ToleranceRot, typeof(
float));
132 info.AddValue(
"holderIndex", tholder.targetIndex, typeof(
int));
140 info.AddValue(
"localPos", thisGO.transform.localPosition, typeof(Vector3));
143 var coll = thisGO.GetComponentInChildren<MeshCollider>();
146 info.AddValue(
"convex", coll.convex, typeof(
bool));
147 info.AddValue(
"trigger", coll.isTrigger, typeof(
bool));
158 if (rn && !
string.IsNullOrEmpty(rn.NewName))
160 info.AddValue(
"rename", rn.NewName, typeof(
string));
170 var mr = thisGO.GetComponent<MeshRenderer>();
173 var _materials = mr.materials;
175 if (_materials !=
null)
178 foreach (var _material
in _materials)
229 info.AddValue(
"children",
children, typeof(List<pb_SceneNode>));
248 if (metadata_component ==
null)
265 else if (root.GetComponent<MeshRenderer>())
267 components.Add(pb_Serialization.CreateSerializableObject<
Component>(root.GetComponent<MeshRenderer>()));
310 children =
new List<pb_SceneNode>();
312 foreach (Transform t
in root.transform)
331 go =
new GameObject();
334 go.AddComponent(serializedObject);
342 go = GameObject.Instantiate(prefab);
347 go =
new GameObject();
360 child.transform.SetParent(go.transform);
UnityEngine.Component Component
void GetObjectData(SerializationInfo info, StreamingContext context)
ChangedTextureHolder changedTexture
pb_SceneNode(GameObject root)
GameObject ToGameObject()
List< pb_SceneNode > children
List< pb_ISerializable > components
pb_SceneNode(SerializationInfo info, StreamingContext context)
static GameObject LoadPrefabWithMetadata(pb_MetaData metadata)