サブタイトル: 先にカスタムイベントを作ると「OnDestroyedにイベントをバインド」ノードと接続できない?そんなことはない!
こんにちは、UE4を勉強中の初心者です。間違い等のご指摘はコメントでお願いいたします。
Unreal Engine 4 で極めるゲーム開発 | ボーンデジタルを読んでいたところChapter18で少し詰まったところがありましたのでその箇所の解決策のメモといった感じです。
目次
- すでにあるカスタムイベントに「OnDestroyedにイベントをバインド」ノードを繋ぎたい!
- 他の記事でも取り上げられてる解決法「「OnDestroyedにイベントをバインド」ノードからカスタムイベントを生成する」
- 欲しかった解決法「ピンを調整する」
すでにあるカスタムイベントに「OnDestroyedにイベントをバインド」ノードを繋ぎたい!
カスタムイベントを作った後にそれを「OnDestroyedにイベントをバインド」ノードとつなげようとしたところ、「デリゲートはデリゲート(リファレンス渡し)と互換性がありません。」という表示がでてちゃんとつなげることができませんでした。
そこで検索してみると、どうやら「OnDestroyedにイベントをバインド」ノードからカスタムイベントを作らないといけない!と書いている記事がいくつかトップにヒットしました。
しかし、それではとても不便だよなぁと思いながらポチポチしているとなんかちゃんと繋がるやり方を発見したのでそれを本記事にメモとして残そうと思っています。(発見したというか理解している人からすれば当たり前なことだとおもいます。)
— pollenJP(@'ω'@) (@polleninjp) 2019年7月1日
「デリゲートはデリゲート(リファレンス渡し)と互換性がありません。」と表示される動画(なぜかカスタムイベントを生成した直後は繋がるが一度切ると次は繋がらなくなる)
YouTubeリンクはこちら(UE4 「デリゲートはデリゲート(リファレンス渡し)と互換性がありません。」 - Unreal Engine
)
※YouTubeの仕様で解像度が自動的に最適化(落と)されているかもしれないので、そのときは手動で解像度をを上げてください。
他の記事でも取り上げられてる解決法「「OnDestroyedにイベントをバインド」ノードからカスタムイベントを生成する」
UE4 「OnDestroyed」のノードからカスタムイベントを作成 - Unreal Engine - YouTubehttps://t.co/vvrPd1twb4
— pollenJP(@'ω'@) (@polleninjp) 2019年7月1日
動画
簡単に言えば「OnDestroyedにイベントをバインド」ノードのピンから伸ばしてカスタムイベントを追加する。
参考記事
- 【UE4】OnDestroyedなどを、カスタムイベントにデリゲートする - SAT04 CREATIVE SPACE
- Can't get Bind Event to OnDestroyed to work - UE4 AnswerHub
欲しかった解決法「ピンを調整する」
結論
先に結論から話すと 「オブジェクトタイプ」の「Actor」としてピンを追加 すればいいです。(以下の動画参照)
カスタムイベントと「OnDestroyedにイベントをバインド」ノードとを接続 - YouTubehttps://t.co/SFRvR5DWnJ
— pollenJP(@'ω'@) (@polleninjp) 2019年7月1日
解説
そもそもカスタムイベントと繋ごうとしたときに出てきた「デリゲートはデリゲート(リファレンス渡し)と互換性がありません。」のエラーメッセージの意味は何なのかを理解すればすぐに解決します。
こちらの記事( デリゲートとイベントディスパッチャーの仕組み - 妹でもわかるUnrealEngine4)を見れば理解してもらえると思うのですが、簡単に言えば、 「OnDestroyedにイベントをバインド」ノードが期待しているカスタムイベントの形(型)と、いま繋ごうとしているカスタムイベントの形とが異なっている ということを意味するエラーなようです。
これを踏まえると、先に作成したカスタムイベントの形を期待されている形にしてやればいいということがわかります。
では、期待されている形とは何か?ここで上で紹介した 他の記事でも取り上げられてる解決法 で作ったカスタムイベントを見てもらうとわかるのですが、カスタムイベントに「Destroyed Actor」という名前の「Actor Object Reference」ピンがついています。実はこれが期待されているカスタムイベントの形なのです!
ここまでわかればあとは簡単でピンを追加してやるだけです。(先の動画と下図参照)
以上です。