0

コンパイルすると、次のエラーが発生します。

C:\ UDK \ UDK-2010-03 \ Development \ Src \ FixIt \ Classes \ ZInteraction.uc(41):エラー、クラス「GameUISceneClient」の認識されないメンバー「OpenMenu」

41行目は次のとおりです。

GetSceneClient()。OpenMenu( "ZInterface.ZNLGWindow");

しかし、OpenMenuを検索すると、UDKのGameUISceneClient.ucで実際に定義されていることがわかります。

1507行目:exec function OpenMenu(string MenuPath、optional int PlayerIndex = INDEX_NONE)

私はすべてが正しいようです。では、何が問題なのですか?OpenMenu関数が見つからないのはなぜですか?

4

2 に答える 2

0

Legacy:Exec Functionのwikiページから:

Exec関数は、プレーヤーまたはユーザーがコンソールに名前を入力することで実行できる関数です。基本的に、これらはUnrealScriptコードで新しいコンソールコマンドを定義する方法を提供します。

さて、OpenMenuはコンソールコマンドに変換されました。素晴らしい。それでも、コードで実行するにはどうすればよいですか?ページには書かれていません!

さらに検索すると、この奇妙なドキュメントページが明らかになりました。このページには、次の答えが含まれています。

次に、クラスConsole内に「boolConsoleCommand(coerce strings)」という関数もあります。コードからexec'd関数'myFunction'を呼び出すには、次のように入力します。

* bool isFunctionThere; //optional
  isFunctionThere = ConsoleCommand("myFunction myArgument");

だから、私は自分の行を次のように置き換えました:

GetSceneClient().ConsoleCommand("OpenMenu ZInterface.ZNLGWindow");

これにより、数分前に他の質問と回答で取り上げた別のエラーが発生します。しかし、それだけです!

于 2010-03-15T23:26:08.770 に答える
0

これが意図したものかどうかはわかりませんが、UIエディターで作成されたアーキタイプに基づいてUISceneを作成しようとしている場合は、次のようにします。

UIScene openedScene;
UIScene mySceneArchetype;

mySceneArchetype = UIScene'Package.Scene';
GameSceneClient = class'UIRoot'.static.GetSceneClient();

//Open the Scene
if( GameSceneClient != none && MySceneArchetype != none )
    {
        GameSceneClient.OpenScene(mySceneArchetype,LocalPlayer(PlayerOwner.Player), openedScene);
    }
于 2010-05-04T20:23:22.340 に答える