- Home /
When should attributes should reset and how?
Hey!
I am new to Unity. I'm developing a Tamagochi like game that will perform actions based on its needs, that build over time and upon reaching a limit, picks a action to satisfied it. I had this idea of making a consume class that would handle if it's going to eat or drink, after that it calls my Move class to get to the feeder bowl or to the drinking fountain.
if (Move.ToTaggedObject(tag) && !hasConsumed)
{
// Consume
}
This code is ran every Update() cycle so tamagochi wouldn't just touch the thing and consume it all at once. However I wanted to do the actual moving in the FixedUpdated() method. so I did it so if Move has a target, and it hasn't arrived yet, it would run the actual method to walk towards the target, while ToTaggedObject just sets up this conditions:
public bool ToTaggedObject(string tag)
{
if (target == null)
{
target = FindNearest(tag);
}
return isArrived;
}
isArrived is hooked it up to an OnCollisionStayed inside Move Script, and whenever it collided, and continue to do so, to target it will be true.
It worked, at least once, 'cuz I don't know when Move should reset it's attributes for when it's called again. and won't move uppon calling it again for the next target. Whenever I tried reset them Tamagochi tries colliding to the target every cycle.
I could reset it inside Consume, when it's done consuming, reset Move's target, isArrived and everything. that should work just fine, i guess. However I wanted an independent system, so I wouldn't have to care to, every time some class uses move, reset move myself. Also it feels a bit strange to me to have other classes to be responsible of move's attributes. Am I approaching this in a right way? How, and specially, when should move reset it's attributes?
Your answer
Follow this Question
Related Questions
Melee & range ai 0 Answers
How to move an airplane in the Z axis? 0 Answers
Getting an error while trying to get scene name 1 Answer
How to make a collision script 1 Answer
GetAxis to GetTouch 0 Answers