protected Vector3 TrajecoryHorizontalPoint(Vector3Range range) { var origin = range.defaultValue; var min = range.min; var max = range.max; return(new Vector3 (Random.Range(min.x, max.x), origin.y, Random.Range(min.z, max.z))); }
/// <summary> /// Randomly get trajectory points in range /// Geerate randomized trajectory points and calculate velocity on spawn /// </summary> protected virtual TrajectoryPoints RandomizeTrajectory (Vector3Range range) { var points = new TrajectoryPoints(); points.start = TrajecoryHorizontalPoint(range); points.end = TrajecoryHorizontalPoint(range); points.top = TrajecoryVerticalPoint(points, range); return(points); }
protected Vector3 TrajecoryVerticalPoint (TrajectoryPoints points, Vector3Range range) { var origin = range.defaultValue; var min = range.min; var max = range.max; return(new Vector3 ((points.start.x + points.end.x) / 2.0f, Random.Range(min.y, max.y), (points.start.z + points.end.z) / 2.0f)); }
/// <summary> /// Set constrained value to default value /// </summary> protected virtual Vector3 Constrain (Vector3Range range, Vector3 unconstrained) { var constrained = unconstrained; if (range.constrainX) { constrained.x = range.defaultValue.x; } if (range.constrainY) { constrained.y = range.defaultValue.y; } if (range.constrainZ) { constrained.z = range.defaultValue.z; } return(constrained); }
/// <summary> /// Randomly get constrained vector3 in range /// </summary> protected virtual Vector3 MinMaxConstrained(Vector3Range range) { var randomizedValue = RandomMinMax(range); return(Constrain(range, randomizedValue)); }
protected virtual Vector3 RandomMinMax(Vector3Range range) { return(RandomMinMax(range.min, range.max)); }