UE4 「デリゲートはデリゲート（リファレンス渡し）と互換性がありません。」？ピンを調整してカスタムイベントと「OnDestroyedにイベントをバインド」ノードをちゃんと結合


サブタイトル： 先にカスタムイベントを作ると「OnDestroyedにイベントをバインド」ノードと接続できない？そんなことはない！

こんにちは、UE4を勉強中の初心者です。間違い等のご指摘はコメントでお願いいたします。
[Unreal Engine 4 で極めるゲーム開発 | ボーンデジタル](https://www.borndigital.co.jp/book/6359.html)を読んでいたところChapter18で少し詰まったところがありましたのでその箇所の解決策のメモといった感じです。

---


## 目次

- [すでにあるカスタムイベントに「OnDestroyedにイベントをバインド」ノードを繋ぎたい！](#すでにあるカスタムイベントにondestroyedにイベントをバインドノードを繋ぎたい)
- [他の記事でも取り上げられてる解決法「「OnDestroyedにイベントをバインド」ノードからカスタムイベントを生成する」](#他の記事でも取り上げられてる解決法ondestroyedにイベントをバインドノードからカスタムイベントを生成する)
- [欲しかった解決法「ピンを調整する」](#欲しかった解決法ピンを調整する)

---


## すでにあるカスタムイベントに「OnDestroyedにイベントをバインド」ノードを繋ぎたい！

　カスタムイベントを作った後にそれを「OnDestroyedにイベントをバインド」ノードとつなげようとしたところ、「デリゲートはデリゲート（リファレンス渡し）と互換性がありません。」という表示がでてちゃんとつなげることができませんでした。
　そこで検索してみると、どうやら「OnDestroyedにイベントをバインド」ノードからカスタムイベントを作らないといけない！と書いている記事がいくつかトップにヒットしました。
　しかし、それではとても不便だよなぁと思いながらポチポチしているとなんかちゃんと繋がるやり方を発見したのでそれを本記事にメモとして残そうと思っています。（発見したというか理解している人からすれば当たり前なことだとおもいます。）

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">記事用<a href="https://t.co/I4dfqXKEov">https://t.co/I4dfqXKEov</a></p>&mdash; pollenJP(@&#39;ω&#39;@) (@polleninjp) <a href="https://twitter.com/polleninjp/status/1145676741949579264?ref_src=twsrc%5Etfw">2019年7月1日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
「デリゲートはデリゲート（リファレンス渡し）と互換性がありません。」と表示される動画（なぜかカスタムイベントを生成した直後は繋がるが一度切ると次は繋がらなくなる）

YouTubeリンクはこちら（[UE4 「デリゲートはデリゲート（リファレンス渡し）と互換性がありません。」 - Unreal Engine
](https://youtu.be/ZeSR8A4-CJ0)）
※YouTubeの仕様で解像度が自動的に最適化（落と）されているかもしれないので、そのときは手動で解像度をを上げてください。

---


## 他の記事でも取り上げられてる解決法「「OnDestroyedにイベントをバインド」ノードからカスタムイベントを生成する」

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">UE4 「OnDestroyed」のノードからカスタムイベントを作成 - Unreal Engine - YouTube<a href="https://t.co/vvrPd1twb4">https://t.co/vvrPd1twb4</a></p>&mdash; pollenJP(@&#39;ω&#39;@) (@polleninjp) <a href="https://twitter.com/polleninjp/status/1145692321662435328?ref_src=twsrc%5Etfw">2019年7月1日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
動画

　簡単に言えば「OnDestroyedにイベントをバインド」ノードのピンから伸ばしてカスタムイベントを追加する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/195174/606709f0-de21-8d34-4531-d8311ac4298a.png)

参考記事

- [【UE4】OnDestroyedなどを、カスタムイベントにデリゲートする - SAT04 CREATIVE SPACE](https://satcreative.hatenablog.com/entry/2016/12/04/225549)
- [Can't get Bind Event to OnDestroyed to work - UE4 AnswerHub](https://answers.unrealengine.com/questions/499736/cant-get-bind-event-to-ondestroyed-to-work.html)


---


## 欲しかった解決法「ピンを調整する」


### 結論

　先に結論から話すと __「オブジェクトタイプ」の「Actor」としてピンを追加__ すればいいです。（以下の動画参照）

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">カスタムイベントと「OnDestroyedにイベントをバインド」ノードとを接続 - YouTube<a href="https://t.co/SFRvR5DWnJ">https://t.co/SFRvR5DWnJ</a></p>&mdash; pollenJP(@&#39;ω&#39;@) (@polleninjp) <a href="https://twitter.com/polleninjp/status/1145692161440043008?ref_src=twsrc%5Etfw">2019年7月1日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


### 解説

　そもそもカスタムイベントと繋ごうとしたときに出てきた「デリゲートはデリゲート（リファレンス渡し）と互換性がありません。」のエラーメッセージの意味は何なのかを理解すればすぐに解決します。
　こちらの記事（ [デリゲートとイベントディスパッチャーの仕組み - 妹でもわかるUnrealEngine4](http://imoue.hatenablog.com/entry/2016/10/23/231853)）を見れば理解してもらえると思うのですが、簡単に言えば、 __「OnDestroyedにイベントをバインド」ノードが期待しているカスタムイベントの形（型）と、いま繋ごうとしているカスタムイベントの形とが異なっている__ ということを意味するエラーなようです。
　これを踏まえると、先に作成したカスタムイベントの形を期待されている形にしてやればいいということがわかります。

　では、期待されている形とは何か？ここで上で紹介した [他の記事でも取り上げられてる解決法](#他の記事でも取り上げられてる解決法「「OnDestroyedにイベントをバインド」ノードからカスタムイベントを生成する」
) で作ったカスタムイベントを見てもらうとわかるのですが、カスタムイベントに「Destroyed Actor」という名前の「Actor Object Reference」ピンがついています。実はこれが期待されているカスタムイベントの形なのです！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/195174/9ef7f3eb-64e1-1798-487d-818f2ca38ffd.png)


　ここまでわかればあとは簡単でピンを追加してやるだけです。（先の動画と下図参照）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/195174/f31717d0-36ff-6154-cc8c-3bc317cd4a71.png)

---

以上です。