Files
AIGame/AIClient/Packages/com.unity.pipeline/Documentation~/commands/assets-and-files.md
T

8.9 KiB
Raw Blame History

Asset & file commands

Commands for creating, importing, moving, copying, renaming, deleting and finding project assets, plus folder and text-file operations. Every agent-supplied path is funnelled through the authoring-root sandbox (it rejects ../ and out-of-project writes); destructive or overwriting operations require confirm=true and support dry_run. AssetDatabase create/move/copy/rename/delete are not part of Unity's Undo system.

create_asset

Create a new ScriptableObject (or other UnityEngine.Object) asset of the given type at a path under the authoring root.

Parameter Required Default Description
path yes – Asset path relative to the authoring root, including extension (e.g. Data/Config.asset or Materials/Wall.mat). The Assets/ prefix is optional.
type yes – Fully-qualified or short type name to instantiate (e.g. UnityEngine.Material, MyGame.GameConfig). Must derive from UnityEngine.Object and be creatable.
shader no – Material-only (ignored otherwise): shader name to assign (e.g. Standard, "Universal Render Pipeline/Lit"). When omitted, defaults to "Universal Render Pipeline/Lit" if a Scriptable Render Pipeline is active, otherwise the built-in "Standard" shader (falling back to "Standard" if URP/Lit is unavailable).
confirm no false Required (true) only when overwriting an existing asset at the path. Ignored when the path is empty.
dry_run no false If true, validate inputs and report what would be created without writing anything.

Returns: AuthoringResult Notes: confirm=true required to overwrite an existing asset; supports dry_run.

import_asset

Import an external file (e.g. a texture, model, audio clip) into the project by copying it to a path under the authoring root, then importing it.

Parameter Required Default Description
source yes – Absolute filesystem path to the external file to import.
path yes – Destination asset path relative to the authoring root, including extension. The Assets/ prefix is optional.
confirm no false Required (true) only when overwriting an existing asset at the destination path.
dry_run no false If true, validate inputs and report what would be imported without writing anything.

Returns: AuthoringResult Notes: confirm=true required to overwrite an existing asset; supports dry_run.

move_asset

Move (or rename via a new path) an asset to a new location under the authoring root. Preserves the asset's GUID.

Parameter Required Default Description
asset yes – Reference to the asset to move (path / guid / globalId).
destination yes – Destination asset path relative to the authoring root, including extension. The Assets/ prefix is optional.
dry_run no false If true, validate the move (via AssetDatabase.ValidateMoveAsset) without performing it.

Returns: AuthoringResult Notes: Supports dry_run.

copy_asset

Copy an asset to a new path under the authoring root. The copy gets a fresh GUID.

Parameter Required Default Description
asset yes – Reference to the asset to copy (path / guid / globalId).
destination yes – Destination asset path relative to the authoring root, including extension. The Assets/ prefix is optional.
confirm no false Required (true) only when overwriting an existing asset at the destination path.
dry_run no false If true, validate inputs and report what would be copied without writing anything.

Returns: AuthoringResult Notes: confirm=true required to overwrite an existing asset; supports dry_run.

rename_asset

Rename an asset in place (keeps it in the same folder, keeps its GUID).

Parameter Required Default Description
asset yes – Reference to the asset to rename (path / guid / globalId).
new_name yes – New file name WITHOUT a folder path. The extension is preserved if omitted.
dry_run no false If true, validate the rename without performing it.

Returns: AuthoringResult Notes: Supports dry_run.

delete_asset

Delete an asset from the project. Destructive: requires confirm=true.

Parameter Required Default Description
asset yes – Reference to the asset to delete (path / guid / globalId).
confirm no false Must be true to actually delete. Without it the command refuses (destructive guard).
dry_run no false If true, report the asset that would be deleted without deleting it.

Returns: AuthoringResult Notes: Destructive — confirm=true required; supports dry_run. Not undoable via Unity's Undo.

find_assets

Find assets by type and/or name and/or label, returning their path, GUID and type. At least one filter is required.

Parameter Required Default Description
type no – Type name to filter by (e.g. Material, GameObject, ScriptableObject, MyGame.GameConfig). Resolved to a System.Type and matched against each asset's actual main type.
name no – Name substring to filter by (AssetDatabase name filter).
label no – Asset label to filter by (AssetDatabase 'l:' filter).
search_in no – Folder to scope the search to, relative to the authoring root (default: the authoring root).
limit no 200 Maximum number of results to return (default 200).

Returns: FindAssetsResult Notes: At least one of type, name, or label is required.

set_import_settings

Set import settings on an asset's AssetImporter (e.g. a texture's isReadable) and re-import it.

Parameter Required Default Description
asset yes – Reference to the asset whose importer to edit (path / guid / globalId).
settings yes – JSON object of importer property/field names to values, e.g. {"isReadable": true, "textureType": "NormalMap"}.
dry_run no false If true, validate which settings would apply (and which are unknown) without writing or re-importing.

Returns: SetImportSettingsResult Notes: Supports dry_run. Import settings live in the asset's .meta file and are not part of Unity's Undo system.

get_import_settings

Read an asset's import settings, structured by importer type (texture/model/audio), including the default-platform fields and (for textures/audio) one platform override block.

Parameter Required Default Description
asset yes – Reference to the asset whose importer to read (path / guid / globalId).
platform no Default Platform whose override to read: Default | Standalone | iOS | Android | WebGL | tvOS.

Returns: GetImportSettingsResult

create_folder

Create a folder under the authoring root (creates intermediate folders).

Parameter Required Default Description
path yes – Folder path relative to the authoring root (default Assets/); the Assets/ prefix is optional. e.g. Gameplay/Enemies or Assets/Gameplay/Enemies

Returns: AuthoringResult

read_text_file

Read a UTF-8 text file under the authoring root and return its contents.

Parameter Required Default Description
path yes – Text file path relative to the authoring root. The Assets/ prefix is optional.
max_bytes no 1048576 Reject files larger than this many bytes (default 1048576 = 1 MiB) to avoid huge payloads.

Returns: ReadTextFileResult Notes: MainThreadRequired = true.

write_text_file

Write UTF-8 text to a file under the authoring root, then import it. Overwriting an existing file requires confirm=true.

Parameter Required Default Description
path yes – Text file path relative to the authoring root, including extension. The Assets/ prefix is optional.
contents yes – The full text content to write (replaces the file).
confirm no false Required (true) only when overwriting an existing file at the path.
dry_run no false If true, validate inputs and report what would be written without writing anything.

Returns: AuthoringResult Notes: confirm=true required to overwrite an existing file; supports dry_run. Filesystem writes are not part of Unity's Undo system.

See Creating commands and Connectivity.