What does this unity3d c# code mean? -


ray mouseray = camera.main.screenpointtoray(input.mouseposition); vector3 newdotposition =     mouseray.origin - mouseray.direction / mouseray.direction.y * mouseray.origin.y; 

i see newdotposition gameobject's position @ terrain. following code do?

mouseray.direction / mouseray.direction.y * mouseray.origin.y 

actually it's basic geometry.

mouseray.origin camera's world position. mouseray.origin.y camera's height.

result of mouseray.direction / mouseray.direction.y * mouseray.origin.y red vector in image below. scales mouseray.direction way through ground.

then mouseray.origin - result hit point on ground in world coordinates.

enter image description here

and here code see result if interested.

public class test : monobehaviour {     public float origingizmoradius = 1f;     public float newdotpositiongizmosize = 0.5f;     public float directionlength = 2f;      vector3 origin;     vector3 direction;     vector3 newdotposition;      void update()     {         ray mouseray = camera.main.screenpointtoray(input.mouseposition);          origin = mouseray.origin;         direction = mouseray.direction;          newdotposition = origin - direction / direction.y * origin.y;     }      void ondrawgizmos()     {         gizmos.color = color.red;         gizmos.drawsphere(origin, origingizmoradius);         gizmos.drawline(origin, origin + (direction.normalized * directionlength));          gizmos.color = color.green;         gizmos.drawcube(newdotposition, newdotpositiongizmosize * vector3.one);     } } 

Comments

Popular posts from this blog

asp.net mvc - SSO between MVCForum and Umbraco7 -

Python Tkinter keyboard using bind -

ubuntu - Selenium Node Not Connecting to Hub, Not Opening Port -