I would like to move an object immediately to the maximum distance it can be from the player. If the mouse is clicked outside these bounds (the projectile spawns at the mouse position), I want the projectile spawned to immediately update it’s position to the maximum radius around the player.
Here is a video demonstrating my problem. Instead of immediately appearing at the max radius, it slowly glides there.
video demonstration
Here is the code responsible.
void Update()
{
float distanceToPlayer = Vector3.Distance(GameObject.Find("Player").transform.position, transform.position);
if (distanceToPlayer > maxDrawbladeRange && distanceCorrected == false)
{
transform.Translate(-0.1f, 0, 0);
}
if (distanceToPlayer < maxDrawbladeRange)
{
distanceCorrected = true;
}
if (!Input.GetMouseButton(0))
{
drawBladeReleased = true;
}
if (drawBladeReleased == true)
{
transform.Translate(drawbladeSpeed * Time.deltaTime, 0, 0);
}
}
}
I think it has something to do with the framerate and how many times code is executed a second, but I’m not sure and haven’t found any solutions online. Responses are greatly appreciated!