private void Start() { hpBar.MaxValue = MaxHp; GetHP() .Subscribe(hp => hpBar.Play(hp)) .AddTo(gameObject); }
private void Start() { body.OnDamage() .Where(_ => !IsStan) .Subscribe(damage => { bodyHp -= damage; // Dead判定 if (bodyHp <= 0) { Stan(); } }); brain.OnDamage() .Where(_ => IsStan) .Subscribe(damage => { brainHp.Value -= damage; if (brainHp.Value <= 0) { Dead(); } }); Observable.Interval(TimeSpan.FromSeconds(10)) .Subscribe(_ => { if (Random.Range(0, 100) < 70) { AttackLow(); } else { AttackHigh(); } }) .AddTo(gameObject); hpBar.MaxValue = brainHp.Value; brainHp .Subscribe(hp => hpBar.Play(hp)) .AddTo(gameObject); }