private void ArrowPredictionUpdate() { if (bowDrawTime > minDrawTime) { if (predictionRenderer.positionCount != segments) { predictionRenderer.positionCount = segments; } Vector3[] positions = new Vector3[segments]; Vector3 p0 = GetArrowPositionAtDrawTime(bowDrawTime); Vector3 v0 = GetArrowLaunchVelocity(); for (int i = 0; i < segments; i++) { Vector3 point = ProjectilePrediction.Predict(p0, v0, i * maxPredictionTime / segments); positions[i] = point; } predictionRenderer.SetPositions(positions); } else { if (predictionRenderer.positionCount != 0) { predictionRenderer.positionCount = 0; } } }
private Vector3 GetPredictedPosition() { return(ProjectilePrediction.Predict(turretShootSystem.BulletSpeed, targetSelector.Target.EnemyVeloctiy, targetSelector.Target.Position, turretShootSystem.BulletSpawnPosition)); }