Hello, I coded a booster for my platform game the other day. Here is my code, but there is a problem;
[code]
public class PowerUpJump : MonoBehaviour
{
public int jumpPlus;
public int duration;
public PlayerController playerController;
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.CompareTag("Player"))
{
playerController.jumpForce += jumpPlus;
gameObject.SetActive(false);
Invoke("ResetEffect",duration);
Invoke("CallBackPowerUp", duration);
}
}
private void ResetEffect()
{
playerController.jumpForce -= jumpPlus;
}
private void CallBackPowerUp()
{
gameObject.SetActive(true);
}
}
This does not prevent the booster from working, but when 2 of the boosters come in succession, the overlapping power ups make my character jump higher because of the code I wrote. In other words, the effect of the 1st power up continues even when the 2nd one is active. When I get the 2nd power up, I want the effect of the old one to pass. Can you help? The callbak function was written there to respawn after the power up effect wears off. It has nothing to do with it.
↧