Upgrading
Unity Cloud Data-Streaming [1.5.0]
To upgrade from the Unity Cloud Metadata package to the Unity Cloud Data-Streaming package 1.5.0, you must do the following:
The Unity Cloud Metadata package is no longer required. You can remove it from your project.
Replace the namespace
Unity.Cloud.Metadata
byUnity.Cloud.DataStreaming.Metadata
.Replace the namespace
Unity.Cloud.Metadata.AssetManager
byUnity.Cloud.DataStreaming.Runtime.AssetManager
when initializing aIMetadataRepository
instance.IMetadataRepository.Query
returns aIMetadataQuery
interface instead of aMetadataQuery
instance.
IMetadataQuery query = metadataRepository.Query();
MetadataContainer
,MetadataArray
,MetadataObject
, andMetadataValue
have been replaced byIReadOnlyDictionary<string, IMetadataValue>
.
IMetadataQuery query = metadataRepository.Query();
MetadataInstance instance = await query.GetFirstOrDefaultAsync(token);
IReadOnlyDictionary<string, IMetadataValue> properties = instance.Properties;
IMetadataValue value = properties["keyA"];
string asText = value.ToString();
double asNumber = value.ToNumber();
IMetadataQuery.Select
acceptsMetadataPathCollection
orIEnumerable<string>
as input.
IMetadataQuery query = metadataRepository
.Query("keyA", "keyB", "keyC")
.Select(paths);
Unity Cloud Metadata [0.9.2]
To upgrade to the Unity Cloud Metadata package 0.9.2, you must do the following:
- To query only the ids, without the metadata fields and geometric data, you need to use the
OptionalData
.
IMetadataQuery query = metadataRepository
.Query()
.Select(MetadataPathCollection.None, new OptionalData(OptionalData.Fields.Id));
Unity Cloud Metadata [0.9.0]
To upgrade to the Unity Cloud Metadata package 0.9.0, you must do the following:
- Instead of instantiating a
MetadataRepository
, initialize aIMetadataRepository
instance via theMetadataRepositoryFactory
.
var factory = new MetadataRepositoryFactory();
IMetadataRepository metadataRepository = factory.Create(dataset, serviceHttpClient, serviceHostResolver);
Unity Cloud Metadata [0.8.0]
To upgrade to the Unity Cloud Metadata package 0.8.0, you must do the following:
- To get the possible root keys, replace
IMetadataRepository.GetAllKeysAsync
byIMetadataRepository.GetAllPathsAsync
. It will return aMetadataPathCollection
instance instead of anIEnumerable<string>
.
IMetadataRepository metadataRepository = new MetadataRepository(serviceHttpClient, serviceHostResolver, projectId, assetId, datasetId);
MetadataPathCollection result = await metadataRepository.GetAllPathsAsync();
IMetadataRepository.Query
returns aMetadataQuery
which implementsIAsyncEnumerable<MetadataInstance>
instead of returning aMatchCollection
.
MetadataQuery query = metadataRepository.Query();
await foreach (MetadataInstance metadataInstance in query)
{
// Process metadataInstance
}
MetadataQuery.Select
requires aMetadataPathCollection
instead of anIEnumerable<string>
.
var paths = new MetadataPathCollection("keyA", "keyB", "keyC");
MetadataQuery query = metadataRepository
.Query()
.Select(paths);
SelectAll
has been replaced by theSelect
method.
MetadataQuery query = metadataRepository
.Query()
.Select(MetadataPathCollection.All);
SelectOnlyId
has been replaced by theSelect
method.
MetadataQuery query = metadataRepository
.Query()
.Select(MetadataPathCollection.None);
IncludedIn
has been replaced by theWhereInstanceEquals
method.
MetadataQuery query = metadataRepository
.Query()
.WhereInstanceEquals(instanceIdA, instanceIdB);
LimitTo
has been removed. You can control it when enumerating theAsyncEnumerable
.
MetadataQuery query = metadataRepository.Query();
var count = 0;
await foreach (MetadataInstance metadataInstance in query)
{
if (count++ >= 200)
break;
}
Unity Cloud Metadata [0.6.0]
To upgrade to the Unity Cloud Metadata package 0.6.0, you must do the following:
- Instead of initializing a
MetadataRepository
, instantiate aMetadataRepository
.
var metadataRepository = new MetadataRepository(serviceHttpClient, serviceHostResolver, projectId, assetId, datasetId);