I’m working on a 3D game where you can earn money by selling items. I made a script that shows your current money. The script should be on thousands of items, but it doesn’t work correctly if I drag the UI element into the (prefab) inspector.
It works if I give the script to all items in the scene individually, but it has to be in the prefab. I can add the Text Mesh Pro UGUI if it is also a prefab itself, but then the system will not work properly. So I want to add the Text Mesh Pro element without being a prefab itself, how can I do it best?
Where to place the element:
The script I want to assign to the prefab (I don’t know if you can do anything with this):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class Valuable : MonoBehaviour
{
public TextMeshProUGUI countText;
public static int count;
private Rigidbody rb;
// Count = Money
void Start()
{
rb = GetComponent<Rigidbody>();
count = 0;
}
void SetCountText()
{
countText.text = "Money: $" + count.ToString();
Debug.Log("+500");
}
// When something goes trough the trigger, it will add money and destroy the object
private void OnTriggerEnter(Collider other)
{
if(other.gameObject.CompareTag("SellObject"))
{
other.gameObject.SetActive(true);
count = count + 500;
SetCountText();
Destroy(gameObject);
}
}
}