#contents ---- UE4.14.0 - リアルタイムに更新されない。パラメーターが変更された時とかだけテスト結果と表示が更新される。 - Outlinerでアクティブ化しないと表示されない 多分。 プレイヤーから遠いところのコスト表示。本来ならプレイヤーの周囲は0.0(赤)になる筈。歩き回っても更新されない。 &ref(eqs_testing_pawn01.png,,70%); * ゲーム中もリアルタイムに更新されるように [#b5fc60ac] + [[こちら>http://com04.sakura.ne.jp/unreal/wiki/index.php?EQS-%A5%C6%A5%B9%A5%C8%BC%AB%BA%EE]]と同じようにC++のclassを作成 + 親クラスに「EQS Testing Pawn」を指定する。 + そのまま作成を進めてC++ファイルを追加する。Visual Studioで開かれる。 + ヘッダーは下記のように。 UCLASS() class TESTSEQUENCER_API AMyEQSTestingPawn : public AEQSTestingPawn { GENERATED_UCLASS_BODY() public: // BPに公開 UFUNCTION(BlueprintCallable, Category = "Damage") void EQSQuery(); public: }; + ソースコードは下記のように #include "EnvironmentQuery/EQSRenderingComponent.h" AMyEQSTestingPawn::AMyEQSTestingPawn(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { GetEdRenderComp()->bDrawOnlyWhenSelected = false; } void AMyEQSTestingPawn::EQSQuery() { RunEQSQuery(); } + エディターに戻ってCompile. + コンパイルに成功したら、今回作成したクラスを継承したBlueprintを作成する &ref(eqs_testing_pawn02.png,,70%); + EventGraphを開いて、C++で追加したメソッドをTicksでコールする -- Ticksの頻度が高いと更新負荷が高いので注意。 &ref(eqs_testing_pawn03.png,,70%); + 後はワールドに配置すると随時更新される &ref(eqs_testing_pawn04.gif); ** メモ [#q1c44631] AEQSTestingPawn::RunEQSQuery が何かエディットされた時、まだクエリを走らせていない時しか呼ばれないようになってる。 なのでそれを強制的に呼ばせるようにメソッド追加した。 * Outlinerでアクティブ化しなくても常時表示されるようにする [#a23bb312] + リアルタイム更新と同じ方法でc++のクラスを作るまで。 + ソースコードのコンストラクタに下記みたいな感じにする AMyEQSTestingPawn::AMyEQSTestingPawn(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { GetEdRenderComp()->bDrawOnlyWhenSelected = false; } + エディターに戻ってCompile. + これでOutlinerで選択しなくても常時表示されるようになる * おまけ [#a6d2f3d6] 上記2つをやって、ChildActorComponentにくっつけると一緒に動きながら表示できるようになる。 &ref(eqs_testing_pawn05.png,,70%); |