#10 Hombre, en uno de los enlaces uno ha hecho una prueba y parece que es ligeramente más rápido. La cosa es si realmente vale la pena... siempre me han parecido bastante engorrosas las animaciones. Está bien lo de optimizar, pero llega un punto en el que no vale la pena por lo poco que ganas.
Hay algunos consejos sobre físicas que puedo dar. Esta captura es una imagen de mi juego muy antigua, no la tengáis en cuenta (próximamente crearé un hilo sobre el juego en el foro).
Ahora los campos de asteroides tienen muchos menos asteroides y son más realistas, pero para entonces eran así.
Los asteroides del fondo eran campos de particulas en 3d, pero habían unos 1000 asteroides, reales y destructibles con físicas.
Cada asteroide tenía los trozos en los que se partia como hijos, cada hijo tenia un mesh collider, así que cuando impactaba se desactivaba el mesh renderer del padre (el asteroide que se veía), se activaban los mesh renderer de los hijos (los trozos) y estos salían volando. Si cada asteroide tenía 30 trozos, son 30 mesh colliders por cada asteroide, es algo imposible de procesar. La solución se puede aplicar a cualquier objeto que necesite varios colliders o use mesh colliders.
Es tan sencillo como desactivar todos los colliders del objeto y tener un trigger collider (una esfera por ejemplo) que rodee una distancia de "seguridad" alrededor del objeto. Cuando algo entre dentro del trigger significará que hay una posible colisión, entonces se activarán los colliders normales para que hayan impactos y se desactivará el trigger. Esto reduce el consumo de físicas un montón.
Estos asteroides tenían un movimiento aleatorio. Cualquier objeto moviendose por físicas gasta recursos, si son 1000 es un problema. Así que hice un sencillo script el cual guardaba la velocidad del asteroide. Cuando el asteroide no aparecía en pantalla el rigidbody se volvia kinematic y la velocidad se ponia a 0. Cuando volvía a aparecer en pantalla se volvia a poner el rigidbody en modo normal y se restauraba la velocidad a la que estaba yendo. Esto creaba la sensación de que todo estaba en movimiento cuando en realidad lo que no salia estaba parado. Aumentaba mucho el rendimiento.
Al final me ha salido un buen tocho xD