bool SerializeKnownComponents(GameObject go, LevelObject lo, out bool skipChildren) { bool doKeep = false; skipChildren = false; /* * var sdo = go.GetComponent<SpawnDriftingObjects>(); * if(sdo != null) * { * var sh = new SerializerHelper(); * sh.Stream = new ByteStream(); * sh.Write(sdo); * * var sb = new SimpleBuffer(); * sb.Stream = new MemoryStream(sh.Stream.Buffer, 0, sh.Stream.Position, true, true); * * lo.properties[LevelObject.SPAWN_DRIFTING_OBJECTS] = sb; * lo.properties[LevelObject.SPAWN_DRIFTING_OBJECTS_TEMPLATE] = GetPrefabID(go.name, sdo.ObjectToSpawn); * * skipChildren = true; * doKeep = true; * } */ var mta = go.GetComponent <MeshTunnelAnimator>(); if (mta != null) { var sh = new SerializerHelper(); sh.Stream = new ByteStream(); sh.Write(mta); var sb = new SimpleBuffer(); sb.Stream = new MemoryStream(sh.Stream.Buffer, 0, sh.Stream.Position, true, true); lo.properties[LevelObject.MESH_TUNNEL_ANIMATOR] = sb; if (mta.OverrideMaterial != null) { lo.properties[LevelObject.MESH_TUNNEL_ANIMATOR_MATERIAL] = mapComp.ResolveMaterialToId(mta.OverrideMaterial); } lo.properties[LevelObject.MESH_TUNNEL_ANIMATOR_DISPLAYMESH] = GetPrefabID(mta.DisplayMesh.name, mta.DisplayMesh); doKeep = true; } var ps = go.GetComponent <ParticleSystem>(); if (ps != null) { var sh = new SerializerHelper(); sh.Stream = new ByteStream(); sh.Write(ps); var sb = new SimpleBuffer(); sb.Stream = new MemoryStream(sh.Stream.Buffer, 0, sh.Stream.Position, true, true); lo.properties[LevelObject.PARTICLE_SYSTEM] = sb; var psr = go.GetComponent <ParticleSystemRenderer>(); lo.properties[LevelObject.PARTICLE_SYSTEM_MATERIAL] = mapComp.ResolveMaterialToId(psr.sharedMaterial); doKeep = true; } return(doKeep); }