Vector3 ProjectVector(Vector3 vector, Vector3 onNormal) { float vectorDot = Vector3.Dot(vector, onNormal); return onNormal * vectorDot; } float ClampInRange(float low, float val, float high)