はじめに
初めまして。Neetpiaです。
現在、幻想郷ディフェンダーズというアクションタワーディフェンスをWindows/PlayStation4向けに開発しています。
このゲームですが、マウスとゲームパッド両方の操作に対応しています。
それだけならいいのですが、ゲームパッドが接続している場合、画面の表記が変化します。
そのため、ゲームパッドを識別する必要があります。
ただ、検索しても資料がなかったので、ここで説明します。
認識方法
たったこれだけです。
SlateCoreモジュールを依存に追加する必要があります。
bool IsGamePadConnected()
{
auto genericApplication = FSlateApplication::Get().GetPlatformApplication();
if (genericApplication.Get() != nullptr &&
genericApplication->IsGamepadAttached())
{
return true;
}
return false;
}
BluePrintには公開されていないようなので、C++で記述してBluePrintでも使用できるようにすると楽です。
UFUNCTION(BlueprintCallable)
static bool IsGamePadConnected();
UE4.14で使用できることを確認しました。
今後、少しずつ、幻想郷ディフェンダーズの開発で得たノウハウを公開していこうと思います。