public static NetworkObject Create(uint id, Type type)
{
var entity = CreateEntity(id);
var comp = Activator.CreateInstance(type) as NetworkObject;
List<NetworkObject> objList;
if (_netObjectCache.TryGetValue(entity, out objList))
{
objList.Add(comp);
}
else
{
objList = new List<NetworkObject>();
objList.Add(comp);
_netObjectCache[entity] = objList;
}
if (_inSnapshot && comp != null)
{
_snapshotCache.Add(new Tuple<Entity, NetworkObject>(entity, comp));
}
else
{
var compType = ComponentTypeManager.GetTypeFor(type);
if (entity.GetComponent(compType) == null)
{
comp.Owner = entity;
entity.AddComponent(comp as IComponent);
}
}
return comp;
}