/// <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);
        }
Beispiel #2
0
        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));
        }