前提・実現したいこと
UnityをC#6.0にて作成しております。
画面上に表示しているHPがダメージで変化したときや、カメラがズームアップした(bool CameraZoom = true)時に自動で他UIを消すなどの処理を行いたいと思っています。
Hp減少を例にしますと、大本はダメージによる数値変化、それに付随してゲージ減少や画面揺れなどがあります。
スクリプトも別々に作成しており
int Hp{set _hp = value ; 他の処理();他の処理();他の処理()...!}
とすると長くなり、かつ柔軟性にかけるような気がしています。
なので、現状は下記のようなソースで意図的にループを作り、その中でコルーチンウェイトしてる形になります。
ただ、なんとなく、スマートではないといいますか、なにかちゃんとした手段がないのかなと思い、質問させていただきました。
他にもこんな命令使えばいいよ等ありましたらよろしくお願いいたします。
該当のソースコード
//メインなクラス======================================================= public class PlayerStatus: MonoBehaviour { public Static int Hp = 200; } //修飾なクラス========================================================= public class Update_SUUJI: MonoBehaviour { private int PstHp; ///UpDateではなくコルーチンで無限ループを作っています----- private IEnumerator Main() { while (true) { yield return new waitUntil(()=> PlayerStatus.Hp!=PstHp); PstHp = PlayerStatus.Hp; 数値変更処理(); } } ///----------------------------------------------------- } //修飾なクラス========================================================= public class Update_GAMEN_SHINDOU: MonoBehaviour { private int PstHp; ///UpDateではなくコルーチンで無限ループを作っています----- private IEnumerator Main() { while (true) { yield return new waitUntil(()=> PlayerStatus.Hp!=PstHp); PstHp = PlayerStatus.Hp; 振動処理(); } } ///----------------------------------------------------- }
補足情報(FW/ツールのバージョンなど)
なんと表現してよいのかわかりませんが、元のスクリプト(PlayerStatus)の中身を変更することなく、勝手に乗っかかる感じで見た目の変更ができていければと思っています。
どうぞご教示よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/12 10:20