在您开始之前
要访问任何资产,请确保应用程序具有正确的权限。有关更多信息,请参阅 管理身份用例。
创建新资产
要将资产添加到项目中,请执行以下步骤
- 使用
create_asset
方法,将所有信息传递到AssetCreation
中。 - 至少定义
Name
和Type
值以创建资产。Type
的可能值为2D 资产
3D 模型
音频
材质
脚本
视频
其他
创建的资产将保存为草稿。
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" )
更新资产
要更改名称、描述、类型、标签或用于预览的文件,您需要
- 创建
AssetUpdate
方法。 - 调用
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' )
发布资产
创建资产并将其设为草稿后,调用 publish_asset
以使用其所有信息发布资产。资产的状态将更改为 PUBLISHED
。
unity_cloud.assets.publish_asset( org_id = "012345678912", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef", asset_id = "0123456789abcdefghijklmn", asset_version = '1234abcd-ab12-cd34-ef56-123456abcdef' )
更新资产状态
您可以通过调用 update_asset_state
方法手动设置资产状态。状态的可能值为
AssetStatusAction.SEND_FOR_REVIEW
AssetStatusAction.APPROVE
AssetStatusAction.REJECT
AssetStatusAction.PUBLISH
unity_cloud.assets.update_asset_status( org_id = "012345678912", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef", asset_id = "0123456789abcdefghijklmn", asset_version = '1234abcd-ab12-cd34-ef56-123456abcdef', status = AssetStatusAction.SEND_FOR_REVIEW )
获取资产
要获取单个资产,请调用 get_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_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_asset_list
。
assets = unity_cloud.assets.get_asset_list( org_id = "012345678912", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef" )
对资产执行高级搜索
要在整个组织中搜索资产,请执行以下步骤
- 创建您的过滤器作为字典或对象,其中将包含条件。
- 创建一个数组,其中将包含要查找的项目。将数组留空以搜索组织中的所有项目。
- 创建一个数组,其中将包含要查找的集合。将数组留空以搜索所有集合和未链接到集合的资产。
- 使用组织 ID、您的项目 ID、您的过滤器、any_filter 中所需的匹配数量、集合以及可选的返回结果的最大数量和用于分页目的的跳过数量调用
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)
创建搜索查询的过滤器
要创建 include_filter
、exclude_filter
或 any_filter
,您可以使用枚举 SearchableProperties
作为帮助程序。此枚举附带有关如何创建每个属性的注释。您不限于此枚举中的属性,可以编写您自己的属性,只要您编写的属性存在于资产、数据集或文件中即可。
要创建字符串属性的过滤器,您可以编写一个简单的相等条件,也可以使用高级 StringFilter
。
include_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
。必须传递日期。
date_to_compare = datetime.now().isoformat() exclude_filter = dict() exclude_filter[SearchableProperties.DATASETS_CREATED] = date_to_compare exclude_filter[SearchableProperties.FILES_UPDATED] = DateRangeCondition(DateConditionTypes.LESS_THAN, date_to_compare)
将资产链接到项目
要将资产链接到多个项目,请使用 link_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" )
删除与项目链接的资产
要删除与多个项目链接的资产,请使用 unlink_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"] )
获取资产预览文件 URL
要获取资产预览文件的 URL,请使用 get_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' )