How to sort plurious collisions in a single frame?
Hello and Merry Christmas!
I'm at the end of a block breaker game project, and trying to resolve a last "bug". I didn't manage on my own so i come here hoping for some clarity.
In this game, everytime the ball hit plurious blocks before hit again the paddle, a combo multiplier displays for a litle at the block hit position. Everything works as a charm, until the ball hit two blocks in the same frame: if before it hit, the combo multiplier was "x5", then we see the two blocks displaying "x7" at the same time. You can see it in action there:
at the left, we see it working good, and at the right, we see the bug in action.
Is there a way to tweak that by sorting those two collisions happening at the same frame and just randomly tell to one of those to display the score multiplier -1 ?
in case it can help, i synthesised the essential of the script used here: First, the block and its script:
[SerializeField] GameObject comboPrefab;
private Transform canvas;
private GameSession gameSession_;
private void Start()
{
Transform canvas = GameObject.FindGameObjectWithTag("Canvas").transform;
gameSession_.FindObjectOfType<GameSession>();
}
private void OnCollisionEnter2D(Collision2D collision)
{
if (tag == "Breakable") { ShowCombo(); }
else if (tag == "Paddle") { gameSession.comboScore = 0; }
}
private void ShowCombo()
{
gameSession.comboScore++;
if (gameSession.comboScore >= 2)
{
RectTransform comboClone = Instantiate
(comboPrefab, canvas, false).GetComponent<RectTransform>();
comboClone.anchorMax = Camera.main.WorldToViewportPoint(transform.position);
comboClone.anchorMin = comboClone.anchorMax;
}
}
And then the combo displayer that instantiate, showing us the combo multiplier:
void Start()
{
GameSession gameSession_ = FindObjectOfType<GameSession>();
TextMeshProUGUI text_ = GetComponent<TextMeshProUGUI>();
text_.text = ("X ") + gameSession_.comboScore.ToString();
}
Your answer
Follow this Question
Related Questions
Manage multiple projects and share scripts 0 Answers
How to check if player is stuck inside of ground 0 Answers
Have one object apply a force to another. 0 Answers
Unsavory collisions with terrain? 0 Answers