使用示例
四个完整的模拟场景——安全演练、入职导览、导览游和紧急过渡——每个都展示了不同的上下文策略。
最后更新于
这有帮助吗?
这有帮助吗?
using Convai.Runtime.Components;
using Convai.Runtime.DynamicContext;
using UnityEngine;
public class SuppressionAssessment : MonoBehaviour
{
[SerializeField] private ConvaiCharacter _character;
public void OnWrongSuppressorActivated()
{
_character.DynamicContext.AddEvent(
"受训者在电气火灾上启用了水基灭火剂",
ConvaiContextReactionMode.ReactImmediately
);
}
}using System.Collections.Generic;
using Convai.Runtime.Components;
using Convai.Runtime.DynamicContext;
using UnityEngine;
public class EquipmentPickup : MonoBehaviour
{
[SerializeField] private ConvaiCharacter _character;
private void OnTriggerEnter(Collider other)
{
if (!other.CompareTag("Player")) return;
_character.DynamicContext.SetStates(
new Dictionary<string, string>
{
{ "设备", "完整的 PPE 套装" },
{ "检查点", "更衣室已清除" }
},
ConvaiContextReactionMode.SyncOnly
);
}
}public void OnApproachEquipmentStation()
{
if (!_character.DynamicContext.TryGetStateValue("Equipment", out string equipment)
|| equipment != "Full PPE kit")
{
_character.DynamicContext.SetState(
"设备", "完整的 PPE 套装",
ConvaiContextReactionMode.SyncOnly
);
TriggerEquipmentExplanationDialogue();
}
}public void OnAdvanceToNextStation()
{
_character.DynamicContext.Reset();
}命令 A → On Executed → ExhibitHighlight.Activate()using System.Collections.Generic;
using Convai.Runtime.Components;
using Convai.Runtime.DynamicContext;
using UnityEngine;
public class EmergencyTransition : MonoBehaviour
{
[SerializeField] private ConvaiCharacter _character;
public void TriggerEmergencyPhase()
{
_character.DynamicContext.SetStates(
new Dictionary<string, string>
{
{ "Phase", "Emergency Response" },
{ "Alert Level", "Red" },
{ "Time Remaining", "4 minutes" },
{ "Primary Hazard", "Uncontrolled gas release" }
},
ConvaiContextReactionMode.ReactImmediately
);
}
}