- Home /
Set a Bool Through Function
Hello everyone, i got a little problem. I'd like to write my codes a little flexible, so I am trying to write a function, which will turn the desired bool variable to desired result after some time. What I mean is :
IEnumerator WaitAndSetBool(float waitTime, bool booleanToSet, bool setTo)
{
yield return new WaitForSeconds(waitTime);
booleanToSet = setTo;
}
I write something like this, and i call it like this :
StartCoroutine(WaitAndSetBool(0.5f, canLerp, false);
What it is supposed to do is, giving the canLerp boolean to WaitAndSetBool function, telling that function to set it to false. But it doesn't work, what am i missing ?
If i change the WaitAndSetBool function like this :
yield return new WaitForSeconds(waitTime);
canLerp = setTo;
it does work. But i don't want this function to be only used for canLerp boolean, i want it to be something general. How can i fix this ? Thanks :)
you can simply just try using Invoke method it has ti$$anonymous$$g you can set for when the method to be executed.
but what i want is actually not about the time or it being coroutine, real deal is i want to set a bool by giving parameters.
Answer by Eric5h5 · Jan 03, 2015 at 01:53 AM
Booleans, like all other primitive types, are passed by value, not reference. In other circumstances you could explicitly pass by reference (use the ref keyword) instead, except that only works with standard functions, not coroutines. A work-around is to create a custom class (since classes are always passed by reference) that contains only a bool, and use your custom BoolClass instead of a standard boolean.
Your answer
Follow this Question
Related Questions
Error : Animator has not been initialized. UnityEngine.Animator:SetBool(String, Boolean) 1 Answer
how to: Set.Active False, then True, then False again? 1 Answer
Trouble setting a bool value between two objects 1 Answer
How to edit a bool value through the variable of a function 2 Answers
Scavenger Hunt List Bools Question 1 Answer