Answers for "Math Question : How to Get a Point on a Ray which is EXACTLY 5 units away from Vector3.Zero?"
http://answers.unity.com/questions/313702/math-question-how-to-get-a-point-on-a-ray-which-is.html
The latest answers for the question "Math Question : How to Get a Point on a Ray which is EXACTLY 5 units away from Vector3.Zero?"Answer by FWCorey
http://answers.unity.com/answers/356668/view.html
Make the sphere a child object of a child object of the planet at exactly 5 units away along the z axis and just put a LookAt script on the sphere's parent to look at a dummy object that is always synced to the mouse pointer. That should give you the effect you are looking for with the least effort.Fri, 30 Nov 2012 06:42:33 GMTFWCoreyAnswer by Foam
http://answers.unity.com/answers/313760/view.html
You should note that EXACTLY 5 units is a tricky thing when using floats and math operations.
If you're using LARGER THAN that's polled frequently enough you should be fine but just using 1 check can be fatal due to rounding errors.Wed, 05 Sep 2012 22:41:29 GMTFoamAnswer by Eric5h5
http://answers.unity.com/answers/313751/view.html
Use [Ray.GetPoint][1].
[1]: http://docs.unity3d.com/Documentation/ScriptReference/Ray.GetPoint.htmlWed, 05 Sep 2012 22:22:53 GMTEric5h5Answer by Piflik
http://answers.unity.com/answers/313721/view.html
You need the point on the ray, that is closest to your origin. Measure the distance and then you can calculate the two points (**it's always two**) on the ray that are 5 units from the origin (you get the distance between the closest point and your wanted point by way of the theorem of Pythagoras). But I am not sure this will help you at all...
What I would do, is calculate the distance between the sphere and the planet, and if it is bigger or smaller than a certain threshold, you set it to be that exact threshold.
Example:
var maxDist : int;
var minDist = int;
private var direction : Vector3;
function Update() {
direction = sphere.position - planet.position;
if(direction.magnitude > maxDist)
sphere.position = planet.position + direction.normalized * maxDist;
if(direction.magnitude < minDist)
sphere.position = planet.position +direction.normalized * minDist;
}Wed, 05 Sep 2012 21:09:55 GMTPiflikAnswer by Cripple
http://answers.unity.com/answers/313716/view.html
Hi, you should read some doc about vectors & stuff.
http://docs.unity3d.com/Documentation/Manual/VectorCookbook.html
Here is what you are looking for :
Vector3 point = centerOfSphere + ray.direction * 5.0f;
You add to the origin point the vector which will give you your final point. You want to follow the ray so you get its direction (it is normalized, so its magnitude is 1) and you multiply it by the distance you want to travel (here 5 units).Wed, 05 Sep 2012 21:05:50 GMTCripple