private static void LoadAssetReferences(SerializedArrayView assetReferences, IAssetManager assetManager) { foreach (var assetReference in GetAssetReferencesFromArrayView(assetReferences)) { assetManager.GetEntity(assetReference.ToUnityObject()); } }
/** * Deserialize an array into the array buffer. */ JsonKeyHandle DeserializeToArrayBuffer(SerializedArrayView arrayView) { // construct NativeList<JsonValueRef> then add to buffer var values = new UnsafeList <JsonKeyHandle>(10, m_Allocator); var arrayEnum = arrayView.GetEnumerator(); while (arrayEnum.MoveNext()) { var view = arrayEnum.Current; values.Add(DeserializeValueView(view)); } arrayEnum.Dispose(); m_ArrayBuffer.Add(values); return(new JsonKeyHandle(ref this, JsonValueType.Array, m_ArrayBuffer.Length - 1)); }
private static IEnumerable <AssetReference> GetAssetReferencesFromArrayView(SerializedArrayView assetReferences) { foreach (var element in assetReferences) { var reference = element.AsObjectView(); if (reference.TryGetValue("Guid", out var guid) && reference.TryGetValue("FileId", out var fileId) && reference.TryGetValue("Type", out var type)) { yield return(new AssetReference { Guid = new Guid(guid.AsStringView().ToString()), FileId = fileId.AsInt64(), Type = (int)type.AsInt64() }); } } }