敵AIを作っているのですが、AIの攻撃時にビヘイビアツリーのタスク”DoAttack”にイベントディスパッチャーを呼び出そうとしています。
そこで、バインドするEnemyCharacter(親クラスCharacter)でDoAttack(ObjectReference)型の変数doAttackを作成しました。
その後一度コンパイルし、デフォルト値を設定しようとしましたが、候補に何もない状態です。
どこの設定を間違えているのでしょうか?
もしわかりましたら教えていただけると嬉しいです。
敵AIを作っているのですが、AIの攻撃時にビヘイビアツリーのタスク”DoAttack”にイベントディスパッチャーを呼び出そうとしています。
そこで、バインドするEnemyCharacter(親クラスCharacter)でDoAttack(ObjectReference)型の変数doAttackを作成しました。
その後一度コンパイルし、デフォルト値を設定しようとしましたが、候補に何もない状態です。
どこの設定を間違えているのでしょうか?
もしわかりましたら教えていただけると嬉しいです。
BTTask Blueprint Baseは設定できないようですね。
例えば、変数の型をObjectにしてそれをDoAttackにキャストして使用するというのはどうでしょうか?
返信ありがとうございます。
とりあえず、キャストして使うことにします。
ActorなどのObject型継承の変数はデフォルト値を設定できないのが仕様となっております。
ObjectReferenceと書かれているものは、実体もたず、参照情報のみを設定することになるので、デフォルト値を設定したい場合は、『インスタンス編集可能』にチェックし、一度レベルに配置した状態でアウトライナーやビューポートで選択してから『詳細』の中から変数をクリックすることでデフォルト値を設定できます。
今回のようにタスクの継承クラスではレベルに直接配置することはできませんので、デフォルト値を設定せずに、外部から受け取った情報をセットして使うのが本来の使い方となります。
そうだったのですね、わかりました。
返信ありがとうございます。
Mokutsuno様
こちらの投稿については、既に問題が解決済のように見受けられますが、数日間の間に投稿が無かったことから追跡目的で解決済みとしました。問題が解決しましたらAnswerhub クイックスタートヘルプ日本語訳に従い、質問票を更新していただけますと幸いです。
よろしくお願いします。