void OnRecvSet(SetMessage mes) { #if UNITY_EDITOR Undo.RecordObject(this, "MeshSyncServer"); #endif var scene = mes.scene; // sync materials try { int numMaterials = scene.numMaterials; if (numMaterials > 0) { UpdateMaterials(scene); } } catch (Exception e) { Debug.Log(e); } // sync transforms try { int numTransforms = scene.numTransforms; for (int i = 0; i < numTransforms; ++i) { UpdateTransform(scene.GetTransform(i)); } } catch (Exception e) { Debug.Log(e); } // sync cameras try { int numCameras = scene.numCameras; for (int i = 0; i < numCameras; ++i) { UpdateCamera(scene.GetCamera(i)); } } catch (Exception e) { Debug.Log(e); } // sync lights try { int numLights = scene.numLights; for (int i = 0; i < numLights; ++i) { UpdateLight(scene.GetLight(i)); } } catch (Exception e) { Debug.Log(e); } // sync meshes try { int numMeshes = scene.numMeshes; for (int i = 0; i < numMeshes; ++i) { UpdateMesh(scene.GetMesh(i)); } } catch (Exception e) { Debug.Log(e); } // update references { foreach (var pair in m_clientObjects) { var dstrec = pair.Value; if (dstrec.go == null) { continue; } else if (dstrec.reference == null) { continue; } Record srcrec = null; if (m_clientObjects.TryGetValue(dstrec.reference, out srcrec)) { if (srcrec.go == null) { continue; } var src = srcrec.go.GetComponent <SkinnedMeshRenderer>(); if (src == null) { continue; } var dst = dstrec.go.GetComponent <SkinnedMeshRenderer>(); if (dst == null) { dst = dstrec.go.AddComponent <SkinnedMeshRenderer>(); } dst.sharedMesh = src.sharedMesh; dst.sharedMaterials = src.sharedMaterials; } } } GC.Collect(); }
void OnRecvSet(SetMessage mes) { #if UNITY_EDITOR Undo.RecordObject(this, "MeshSyncServer"); #endif var scene = mes.scene; // sync materials try { int numMaterials = scene.numMaterials; if (numMaterials > 0) { UpdateMaterials(scene); } } catch (Exception e) { Debug.Log(e); } // sync transforms try { int numTransforms = scene.numTransforms; for (int i = 0; i < numTransforms; ++i) { UpdateTransform(scene.GetTransform(i)); } } catch (Exception e) { Debug.Log(e); } // sync cameras try { int numCameras = scene.numCameras; for (int i = 0; i < numCameras; ++i) { UpdateCamera(scene.GetCamera(i)); } } catch (Exception e) { Debug.Log(e); } // sync lights try { int numLights = scene.numLights; for (int i = 0; i < numLights; ++i) { UpdateLight(scene.GetLight(i)); } } catch (Exception e) { Debug.Log(e); } // sync meshes try { int numMeshes = scene.numMeshes; for (int i = 0; i < numMeshes; ++i) { UpdateMesh(scene.GetMesh(i)); } } catch (Exception e) { Debug.Log(e); } GC.Collect(); }
void OnRecvSet(SetMessage mes) { UpdateScene(mes.scene); }