コード例 #1
0
    public void AddStatusEffectToContaine(StatusEffect statusEffect)
    {
        GameObject        statusEffectGameObject = ObjectPooler.Instance.SpawnFromPool(ImagePrefab, Vector3.zero, Quaternion.identity, StatusBarContain);
        StatusEffectImage statusEffectImage      = statusEffectGameObject.GetComponent <StatusEffectImage>();

        StatusEffectObject newStatusEffectObject = new StatusEffectObject(statusEffectGameObject, statusEffectImage);

        statusEffectObjects.Add(statusEffect, newStatusEffectObject);

        if (statusEffect is ActiveEffect activeStatusEffect)
        {
            activeStatusEffect.onChangeDurationStatusEffect += ChangeFillingOutline;
        }

        statusEffectImage.Set(statusEffect.StatusEffectData.GetStatusEffectSprite(), statusEffect.StatusEffectData.StatusEffectType);
    }
コード例 #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;
            }
        }
    }