Unidad: la mejor práctica para aplicar la aceleración uniforme (independientemente de la dirección)

He leído muchos otros temas aquí, en los foros de Unity y en las búsquedas de Google que responden de manera similar pero no son lo mismo que mi pregunta.

Mi pregunta:

Tengo un proyecto de Unity con una esfera, la esfera comienza a una cierta velocidad inicial y quiero que la esfera se acelere uniformemente con el time para alcanzar su velocidad máxima, independientemente de los rebotes y las interacciones.

Obviamente, una interacción hará que la Velocidad cambie, pero no quiero que la Velocidad cambie.

Empecé buscando un LERP de velocidad, pero probé el siguiente código.

He negado y desactivado todos los ajustes de fricción y fricción en el object del juego.

Mi código actual es así (C #):

using UnityEngine; using System.Collections; public class Ball : MonoBehaviour { public float accelerationSpeed = 10f; public float maximumSpeed = 25f; public float initialSpeed = 10f; private Rigidbody rb; private bool ballInPlay = false; // Use this for initialization void Awake () { rb = gameObject.GetComponent<Rigidbody>(); } //...other functions that don't relate to this question... void FixedUpdate () { /*** * Gradually increase ball speed ***/ if (ballInPlay == true && rb.velocity.magnitude < maximumSpeed) { rb.AddForce(rb.velocity.normalized * accelerationSpeed, ForceMode.Acceleration); } } } 

Este código toma ~ 3-4 segundos para acelerar la bola hasta la velocidad máxima, y ​​parece rebotar la pelota adecuadamente en cuerpos rígidos, como yo quiero.

Sin embargo, con el time tendré más cosas que interactúen con la pelota, incluidas las explosiones y otros valores reales de la Fuerza (como el viento), por lo que tendré esto en count; ¿Es este código la mejor manera de aplicar una aceleración constante a un object del juego, independientemente de sus otros comportamientos e influencias?

Si bien lo anterior puede funcionar, también estoy buscando las mejores prácticas en la medida de lo posible (y la eficiencia de la memory / procesador si es aplicable).

Aunque obviamente habrá incógnitas (ya que es excesivo mostrarle todo mi proyecto, solo por esta pregunta), se agradecerá alguna orientación sobre los mejores methods para abordar esto y mejorar la eficiencia.

Muchas gracias.

EDITAR:
Para aclarar mi pregunta exacta:
Es la mejor práctica del código anterior cuando se aplica una aceleración uniforme al object del juego al tratar con la influencia de las funciones adicionales de Rigidbody.AddForce en el object del juego.