articy:draft 3 使用中需要注意的点( 二 )


8、当需要显示文本时 , 为了以后能做本地化 , 需要在对应的显示文本的对象上装上 ArticyLocaCaretaker 组件
当更换文本时 , 需要使用其 LocaKey 来进行更改
publicvoidOnFlowPlayerPaused(IFlowObjectaObject){
//获取文本的方法 1
varmodelWithText =aObject asIObjectWithLocalizableText;
if(modelWithText !=null)
{
//将获得的文本 key 传递给对应的显示对象
dialogText .LocaKey=modelWithText.LocaKey_Text;
}
}
不过也可以使用 locaKey 字段来更改其值 , 但是还需要跟着 UpdateText 方法 , 才会使得文本对象的 text 更新 , 这里也可以在该更新方法中设定一些更新文本过程中需要做的事
publicvoidOnFlowPlayerPaused(IFlowObjectaObject){
//获取文本方法 2 , 注意 locaKey 的首字母 l
vardlgFragment =aObject asDialogueFragment;
if(dlgFragment !=null)
{
dialogText .locaKey =dlgFragment.LocaKey_Text;
dialogText .UpdateText;
}
}
因此在写代码时 , 需要 注意检查 LocaKey 的首字母有没有大小写 。
9、 特别需要注意的是: ArticyLocalizationCaretaker 的 Target Component 选项必须要选择目标对象的 Text 组件 , 而不能直接将该目标对象直接拉进去, 下图这样的拖法在游戏中是不会生效的
需要直接将 text 的组件拖进去才行 , 像下图这样 ,LocaKey 所对应的文本才能正确设置到目标对象的 Text 组件中
10、当所需要显示的内容为所有对象共有的属性(例如需要显示对象的文本时 , 而所有的对象 , 包括流片段 , 对话片段等都有文本 text 属性)时 , 可以使用接口来获得该属性 , 例如在通过接口获取的对话片段节点中

  • 获取发言者的接口是 IObjectWithSpeaker
  • 获取对话内容的接口是 IObjectWithLocalizableText
  • 获取菜单文本对应的接口是 IObjectWithLocalizableMenuText
  • 获取舞台指示的接口是 IObjectWithLocalizableStageDirections
一定要注意 , 如果打印出来的文本为空的话 , 除了检查目标组件项有没有填错外 , 还需要检查引用的接口以及在 Articy 中填对话片段节点时有没有填错 。
articy:draft 3 使用中需要注意的点
文章图片

11、当需要自定义输出的文本时 , 比如显示发言人名字+发言内容时 , 需要在流程控制脚本中增加监听事件
voidAwake{
//添加事件监听
dialogText.localizedTextAssignmentMethod.AddListener(AssignDialogueText);
【articy:draft 3 使用中需要注意的点】}
同时增加处理函数
/// <summary>
/// 对本地化文本进行处理 , 在文本前增加发言人名字
/// </summary>
/// <param name="aTargetComponent">所引用的 Target Component</param>
/// <param name="aLocalizedText">LocaKey 所对应的文本</param>
privatevoidAssignDialogueText(ComponentaTargetComponent,stringaLocalizedText){
vartext =aTargetComponent asShowDialogueText;
aLocalizedText =talkerName +":"+aLocalizedText;
text.SetShowText(aLocalizedText);
}
注意 , 该函数中的 2 个参数分别对应 Articy Localization Caretaker 的 Target Component 和 LocaKey 所对应的文本 , 每当 Locakey 变化时 , 会自动调用该函数 , 会将之前自己填入的 Target Component 选项中的组件作为 Component 参数引入 , 再通过 as 关键字来转换为目标组件 , 从而调用该组件中的函数 。
参考

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。