Manage assets
How to add and manage assets with Python SDK.
Read time 4 minutesLast updated 21 days ago
Before you begin
To access any assets, make sure the app has the right permissions. Read more about managing Identity.Create an asset
To add an asset into a project, follow these steps:- Use the method by passing all the information inside
create_asset
.AssetCreation
- At least define and
Name
values to create an asset. The possible values forType
are:Type
2D Asset
3D Model
Audio
Material
Script
Video
Unity Editor
Other
asset_creation = AssetCreation( name = "your-asset-name", description = "your-asset-description", type = unity_cloud.assets.AssetType.MODEL_3D, tags = ["your-tag-1", "your-tag-2", "your-tag-3"] ) asset = unity_cloud.assets.create_asset( asset_creation = asset_creation, org_id = "012345678912", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef" )
Update an asset
To change the name, the description, the type, the tags, or the file used for the preview you need to:- Create an method.
AssetUpdate
- Call the method.
update_asset
asset_update = AssetUpdate( name = "your-asset-name", description = "your-asset-description", type = unity_cloud.assets.AssetType.MODEL_3D, tags = ["your-tag-1", "your-tag-2", "your-tag-3"], preview_file = "Path/To/File.ext" ) unity_cloud.assets.update_asset( asset_update = asset_update, org_id = "012345678912", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef", asset_id = "0123456789abcdefghijklmn", asset_version = '1234abcd-ab12-cd34-ef56-123456abcdef' )
Get an asset
To fetch a single asset, callget_asset
asset = unity_cloud.assets.get_asset( org_id = "012345678912", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef", asset_id = "0123456789abcdefghijklmn", asset_version = '1234abcd-ab12-cd34-ef56-123456abcdef' )
Get an asset by its label
When the version of the asset is not known, you can fetch an asset by its label using theget_asset_by_label
label
asset = unity_cloud.assets.get_asset_by_label( org_id = "012345678912", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef", asset_id = "0123456789abcdefghijklmn", label = "your-asset-label" )
Get a list of all assets within a project
To fetch all assets contained in a given project, callget_asset_list
assets = unity_cloud.assets.get_asset_list( org_id = "012345678912", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef" )
Perform an advanced search for assets
To search for assets across an organization, follow these steps:- Create your filters as dictionnaries or objects that will contain the conditions.
- Create an array that will contain the projects in which to look up. Leave the array empty to search across all projects in the organization.
- Create an array that will contain the collections in which to look up. Leave the array empty to search across all collections and assets not linked to a collection.
- Call with the organization ID, your project IDs, your filters, the amount of matches required in the any_filter, the collections, and optionally the maximum number of results returned and the amount to skip for paging purpose.
search_assets_in_projects
include_filter = dict() exclude_filter = dict() any_filter = dict() include_filter[SearchableProperties.NAME] = StringFilter(StringLookUpTypes.REGEX, "asset\-.*") project_ids = [] collections = [] search_result = unity_cloud.assets.search_assets_in_projects(org_id, project_ids, include_filter = include_filter, exclude_filter = exclude_filter, any_filter = any_filter, any_query_minimum_match = 1, collections = collections, limit_to = 10, skip = 0)
Create filter for a search query
To create aninclude_filter
exclude_filter
any_filter
SearchableProperties
StringFilter
To create a filter on a date property, you can either write a simple equal condition, or use an advancedinclude_filter = dict() include_filter[SearchableProperties.DESCRIPTION] = "Description must be exactly equals to this" include_filter[SearchableProperties.NAME] = StringFilter(StringLookUpTypes.wildcard, "incompl*te n*me")
DateRangeCondition
To search using a custom metadata field, writedate_to_compare = datetime.now().isoformat() exclude_filter = dict() exclude_filter[SearchableProperties.DATASETS_CREATED] = date_to_compare data_condition = DateRangeCondition(RangeConditionTypes.LESS_THAN, date_to_compare) date_filter = DateRangeFilter([numeric_condition]) exclude_filter[SearchableProperties.FILES_UPDATED] = DateRangeFilter([data_condition])
metadata.<your-metadata-key>
exclude_filter = dict() exclude_filter["metadata.MyCustomMetadataFieldKey"] = "expected-value"
Link assets to a project
To link assets to multiple projects, use thelink_assets_to_project
project_id
unity_cloud.assets.link_asset_to_project( org_id = "012345678912", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef", asset_ids = ["0123456789abcdefghijklmn"], new_project_id = "4567efgh-ab12-cd34-ef56-123456abcdef" )
Remove assets link to a project
To remove assets link to multiple projects, use theunlink_assets_from_project
project_id
unity_cloud.assets.unlink_asset_from_project( org_id = "012345678912", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef", asset_ids = ["0123456789abcdefghijklmn"] )
Get an asset preview file URL
To get the URL of the preview file of an asset, use theget_preview_file_url
preview_file_url = unity_cloud.assets.get_preview_file_url( org_id = "012345678912", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef", asset_id = "0123456789abcdefghijklmn", asset_version = '1234abcd-ab12-cd34-ef56-123456abcdef' )
Add an asset reference to an asset
To add a reference to an asset, use theadd_asset_reference
unity_cloud.assets.add_asset_reference( org_id = "012345678912", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef", source_asset_id = "0123456789abcdefghijklmn", source_asset_version = '1234abcd-ab12-cd34-ef56-123456abcdef', target_asset_id = "4567efgh-ab12-cd34-ef56-123456abcdef", target_asset_version = '4567efgh-ab12-cd34-ef56-123456abcdef', target_asset_label = "your-asset-label" )
List the references of an asset
To list the references of an asset, use thelist_asset_references
context
Context.SOURCE
Context.TARGET
Context.BOTH
references = unity_cloud.assets.list_asset_references( org_id = "012345678912", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef", asset_id = "0123456789abcdefghijklmn", asset_version = '1234abcd-ab12-cd34-ef56-123456abcdef', context = Context.SOURCE )
Remove an asset reference
Using the result of the previous method, you can remove a reference to an asset by using theremove_asset_reference
unity_cloud.assets.remove_asset_reference( org_id = "012345678912", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef", asset_id = "0123456789abcdefghijklmn", asset_version = '1234abcd-ab12-cd34-ef56-123456abcdef', reference_id = "4567efgh-ab12-cd34-ef56-123456abcdef" )