- Home /
How to move an object immediately to a desired location?
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!
Answer by grimreefer24601 · Mar 08 at 11:48 PM
transform.position = new Vector3(x,y,z);
This is how I usually do it.
Answer by KobaltKookie · Mar 09 at 04:12 PM
For those looking for an answer, I found a much simpler solution to this problem. Instead of spawning the projectile at the mouse position, I spawned it at the player, and translated it up a little bit. Since when the projectile is spawned, it has the same rotation as the player, this worked with no issues.
Your answer
Follow this Question
Related Questions
Trying to translate a game object a fixed distance 3 Answers
Character controller problem 2 Answers
GameObject1 move away when GameObject2 gets close 1 Answer
[SOLVED] Camera jitters while moving towards/away from player 2 Answers
How to make the object stop moving within a certain distance with the target. 1 Answer