Hello, I’m quite new to scripting and i need help with a piece of code.
What I’m basically trying to do is that… Lets say I’m cutting a tree in a rpg game. If i move too far away from the tree, i want him to “stop cutting the tree”.
IEnumerator OnMouseDown()
{
float distance = Vector3.Distance(transform.position, pelaaja.position);
GameObject Player = GameObject.Find("Player");
GameMaster gameMaster = Player.GetComponent<GameMaster>();
if(distance <= 1.414214f && gameMaster.gatheringResources == false )
{
float choppingTime = Random.Range(chopMin, chopMax);
print(choppingTime);
gameMaster.gatheringResources = true;
yield return new WaitForSeconds(choppingTime);
Inventory inventory = Player.GetComponent<Inventory>();
inventory.wood += 1;
print("You Just Chopped a log");
gameMaster.gatheringResources = false;
Destroy(gameObject);
}
else
{
print("You are either too far or already choping") ;
}
}
So basically what I’m trying to ask is that if the distance grows larger than 1.414214 while the yield is running, how do i make the rest of the code stop from running and instead print something like “you moved too far”. I hope you can understand my question. If you need more info go ahead and ask. I’m guessing it has something to do with a while loop, I just couldn’t get it to work
oh also if you wonder what “pelaaja” means, its just player in Finnish.