> For the complete documentation index, see [llms.txt](https://docs.convai.com/api-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.convai.com/api-docs/zh/cha-jian-yu-ji-cheng/convai-unity-sdk/core-concepts/asset-ownership.md).

# 资产所有权与写时复制

了解为什么编辑包随附的 Convai 配置文件会创建一个可编辑的项目副本，而不是更改原始资产。

每个实体模块随附的设置资源——一个 `ConvaiGazeProfile`、一个 `ConvaiEmotionProfile`、以及其余部分——都会保留在 Convai 包中，直到你修改它为止。你一旦编辑了包中随附的某个资源，Convai 就会把它复制到你的项目中，并让角色指向这份副本，而不是直接写回原文件。理解其中原因就能解释一种否则看起来像 bug 的行为：你的编辑生效了，但不是作用在你以为的那个文件上。

***

### 为什么不能直接就地编辑

SDK 内随附的配置文件或设置资源位于 `Packages/com.convai.convai-sdk-for-unity/`。即使 Unity 恰好允许写入，直接在那里编辑也是错误的：它是所有未来角色继承的默认值；下一次 SDK 更新会替换该文件；而且当你共享项目或在另一台机器上安装 SDK 时，这个更改不会随项目一起带走。

因此，检查器控件保持可用，而不是被警告禁用。第一次编辑会把资源复制到你的项目中，让角色指向这份副本，并在副本上应用你的更改——然后再告诉你它做了什么。在你被允许尝试之前，不会要求你先做任何事；Convai 会处理包布局所带来的记录工作。

***

### 什么算是 SDK 拥有的，什么算是你自己的

Convai 会把每个设置资源归类为四种所有权类型之一（`SDK/Editor/Ownership/ConvaiAssetOwnership.cs`）再决定一次编辑是否需要先复制：

| 所有权    | 含义                       | 你看到的内容                                       |
| ------ | ------------------------ | -------------------------------------------- |
| 无      | 未分配任何资源。角色使用该模块内置的默认值运行。 | 无——这是默认的、未配置状态。                              |
| 项目拥有   | 一个只有这个角色读取的项目资源。         | 没有提示。你正在编辑的正是你以为自己在编辑的内容。                    |
| 项目共享   | 一个项目资源，打开场景中的其他角色也会读取它。  | 一条信息提示，说明有多少个角色共享它，并带有一个 **为此角色设为独立副本** 按钮。  |
| SDK 拥有 | 一个随 Convai 包一起提供的资源。     | 一条信息提示，说明这些设置随 SDK 一起提供，并带有一个 **创建项目副本** 按钮。 |

共享只会被提示，不会被阻止——同时编辑多个共享同一配置文件的角色，是你完全可以正当做出的选择。只有 SDK 拥有的资源才需要先复制，编辑才算真正有意义。

***

### 第一次编辑时会发生什么

在选中角色时更改一个 SDK 拥有的资源上的任意字段，Convai 会：

1. 将资源复制到你的项目中。
2. 让角色的组件指向该副本。
3. 将你的编辑应用到副本上——包括在副本创建之前已经做出的任何更改，并逐个属性地转移过去。
4. 将整个操作记录为一个撤销步骤，名称按发生的事情来命名，而不是按机制来命名——例如“创建 Nova 的专属动画设置”，而不是“检查器”。

该 `.asset` 文件本身不受 Unity 的撤销系统覆盖—— `AssetDatabase` 资源创建从来都不受覆盖——因此撤销编辑只会把角色的引用恢复原状，但会把复制出来的文件留在项目中，你可以自己找到并删除它。

***

### 副本会放在哪里

如果角色在你的项目中有自己的 prefab，副本就会放在该角色 prefab 的旁边：属于某个角色的设置资源放在它所属角色旁边，本身就不言自明。如果没有 prefab——例如普通场景对象，或者本身位于包中的 prefab——副本就会放在 `Assets/Convai/<Module>/` 中，其中 `<Module>` 是该模块自己的文件夹名称，例如 `Assets/Convai/Gaze/`。无论哪种情况，文件名都会以角色自己的名字开头，并简化为字母、数字和下划线，因此为“Nova (Front Desk)”创建的副本，仍然可以通过搜索 `Nova`.

在自己的检查器中复制一个设置资源、且未选中任何角色时，没有角色可供用来命名副本。该副本会放在 `Assets/Convai/<AssetTypeName>/` 中，按资源类型分组。

{% hint style="warning" %}
被多个角色共享的项目资源绝不会自动复制——只有 SDK 拥有的资源才会。使用 **为此角色设为独立副本** ，即可让某个角色获得共享项目资源的独立副本。
{% endhint %}

***

### 下一步

{% content-ref url="/pages/491cfe5f38fba67eb46308256f5d4fa1ba67cda0" %}
[角色具身化](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unity-sdk/core-concepts/character-embodiment.md)
{% endcontent-ref %}

{% content-ref url="/pages/9aa58b1250604b0f44e22f31b27c7ffe4a02efeb" %}
[对话状态](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unity-sdk/core-concepts/dialogue-state.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.convai.com/api-docs/zh/cha-jian-yu-ji-cheng/convai-unity-sdk/core-concepts/asset-ownership.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
