> 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/features/conversation-targeting/how-conversation-targeting-works.md).

# 对话目标选择如何运作

了解 Convai Unity SDK 如何根据视线方向评分来决定玩家正在与谁对话，以及为什么在切换之间该决定保持稳定。

对话锁定是规则 `ConvaiManager` 每秒运行十五次，以决定在一个有多个角色的房间里，玩家当前是在对哪个角色说话。理解其背后的模型——角色如何评分，以及为什么当出现更好的候选者时，目标不会立刻切换——就能解释为什么锁定在训练模拟、交互式体验，以及玩家同时面对多个角色的游戏中会表现成那样。

### 为什么锁定逻辑放在管理器上，而不是组件上

一个只有一个角色正常工作的场景，在第二个角色加入后也必须继续正常工作。那种只有在有人找到并添加锁定组件后才生效的规则，不过是另一种手动步骤，所以该策略保留在管理器上 `ConvaiManager`，这是每个正常工作的场景都已经拥有的组件。无需添加碰撞体，无需配置图层遮罩，也无需填写任何字段——一个有两个处于激活状态的角色的房间 `ConvaiCharacter` 中的组件已经具备锁定所需的一切。

只有一个角色的房间根本不会进入这些逻辑。那个角色掌控对话，没有什么可决定的。

### 对视线方向评分

在默认模式下，锁定读取的是玩家的视线方向，而不是向场景发射射线。射线需要每个角色都有碰撞体，并且正确配置图层遮罩；只要缺少其中任何一项，或者有一个多余的碰撞体挡住视线，它就会静默失败。改为读取摄像机前方方向，就意味着鼠标、手柄、触摸屏和头戴式显示器都会以相同方式驱动锁定，因为它们都不会改变摄像机指向哪里。

每个候选角色都会根据玩家视线方向与角色之间的夹角来评分，距离作为平局判定的次要因素。得分最好的角色，就是被判定为玩家正在看着的角色。

### 资格数值与切换数值

`对话目标选项` 将其四个设置分成两组，分别回答不同的问题，因为它们是在不同时间、出于不同原因进行调优的。

`最大距离` 和 `最大角度` 决定谁 **符合资格** ——角色在玩家被算作正在与其对话之前必须处于的空间范围。 `切换边距` 和 `切换延迟秒数` 决定一个符合条件的挑战者 **多么愿意** 接管对话，并完全是为了防止目标闪烁而存在。

如果没有第二组，两个站得很近的角色会在摄像机不到一度的移动下把对话来回抢走，而把视线扫过房间时，视线掠过的每个人都会接过对话。这两种问题在实际游玩中都很明显，在代码里却看不出来，所以用来防止它们的数值会与决定资格的数值分开调优。请参见 [对话锁定参考](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unity-sdk/features/conversation-targeting/targeting-reference.md) 了解精确字段和默认值。

### 三条让它不至于烦人的规则

除了这四个可调数值外，还有三条规则约束锁定，而这些并不是场景可以关闭的设置。

**一瞥不算称呼。** 角色必须在一段时间内明显更适合，谈话才会真正转向他——视线掠过某个角色却没有停留，并不会改变对话方向。这就是 `切换延迟秒数` 和 `切换边距` 二者共同强制执行的结果：一个挑战者必须以配置好的差值超过当前目标，并在配置好的延迟时间内保持领先，锁定才会提交切换。

**玩家自己说出的句子会钉住目标。** 玩家说话说到一半时，对话不能切到另一个角色——一句话前半段和后半段落到不同角色身上，这种情况不能靠之后的修正来弥补。玩家在发言过程中投去的一瞥也不会被丢弃：它会被记住，因此当玩家完整说完一句话并一直保持那个视线时，对话会在句子结束的那一刻切换，而不需要再看第二次。

**目标永远不会自行清除。** 当当前没有人符合资格时，最后一个被对话指向的角色会继续保持对话，而不会清空目标。清空目标意味着玩家开口却没人回应，这更像是场景坏了，而不是在对任何特定的人说话。

### 一次只允许一个角色发言

Convai 服务的约定是一次只有一个角色发言。移动对话会结束前一个角色的回合，即使是在句子中途。若某个场景中的台词必须始终完整听到——比如简报、脚本化桥段——应当将锁定设置为 `手动` 或者在 `ConvaiCharacter.IsSpeaking` 其为真时。

### 相关概念

{% content-ref url="/pages/1de47e20d64086de6ea2148c4871a665eec92182" %}
[多角色会话工作原理](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unity-sdk/features/multi-character-sessions/how-multi-character-sessions-work.md)
{% endcontent-ref %}

{% content-ref url="/pages/ebc0a4d0906b09a678bb072ecb66e021541e3730" %}
[选择目标模式](/api-docs/zh/cha-jian-yu-ji-cheng/convai-unity-sdk/features/conversation-targeting/choose-a-targeting-mode.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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.convai.com/api-docs/zh/cha-jian-yu-ji-cheng/convai-unity-sdk/features/conversation-targeting/how-conversation-targeting-works.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
