I have dealt with this problem very often.
How to get variables from other Class in Unity? For example I’ve got one Class with public Variables and i want to get the same value of the Variable in other Class.
For Example it could be a Class which adds points to overall Score. But in other Class i show it using Unity UI System as Text.
Here is the Class with Variable which is calling the Function in other Class.
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Score : MonoBehaviour { public GameObject scoreScript; // Use this for initialization public void OnTriggerEnter2D(Collider2D node) { if (node.gameObject.tag == "Apple") { Destroy (node.gameObject); ScoreMenager scorePointsScript = scoreScript.GetComponent<ScoreMenager>(); scorePointsScript.AddScore (); } } }
And here is the Class which contains the Function where the variable points gets incremented.
using System.Collections.Generic; using UnityEngine.UI; using UnityEngine; public class ScoreMenager : MonoBehaviour { public int points; Text text; void Awake () { text = GetComponent<Text> (); } // Use this for initialization void Start () { } public void AddScore() { points++; } // Update is called once per frame void Update () { text.text = "Score: " + points; } }
Don’t Forget to Add The “Score” Script to your character! And the same for ScoreMenager, which needs to be added to the UI Element.
And also don’t forget to Create the Text as GUI
Also important is the fact, that you need to change the “Tag” of your element which will be destroyed. After it increases the Score Points value.
Component > UI > Text
Other tutorials in the series:
How to make the objects fall in Unity
Making Objects Fall Random On The Screen in Unity