/// <summary> /// Drive mechanism by velocity. /// </summary> /// <param name="velocity">Velocity of drive.</param> /// <param name="mode">Mode of drive.</param> /// <returns>Drive is unrestricted?</returns> protected override bool OnDrive(float velocity = 0, DriveMode mode = DriveMode.Ignore) { joint.position = transform.position; var angle = -VectorUtility.ProjectAngle(joint.forward, ZeroAxis, Axis); var euler = new Vector3(transform.localEulerAngles.x, transform.localEulerAngles.y, angle); transform.localRotation = Quaternion.Euler(euler); return(true); }