質問: アクションRPGを作っています 敵味方の状態異常を実装しようと思い とりあえず状態異常の管理にListを使いました (5回毒を与えたら5個の毒がバラバラにダメージを与えそれぞれの効果時間で各自消滅する 各々が完全に独立しているタイプです) しかし複数同じ敵(=同じプレハブ=同じスクリプト)がいる場合 Listを共有してしまうためうまくいきません 状態異常のcrassの中身は今の所 効果回数と 効果間隔と 効果数値と 効果種類です。 5回まで 1秒ごとに 10ダメージの 毒 といった感じです 質問です Listのstatic属性は外せますか? 全く別のスマートな実装方法はありますか? 今考えている代替案は Listを使わず状態異常のコンポーネントを作っておき 状態異常を与えるたびにaddcomponentするというものですが これはスマートですか? 回答お待ちしています よろしくお願いします
回答: 逆になぜstaticをつけているのかがわかりません。 同じprefabだろうが同じscriptだろうがそれぞれの敵毎に(staticをつけずに)Listを持たせればいいだけのように思えますが...? もしかして単に特定の敵へのアクセス方法がわからずにstaticアクセスにしてしまっている的な事でしょうか? 対象のオブジェクト(GameObject)が特定できているのならそこから欲しいコンポーネント(スクリプト)をGetComponent等でゲットしてやれば後はそれにアクセスするだけですが... prefabが同じでもそれを元にそれぞれ別のオブジェクトとして配置されているので別物ですしもちろん同じスクリプトでもコンポーネントとしてアタッチしているオブジェクトが別なのでスクリプトとしてもそれぞれ別物として個別に機能していますからそもそも今回のケースでstaticをつける事が誤りな状況のように読めます。