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");
        }
Beispiel #3
0
    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);
    }
Beispiel #4
0
        /// <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);
        }
Beispiel #5
0
		public CheckCollisionSettings (float maxCheckDistance, VectorAxis upAxis)
		{
			this.maxCheckDistance = maxCheckDistance;
			this.upAxis = upAxis;
		}