object Contravariant.IJsonAdapter <UnityObject> .Deserialize(SerializedValueView view) { #if UNITY_EDITOR if (view.Type == TokenType.String) { if (UnityEditor.GlobalObjectId.TryParse(view.ToString(), out var id)) { if (id.assetGUID.Empty()) { return(null); } var obj = UnityEditor.GlobalObjectId.GlobalObjectIdentifierToObjectSlow(id); if (obj == null || !obj) { throw new InvalidOperationException($"An error occured while deserializing asset reference GUID=[{id.assetGUID.ToString()}]. Asset is not yet loaded and will result in a null reference."); } return(obj); } } if (view.Type == TokenType.Object) { return(FromObjectHandle(view.AsObjectView())); } #endif return(null); }
/** * Determine the type of a value view and fully deserialize it into the correct buffer. */ JsonKeyHandle DeserializeValueView(SerializedValueView valueView) { JsonKeyHandle jsonKeyHandle; switch (valueView.Type) { case TokenType.Primitive: jsonKeyHandle = DeserializeToPrimitiveBuffer(valueView.AsPrimitiveView()); break; case TokenType.String: jsonKeyHandle = DeserializeToStringBuffer(valueView.AsStringView()); break; case TokenType.Object: jsonKeyHandle = DeserializeToObjectBuffer(valueView.AsObjectView()); break; case TokenType.Array: jsonKeyHandle = DeserializeToArrayBuffer(valueView.AsArrayView()); break; default: jsonKeyHandle = default; break; } return(jsonKeyHandle); }