Hi. Looks like you are accumulating multiple coroutines executions. Your while loop may never complete. Even if it seems like your object stopped but it is deceptive since it just reached destination. But loop goes on. Even next time you set brainMove = false it will be right away set to true by another coroutine execution and both loops continue. The more double taps - the more indefinite loops. You need either stop a previous coroutine (performance problem here since you would have to invoke it by name) or add another condition for loop termination like:
if (brainTransform.position == wrldInputPos)
break;
And you can use brainMove variable to stop a second doubletap if the first one is still executing. Which is a second condition. You can do that by checking brainMove == true before calling the coroutine.
Always taking the actual position of the brainTransform means the distance gets smaller and smaller. You need to preserve the start position und use that one for the interpolation towards the goal.
On a related note, this type of movement is very static, very linear, there is no “bounce” to it. A constant speed while moving, is not very “sexy”. Is there any tips anyone might have to create an easing effect? Another method? I am doing my best to stay away from Tweens.
I just added in the code suggested, by Dantus, but now, the transform, does not really move at all. Instead, he does move, but very minutely, and jerks back to start pos. He does this infinitely.