コード例 #1
0
    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;
            }
        }
    }
コード例 #2
0
ファイル: Turret.cs プロジェクト: GhooTS/PlanetExplorer
 private Vector3 GetPredictedPosition()
 {
     return(ProjectilePrediction.Predict(turretShootSystem.BulletSpeed, targetSelector.Target.EnemyVeloctiy, targetSelector.Target.Position, turretShootSystem.BulletSpawnPosition));
 }