Skip to content
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 29 additions & 14 deletions Runtime/Scripts/BaseMeshSync.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1746,6 +1746,24 @@ private EntityRecord UpdatePointsEntity(PointsData data, MeshSyncPlayerConfig co
return rec;
}

void AddClientObject(string path, out EntityRecord rec, ref Transform trans) {
Comment thread
sindharta-tanuwijaya marked this conversation as resolved.
Outdated
if (m_clientObjects.TryGetValue(path, out rec))
if (rec.go == null) {
m_clientObjects.Remove(path);
rec = null;
}

if (rec == null) {
trans = FilmInternalUtilities.GameObjectUtility.FindOrCreateByPath(m_rootObject, path, false);
rec = new EntityRecord {
go = trans.gameObject,
trans = trans,
recved = true
};
m_clientObjects.Add(path, rec);
}
}

private EntityRecord UpdateTransformEntity(TransformData data, MeshSyncPlayerConfig config) {
string path = data.path;
int hostID = data.hostID;
Expand All @@ -1765,20 +1783,17 @@ private EntityRecord UpdateTransformEntity(TransformData data, MeshSyncPlayerCon
return null;
}
else {
if (m_clientObjects.TryGetValue(path, out rec))
if (rec.go == null) {
m_clientObjects.Remove(path);
rec = null;
}

if (rec == null) {
trans = FilmInternalUtilities.GameObjectUtility.FindOrCreateByPath(m_rootObject, path, false);
rec = new EntityRecord {
go = trans.gameObject,
trans = trans,
recved = true
};
m_clientObjects.Add(path, rec);
AddClientObject(path, out rec, ref trans);

// Ensure any objects that were created as parent of this object are also added to m_clientObjects:
var names = path.Split('/');
Comment thread
sindharta-tanuwijaya marked this conversation as resolved.
Outdated
for (int i = names.Length - 1; i > 1; i--) {
var parentPath = String.Join("/", names.Take(i));
Transform parentTrans = null;
EntityRecord parentRec = null;
AddClientObject(parentPath, out parentRec, ref parentTrans);
if (parentRec.dataType == EntityType.Unknown)
parentRec.dataType = EntityType.Transform;
}
}

Expand Down