- Home /
"Chasing" object around a sphere
Hey all,
For a project, I've got planet-based combat as part of the gameplay. In short, I use forward movement and rotation followed by rotational and positional clamping to the planet's surface. It uses a bit of spherical coordinate math, but that's not important.
So, I have enemies that I'd like to follow my position, wherever I am on the sphere. This, however, is proving difficult. Using transform.LookAt(player.position) only works well when they're closer on the sphere, but farther away, and I get a quasi-Gimbal Lock scenario.
What's the best way to have something rotate so it's forward vector propels itself toward an object on a sphere? Thanks in advance!
Also, here's the code, so you get an idea of what I'm doing to "clamp" it and such.
 // Applies yaw changes (DOESN'T WORK RIGHT :C)
 transform.LookAt(player.transform.position);
         
 // Applies forward movement
 currentSpeed += Time.deltaTime * enemyPlanetAccel;
 currentSpeed = Mathf.Clamp(currentSpeed, 0, enemyPlanetMaxSpeed);
 currentSpeed -= Time.deltaTime / 2f;
 transform.position += transform.forward * currentSpeed * Time.deltaTime;
         
 // Correct turns/position to limit to planet's surface
 Vector3 c2s = transform.position - planet.transform.position;
 Quaternion newTurn = Quaternion.LookRotation(Vector3.Cross(transform.right, c2s), c2s);
 transform.rotation = newTurn;
 transform.position = sphericalToCartesian(new Vector3(landingRValue, cartesianToSpherical(transform.position).y, cartesianToSpherical(transform.position).z));
Thanks again for any help! :)
Answer by DaveA · Mar 12, 2012 at 11:29 PM
Slerp is supposed to do that. Spherical Linear intERPolation. Slerp to find the 'Cartesian' coordinates between your start (current) and end positions, use constant height for radius.
Your answer
 
 
             Follow this Question
Related Questions
How can I make movement on a sphere? 4 Answers
Camera focusing on an object specified in a script 1 Answer
Camera follow Avatar 1 Answer
Mouse Orbit + Move Object + Follow Problem 1 Answer
Player not following touch after camera is rotated? 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                