public override void DrawInspector() { base.DrawInspector(); maxCheckDistance = EditorGUILayout.FloatField("Max Check Dist", maxCheckDistance); upAxis = (VectorAxis)EditorGUILayout.EnumPopup("Up Axis", upAxis); }
/// <summary> /// Strips one of the components from the vector /// </summary> /// <param name="vec"></param> /// <param name="axis"></param> /// <returns></returns> public static Vector3 Strip(this Vector3 vec, VectorAxis axis) { switch (axis) { case VectorAxis.X: return(new Vector3(0f, vec.y, vec.z)); case VectorAxis.Y: return(new Vector3(vec.x, 0f, vec.z)); case VectorAxis.Z: return(new Vector3(vec.x, vec.y, 0f)); } throw new System.Exception("Missing component"); }
public static Vector3 RandomVector3(Vector3 pos, float minRange, float maxRange, VectorAxis axis) { Vector3 generatePosVec = pos; switch (axis) { case VectorAxis.X: generatePosVec.x += Random.Range(minRange, maxRange); break; case VectorAxis.Y: generatePosVec.y += Random.Range(minRange, maxRange); break; case VectorAxis.Z: generatePosVec.z += Random.Range(minRange, maxRange); break; default: return(Vector3.zero); } return(generatePosVec); }
/// <summary> /// Given an input direction from an input axis (such as from a joystick), calculates /// the vector needed to move the specified transform in that direction relative to the camera. /// </summary> /// <param name="camera"></param> /// <param name="inputAxis"></param> /// <returns></returns> public static Vector3 CalculateRelativeDirection(this Camera camera, Transform transform, Vector2 inputAxis, VectorAxis axixToIgnore) { Vector3 cameraToTransform = transform.position - camera.transform.position; if (axixToIgnore == VectorAxis.Y) { cameraToTransform.y = 0; } var ctpNorm = cameraToTransform.normalized; var rightVec = new Vector3(ctpNorm.z, 0, -ctpNorm.x); return((ctpNorm * inputAxis.y + rightVec * inputAxis.x).normalized); }
public CheckCollisionSettings (float maxCheckDistance, VectorAxis upAxis) { this.maxCheckDistance = maxCheckDistance; this.upAxis = upAxis; }