0

我对 UDK 的脚本编写经验几乎为零,但我认为我正在尝试做的事情相当简单。我想在脚本中定义一个变量,然后我可以在 Kismet 中访问它。

这是我到目前为止所拥有的:

MyGameInfo.uc 看起来像这样

class MyGameInfo extends UDKGame;

defaultproperties{  
    PlayerControllerClass=class'MyGameInfo.MyPlayerController'
}


event InitGame( string Options, out string Error )
{
    // Call the parent(i.e. GameInfo) InitGame event version and pass the parameters
    super.InitGame( Options, Error );

    // Unreal Engine 3
    `log( "Hello, world!" );
}

MyPlayerController.uc 看起来像:

class MyPlayerController extends UDKPlayerController;

var() localized string LangText;

defaultproperties{
   LangText="asdfasdf";
}

然后,在 Kismet 中,我使用 Get Property,以玩家 0 作为目标,尝试获取属性 LangText。我将字符串输出用于绘制文本(是的,我确保设置了字体)。

它看起来像这样: Kismet 截图

我觉得我真的很接近,但绘制文本中没有显示任何文本。有任何想法吗?

另外,我为什么要这样做?出于本地化目的。据我所知,在 Kismet 中使用本地化字符串绘制文本并不容易。我的想法只是为每段对话创建一个本地化字符串,然后根据需要从 Kismet 调用这些字符串。

4

1 回答 1

0

您需要确保从内容浏览器的 DrawText 属性中添加了字体资源,并检查它是否实际放置在屏幕上(尝试偏移 0,0 以获取居中文本)另外,我认为 DrawText 在 UTGAME 中不起作用- 如果那是你的游戏类型。它适用于 UDKGame。如果您启用了 ToggleCinematic 模式,请检查禁用 HUD 未打开。

首先使用常规字符串测试 DrawText ...

尝试使用 Player Spawned 事件而不是 Level Loaded,因为它可能触发得太快而无法将玩家添加到游戏中。

于 2014-04-30T14:23:08.900 回答