- Home /
Coin Manager
Hi, i'm trying to make a simple coin manager for my 2d game.
i tried and failed making it on the player script as i couldn't add the UI Text to the coin object.
i have tried the script below on an empty gameobject and now its not working at all...
My Player object has a collider and my coin object is a trigger, i dont know if this will be an issue? Can anyone help?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Coin : MonoBehaviour {
public Collider2D Player;
public Collider2D Coins;
public GameObject Coinz;
public Text countText;
//public Text winText;
private int count;
void Start()
{
//winText.text = "";
SetCountText();
count = 0;
}
void Update()
{
CoinManager();
}
void CoinManager()
{
if (Player.IsTouching(Coins))
{
Destroy(Coinz);
count = count + 1;
SetCountText();
}
}
void SetCountText()
{
countText.text = "Count: " + count.ToString();
}
}
But what doesn't work? You didn't even say what you want to achieve. This code looks like a valid code, how exactly do you use it?
Also IsTouching is a physics method so it should be called from FixedUpdate
Answer by Casiell · Oct 10, 2018 at 09:43 PM
Ok, I think I get what you are trying to do, but I think you designed it backwards.
Have a CoinManager script that keeps count of coins collected and manages the UI text.
Have a separate script for your coins that has OnCollisionEnter2D method and a reference to the CoinManager. (the reference can be a static instance of CoinManager) When you detect collision check if it's the player object your coin collided with and then call AddCoin method on your CoinManager and destroy the coin.
Checking each frame if colliders are touching is kind of a weird thing to do, especially in this case
Answer by Tazza08 · Oct 10, 2018 at 09:34 PM
Hi, sorry,
I have this script sat on an empty game object.
When I run the game, the rest is playing and works fine an the UI object does show 0.
But when the player hits the object none of the functions work, so it doesn't destroy the coins object, or add 1 to the UI.
And yes it should be in fixed update ins$$anonymous$$d, could that be my issue?
Your answer
Follow this Question
Related Questions
Why does the money counter resets when I pull different objects trough the trigger? 1 Answer
When using unet to spawn players, the player object is invisible, but colliders present. Help 0 Answers
Click/touch object to enable/disable buttons inside Canvas 1 Answer
How do I get my object to trigger a UI screen when it touches another object? 1 Answer
Unity Trigger 2D not working 0 Answers