/// <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); }
public virtual Vector3 GetTrajectoryVelocity(TrajectoryPoints points) { var height = Mathf.Abs(points.top.y - points.start.y); var velocityY = GetVelocityVertical(height); var veloctiyX = GetVelocityHorizontalFromTo (points.start.x, points.end.x, velocityY); var veloctiyZ = GetVelocityHorizontalFromTo (points.start.z, points.end.z, velocityY); return(new Vector3(veloctiyX, velocityY, veloctiyZ)); }
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)); }