void InsertSharedComponentValues(ExternalSharedComponentValue[] values, EntityManager manager) { for (int i = 0; i < values.Length; ++i) { ExternalSharedComponentValue value = values[i]; int index = manager.m_SharedComponentManager.InsertSharedComponentAssumeNonDefault(value.typeIndex, value.hashcode, value.obj); Assert.AreEqual(i + 1, index); } }
ExternalSharedComponentValue[] ExtractSharedComponentValues(int[] indices, EntityManager manager) { var values = new ExternalSharedComponentValue[indices.Length]; for (int i = 0; i < indices.Length; ++i) { object value = manager.m_SharedComponentManager.GetSharedComponentDataNonDefaultBoxed(indices[i]); int typeIndex = TypeManager.GetTypeIndex(value.GetType()); int hash = TypeManager.GetHashCode(value, typeIndex); values[i] = new ExternalSharedComponentValue { obj = value, hashcode = hash, typeIndex = typeIndex }; } return(values); }