예제 #1
0
    public void UpdateView(StatusEffectRef statusEffectRef)
    {
        view.SetActive(true);
        icon.gameObject.SetActive(true);
        fillImage.gameObject.SetActive(true);

        icon.sprite = statusEffectRef.Effect.Icon;

        float startTime   = statusEffectRef.DurationTimer;
        float currentTime = Time.time - startTime;

        fillImage.fillAmount = currentTime / Mathf.Max(statusEffectRef.Effect.Duration, 1f);
    }
예제 #2
0
    public void AddStatusEffect(StatusEffect statusEffect)
    {
        StatusEffectRef foundEffect = statusEffects.Find((effectRef) => { return(effectRef.Effect.IsEqual(statusEffect)); });

        if (foundEffect == null)
        {
            StatusEffectRef effectRef = new StatusEffectRef(statusEffect);
            if (effectRef.CanEffect(self))
            {
                effectRef.Enter(self);
                statusEffects.Add(effectRef);
                self.OnUpdateStatusEffects(new StatusEffectRefList(statusEffects));

                StatusEffectObject effectObject = Instantiate(statusEffect.EffectObject, statusEffectSpawnHolder.position, statusEffectSpawnHolder.rotation, statusEffectSpawnHolder);
                effectRef.EffectObject = effectObject;
            }
        }
    }