Доступ к нереальным переменным сценария из Kismet - UDK
У меня почти 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 по мере необходимости.
1 ответ
Вам необходимо убедиться, что вы добавили ресурс Font из браузера содержимого в свойствах DrawText и проверьте, действительно ли он размещен на экране (попробуйте смещение 0,0 для центрированного текста). Кроме того, я думаю, что DrawText не работает в UTGAME. - в случае, если это ваш тип игры. Работает в UDKGame. А если у вас включен режим ToggleCinematic, то установите флажок "Отключить HUD".
Сначала проверьте DrawText с обычной строкой...
Попробуйте использовать событие "Возникший игрок" вместо "Уровень загружен", поскольку оно может срабатывать слишком быстро, чтобы игрок еще не был добавлен в игру.