Apply Damageで相手にダメージを与える際に、追加効果を変数としてダメージに乗せて与えたいのですがどうすれば良いでしょうか?例えばデバフの乗数や、アーマーを無視する割合の数値などです。最終的なダメージ計算は被ダメージ側で行うとして、その処理に必要な数値だけを送りたいです。
DamageTypeを使うのはどうでしょうか?
DamageTypeにはほかのActorなどのように変数を設定でき、ApplyDamage時にその値を渡すことが可能です
DamageTypeクラス↓
これを使えば任意の値を子クラスで変更することで
「防御無視するフラグ」や「特定の状態異常を付与する」といった情報を付与できます。
参考動画もどうぞ。
回答ありがとうございます。DamageTypeについては色々と試したのですが、DamageType内の変数に値を動的に割り当てる方法が見つかりません(変数は読み取り専用だと言われます)。子クラスは与える変数毎に個別に用意しなければならないのでしょうか?
できれば一つのDamageTypeクラスで値をやり取りしたいのですが、可能でしょうか?
質問からやや想定はできていましたが、シームレスに値を変えなければならない条件であれば
余り推奨できる方法ではないですが、任意のデータを持たせたActorを作成し
DamageCauserに渡す方法があります。
ただ、DamageCauserは本来ダメージを与えたキャラクターを入れるものなので
使い方としてはよろしくありませんが。
もしやるのであれば、そのActorにダメージ計算などのダメージ処理を任せるのもいいかもしれないですね。
上手く機能しそうです。本当に助かりました。