So i have a public float health on one script and i need to call this float from another script. Please help Im lost :C
2 Answers
2you can write a public float function which returns the value and then you can call this function in another script
Have you even bothered to look around?
This question has been asked a million times before.
If your script is monobehaviour:
You can use GetComponent<ScriptName>().yourfloat if the script is on the same object as your other script.
Or find the object first with a tag using GameObject.FindWithTag("yourobject")
and then do .GetComponent<ScriptName>().yourfloat
if your script is not monobehaviour
you will have to make a new instance like
yourscript script = new yourscript();
script.yourfloat
or make your float value static and you can do
yourscript.yourfloat
without making a new instance.
its doing what i want but unty says You are trying to create a MonoBehaviour using the 'new' keyword. This is not allowed. MonoBehaviours can only be added using AddComponent(). Alternatively, your script can inherit from ScriptableObject or no base class at all UnityEngine.MonoBehaviour:.ctor () sfp:.ctor ()
– MaskeowlDo I just do GetComponent<ScriptName>().yourfloat.GetComponent<ScriptName>().yourfloat? With of course placeholders changed.
public float GetHealth() { return health;}
– Kaskorianand if you want to Change it public float SetHealth(float index) {health = index}
– KaskorianThat still doesn't explain how to call it from another script, completely beside the point. Look my answer for a more detailed answer.
– ShadyProductions