Troubles with FindObjectOfType

Viewed 75

I'm trying to make a simple damage boost I have 2 scripts, one attached to the projectile and one to the booster

Projectile:

public class DamageDealer : MonoBehaviour
{
    [SerializeField] public int damage = 25;

    public int GetDamage() 
    {
        return damage;
    }

    public void Hit()
    {
        Destroy(gameObject);
    }

    public void IncreaseDamage(int value)
    {
        damage += value;
        Mathf.Clamp(damage, 0, int.MaxValue);
    }
}

Booster:

public class DamageUp : MonoBehaviour
{
    int damageBoost = 50;
    DamageDealer damageDealer;

    void Awake()
    {
        damageDealer = FindObjectOfType<DamageDealer>();

        Debug.Log(damageDealer); // this returns as null
    }

    private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag == "Player")
        {
            damageDealer.IncreaseDamage(damageBoost);
        }
    }
}

As you can see in the Booster I've already identified what's returning as null, but I'm quite new to unity and C# so I don't know what I'm doing wrong

Some more info the Projectile is a prefab while the Booster is not (yet) scripts are attached and enabled, objects are enabled too.

Hit() and GetDamage() are for another script I have no issue with.

Thanks in advance.

1 Answers
Related