我对UDK的编写经验几乎为0,但我认为我想要做的事情相当简单。我想在脚本中定义一个变量,然后我可以在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。我有字符串输出去绘制文本(是的,我确保设置字体)。
看起来像这样:
我觉得我非常接近,但是在Draw Text中没有显示任何文字。有什么想法吗?
另外,为什么我要这样做呢?用于本地化目的。据我所知,在Kismet中没有简单的方法可以使用本地化的字符串来绘制文本。我的想法是为每个对话框创建一个本地化字符串,然后根据需要从Kismet调用这些字符串。
答案 0 :(得分:0)
您需要确保在DrawText属性中从内容浏览器添加了Font资源,并检查它是否实际放置在屏幕上(对于居中文本,请尝试偏移0,0) 此外,我认为DrawText在UTGAME中不起作用 - 如果这是你的游戏类型。它适用于UDKGame。 如果您启用了ToggleCinematic模式,则选中“禁用HUD未启用”。
首先用常规字符串测试DrawText ...
尝试使用Player Spawned事件而不是Level Loaded,因为它可能会在游戏中添加太快而无法在游戏中添加。