Tengo problemas de rendimiento con la App que estoy haciendo.
Para empezar no entiendo la diferencia entre los FPS reales que me da el script en pantalla con los que muestran las estadísticas.
A parte de eso el problema está en el hilo principal. Como veis se come 9ms frente a los 0.7 del renderizado. En mi ordenador no hay problema, pero cuando paso la app a la tablet los FPS bajan a 30, 20 e incluso menos.
He abierto el proyecto de ejemplo, ese en 3D con lluvia y drones, y teniendo muchísimos más objetos y scripts, el hilo principal se ejecuta en 4ms.
Tampoco he visto una gran diferencia entre la forma en que están programados esos scripts y los míos.
No sé si hay algún truco o algo que deba configurar para mejorar el rendimiento, porque no es para nada normal.
Edit:
Un ejemplo de código en el que al pulsar una flor se tambalea hacia los lados y expulsa unas partículas. Todos son del estilo, no sé si hay algo raro.
using UnityEngine;
using System.Collections;
public class FlowerBehaviourScript : MonoBehaviour {
// Use this for initialization
float max_rotation = 8f;
float rotation_speed = 15f;
bool moving = false;
float rotation;
Transform dust;
float volume = 0.1f;
void Start () {
dust = transform.FindChild("FlowerDust");
}
// Update is called once per frame
void Update () {
if(moving)
UpdateRotation();
}
void OnMouseDown () {
moving = true;
rotation = max_rotation;
dust.particleSystem.Play();
this.audio.PlayOneShot(this.audio.clip,volume);
}
void UpdateRotation() {
Quaternion target = Quaternion.Euler(0, 0, rotation);
transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * rotation_speed);
if(Mathf.Abs(target.z) <= Mathf.Abs(transform.rotation.z) + 0.015f){
rotation *= -0.92f;
}
if(Mathf.Abs(rotation) <= 0.05f) {
rotation = 0f;
moving = false;
}
}
}