UE4 Game Mode と Game Mode Base について(Game Mode、Game Mode Base、Get Game Mode)
こちらですね。
・GameMode、GameInstanceなどの違いについて
http://imoue.hatenablog.com/entry/2016/05/24/223150
GameMode マップ切り替えまで レベルごとに1つ サーバーにだけ存在 プロジェクトのデフォルトとは別にレベルごとの設定も出来る
あまり「Game Mode」の使い方がわかっていないのですが
バージョンが更新され「Game Mode」と「Game Mode Base」というものに分離されたようです。
この更新によって、「Game Mode」の扱いが少し変わったみたいですね。
「Game Mode」と「Game Mode Base」の違いについてはこちらに詳しく書いてありました。
・UE4 Game ModeとGame Mode Baseの違いについて
http://unrealengine.hatenablog.com/entry/2017/01/30/220000
これが扱いとしては一番あれ?ってなるところですね。Get Game Modeで取得できるのはGame Mode Baseクラス
表題の通り、問題は"Get Game Mode"ノードを使った時です。4.13以前はこのノードで"Game Mode"クラスのリファレンスを取得できました。が、4.14からは"Game Mode Base"のリファレンスになっています。
実際こんな感じのことが自分の方でもありました。
@Ginryu_dev これ正に先日ハマったのでブログ修正しようと思ったんですが、RestartGameだと結局 TargetのGame Mode Reference ってのどう作るのかわかんないでいます。https://t.co/lvsFHTqgKf https://t.co/PEC0n3ULIV
— 栗坂こなべ うさぎのフレンズ (@kurisaka_konabe) 2017年5月17日
原因としては今まで「Get Game Mode」が「Game Mode」を返していたのに
今は「Game Mode Base」を返すようになったので、実行できないノードがあったようです。
というわけで、解決法としては「Game Mode」を継承した「Game Mode」クラスを作成し、
継承したクラスにキャストしてから実行する。といったもののようです。
解決。そりゃ動かない。使っていたTPSのGameMode自体がGameModeBaseを継承していた。GameModeを継承したGameModeにGameModeを変えたらRestartGameが上手く行った。何を言っているのかわからねーと思うがポルナレフ。 pic.twitter.com/qDx88XW12c
— 栗坂こなべ うさぎのフレンズ (@kurisaka_konabe) 2017年5月17日
よく使うクラスに存在する「Game Mode Base」ではなく、
「Game Mode」クラスを継承して新しい「Game Mode」クラスを作成しましょう。

そうすると、「Get Game Mode」で取得した「Game Mode」をキャストすることができ、
「Game Mode」を入力に使ったノード(今回は Restart Game ノード)を実行することができます。

「Game Mode」自体まだまだ理解できてないので、徐々に理解していきたいですね。
| UE4 | 16:09 | comments:0 | trackbacks:0 | TOP↑