- Home /
Problem with adding listeners on spawm
Hi,
I'm working on a block breaker type game for a course I'm taking. I'm using events and listeners to implement different types of effects on the ball / paddle.
For the ball, there is a SpeedUp effect when a certain block is hit, and for that, the ball listens to an event that invokes when the block is hit by the ball. so far so good.
From the invoker:
if (hitBlock == PickupEffect.Speedup)
{
speedupEffectActivated.Invoke(effectDuration, speedupFactor);
base.OnCollisionEnter2D(collision);
}
This invokes 2 listeners:
Ball class:
private void SpeedUpEffectActivate(float duration, float factor)
{
Debug.Log("Inside Speedup Activator");
isSpeedup = true;
if (speedupTimer.Running)
{
speedupTimer.Duration = duration;
}
else
{
speedupTimer.Run();
rb2d.velocity *= factor;
}
}
Monitor class:
private void IsEffectRunning(float duration, float factor)
{
Debug.Log("Inside Monitor");
isSpeedup = true;
speedFactor = factor;
speedupTimer.Duration = duration;
speedupTimer.Run();
}
The problem happens when I instantiate a new ball (random timing) that needs to have the SpeedUp effect (if triggered by the previous ball) applied to it. For that, I created the Monitor class that listens to the same SpeedUp event and then exposes the needed values so the new ball can use it.
The first ball in the game registers both listeners and calls both UnityAction(s) as needed, but then the new ball that gets instantiated only invokes the Monitor listener and completely ignores the listener in its own (Ball) script.
I know the listeners are registered because the first ball invokes both (when it hits the appropriate block), but for some reason from that point on it ignores one of them.
I'm relatively new to events and listeners so I would really appreciate every help.
Thanks in advance!
Your answer
Follow this Question
Related Questions
Why does my code hang when calling a script in a multi-nested event function 0 Answers
Event Manager and Event Listener 3 Answers
Can other scripts use event triggers from event manager? 0 Answers
Where can I find complete list of events? 1 Answer
How to access the persistent listener gameobjects on a button? 1 Answer