Beispiel #1
0
    private void DisplayParabola(DisplayParabolaRequestEvent obj)
    {
        currentRequest                     = obj;
        currentRequest.speed               = speed;
        currentRequest.arcHeight           = arcHeight;
        currentRequest.xReductionPerBounce = xReductionPerBounce;
        currentRequest.bounces             = bounces;
        if (projectileOrigin != obj.projectileOrigin)
        {
            projectileOrigin = obj.projectileOrigin;
        }
        if (obj.variableTarget != null)
        {
            target     = obj.variableTarget;
            obj.target = target.position;
        }
        startingPos                = projectileOrigin.position;
        lineRenderer.enabled       = true;
        lineRenderer.positionCount = 0;
        Parabola[] parabolas = ParabolaCalculator.CalculateFullTrajectory(obj);
        lineRenderer.positionCount = ParabolaCalculator.PointAmountInParabolaArray(parabolas);
        int pointIndexInLineRenderer = 0;

        for (int parabolaIndex = 0; parabolaIndex < parabolas.Length; parabolaIndex++)
        {
            for (int pointIndex = 0; pointIndex < parabolas[parabolaIndex].points.Count; pointIndex++)
            {
                lineRenderer.SetPosition(pointIndexInLineRenderer, parabolas[parabolaIndex].points[pointIndex]);
                pointIndexInLineRenderer++;
            }
        }
        target.hasChanged = false;
    }
Beispiel #2
0
 private void OnDisplayParabolaRequested(DisplayParabolaRequestEvent obj)
 {
     speed               = obj.speed;
     arcHeight           = obj.arcHeight;
     bounces             = obj.bounces;
     xReductionPerBounce = obj.xReductionPerBounce;
     DisplayParabola(obj);
 }
 public static Parabola[] CalculateFullTrajectory(DisplayParabolaRequestEvent request)
 {
     return(CalculateFullTrajectory(request.projectileOrigin.position, request.target, request.speed, request.arcHeight, request.xReductionPerBounce, request.bounces));
 }