Sample: Manage metadata field definitions
You can use the Metadata Management sample to list and manage the metadata field definitions in your Organization.
Organization or Asset Manager Project role | List field definitions | Create/edit/delete field definitions |
---|---|---|
Asset Management Viewer |
yes | no |
Asset Management Consumer |
yes | no |
Asset Management Contributor |
yes | yes |
Organization Owner |
yes | yes |
Before you start
Before you can use the Metadata Management sample, you must have the following:
- Installed Assets package
- Installed Identity package
- A valid Unity ID Account
- Access to your Unity Gaming Services account
- A Unity Project with the Asset Manager service enabled, see: Assets documentation
- Access to the Asset Manager service
Note
While the Assets package itself doesn't depend on the Identity service, it is necessary in the sample to control the authentication process.
Install the sample
To install the sample, follow these steps:
Inside your Unity Project window, go to Package Manager > Unity Cloud Assets.
Expand the Samples section.
On the right of the Collection Management sample, select Import.
After the import process is complete, you can view your imported samples under the
Assets/Samples/Unity Cloud Assets
folder.
Run the sample
To run the sample, follow these steps:
Go to
Assets/Samples/Unity Cloud Assets/<package-version>/Metadata Management/Scenes/MetadataManagementSample.unity
and run the scene.Select an Organization. The left column displays the list of Field Definitions from that Organization.
Select a Field Definition. The information for that field will be displayed.
Create a new metadata field definition
To create a new field definition, follow these steps:
Next to the
Field Definitions
label, select the ... button to open the context menu.Select Create.
Enter a unique id and a display name for the field definition.
Select a type for the field definition.
(Optional) If you selected
Selection
as the type, enter the accepted values.Select Create.
Edit an existing metadata field definition
To edit an existing field definition, follow these steps:
Select one of the entries in the list.
Next to the display name, select the ... button to open the context menu.
Select Edit.
Enter a new display name for the field.
If the field is of type
Selection
, update the list of accepted values.Select Update.
Delete an existing metadata field definition
To delete an existing collection, follow these steps:
Select one of the entries in the list.
Next to the display name, select the ... button to open the context menu.
Select Delete.
Main components
This section describes the scripts that make up the main components of the Metadata Management sample.
Platform services script
The PlatformServices
class initializes and disposes of dependencies required by the IAssetRepository
. You can use this class to retrieve the IFieldDefinition
you want to modify.
To open the platform services script, go to your Assets/Samples/Unity Cloud Assets/<package-version>/Shared/Scripts/Services/PlatformServices.cs
file.
The PlatformServices
class has two accompanying classes called PlatformServicesInitialization
and PlatformServicesShutdown
that call the initialization and shutdown methods through Unity's standard Monobehaviour
methods Awake()
, Start()
and OnDestroy()
.
Field definition controller script
The FieldDefinitionController
class inherits from the OrganizationController
class which enables signing into your application and uses your ID to grant access to the Collection Management sample. For more information on authentication, see the Get user information use case in the Identity package documentation.
The FieldDefinitionController
class uses the IOrganizationRepository
of the PlatformServices
to retrieve the list of organizations you have access to.
The FieldDefinitionController
class uses the IAssetRepository
of the PlatformServices
to retrieve the list of field definitions for the selected organization.
To open the field definition controller script, go to your Assets/Samples/Unity Cloud Assets/<package-version>/MetadataManagement/Scripts/Controllers/Field.cs
file.
Metadata management sample script
The Metadata
shows you how to do the following:
- Integrate the login flow with the
FieldDefinitionController
class - Retrieve Organizations and Field Definitions from the Asset Manager service
To open the metadata management sample script, go to your Assets/Samples/Unity Cloud Assets/<package-version>/MetadataManagement/Scripts/MetadataManagementSample.cs
file.
Metadata field definition panel
- The
FieldDefinitionPanelController
displays the information of aIFieldDefinition
. - The
CreateFieldDefinitionPopupController
class displays the necessary fields to create a new field definition.
Shared UI scripts
The sample includes a set of UI scripts and prefabs. To open shared UI scripts, go to Assets/Samples/Unity Cloud Assets/<package-version>/Shared/Scripts/Controllers
.
Troubleshooting
Refer to the troubleshooting section for help with sample issues.