Ce que vous voulez, c'est un profileur de mémoire, qu'Unity possède. Ici: http://docs.unity3d.com/Manual/ProfilerMemory.html
Mais votre hypothèse est généralement juste, si un gameObject n'est pas visible par la caméra, il n'est pas dessiné, et il utilise moins de ressources, mais il doit quand même en consommer. Le gameObject existe toujours en mémoire, y compris toutes les textures, les scripts de modèles, etc. il consomme également du temps CPU à travers les méthodes Update et FixedUpdate (et diverses autres décrites ici ).
Mais généralement, le ralentissement majeur est le dessin, une petite quantité de temps CPU est utilisée pour déterminer que l'objet est en dehors du tronc de la caméra (limites), mais aucun dessin n'est fait.
La reponse courte est oui"; tout ce qui est prêt à être utilisé dans votre jeu prend de la mémoire.
L'autre chose à considérer est le coût de votre fréquence d'images:
5 objets, avec 5 textures distinctes, dessinés séparément nécessitent des changements d'état entre les deux. Vous pourrez peut-être économiser de la mémoire en déchargeant les textures qui ne sont pas utilisées.
En chargeant toutes les textures distinctes dans une seule texture d'atlas, l'empreinte mémoire devient fixe et vous ne pouvez plus décharger une texture individuelle. Une fois créé, il vous suffit de lier l'atlas une fois pour dessiner tous vos objets.
Un autre exemple est un simple sommet et tampon d'index. Si plusieurs des points basculent fréquemment entre visible et non, il est plus rapide de laisser les points "périmés" dans le tampon de sommet et de télécharger uniquement un nouveau tampon d'index.
Il existe de nombreuses autres fois où une augmentation du coût de la mémoire initiale est préférable à de nombreux changements d'état.
En utilisant un défilement latéral comme exemple, si vous ne pouvez vous déplacer que vers la droite (la carte défile uniquement vers la gauche), tout objet qui défile hors du côté gauche de l'écran peut être déchargé de manière permanente car vous ne l'utiliserez plus jamais. De plus, le contenu des objets peut être chargé à la demande juste avant que l'objet défile dans la vue de droite.
la source
Beaucoup de réponses prennent principalement en compte l'aspect graphique de votre question.
Le fait est qu'ils prendront diverses ressources, et leur coût par rapport au dessin de l'objet n'est pas fixe. Ce n'est pas aussi rare que certaines réponses impliquent que vos composants effectuent des opérations plus coûteuses que le dessin, mais vous pouvez minimiser le nombre de ressources qu'ils utilisent. Gardez également à l'esprit qu'un GameObject occupe une petite quantité de mémoire, tout comme ses composants. Les composants peuvent également faire des choses qui occupent une bonne partie de la mémoire.
Le moyen le plus simple de minimiser l'effet des composants hors écran est un système basé sur les rappels OnBecameVisible et OnBecameInvisible .
Bien sûr, cela est d'une utilité très limitée car il y a de nombreuses fois où vous voudrez qu'un objet hors écran affecte le jeu. Mais vous pouvez développer un modèle de ce type pour un système à grain fin capable de minimiser l'effet de vos calculs les plus coûteux. Même quelque chose d'aussi simple que de réduire quelque chose comme la qualité d'un script de suivi de chemin lorsque l'objet est hors écran peut entraîner de grandes économies à long terme.
la source
Il faut de la mémoire pour le maintenir en vie et mettre à jour sa position et d'autres propriétés.
Mais il ne consomme pas de ressources graphiques informatiques / mobiles car il n'est pas visible.
Alors oui, il consomme des ressources mémoire mais pas des ressources graphiques comme le fait un objet de jeu visible.
la source
Tout ce qui se trouve dans un programme consomme des ressources; Vous ne pensez pas que les programmes fonctionnent simplement sur des espoirs et des rêves, n'est-ce pas?
La question devrait être de savoir combien de ressources un objet de jeu consomme, et à cette fin, je pense que c'est une réponse assez solide: http://answers.unity3d.com/questions/280455/how-much-memory-a-gameobject- consume.html
Bref, ils consomment à eux seuls des ressources négligeables. Mais pourquoi voudriez-vous un tas d'objets de jeu simplement assis dans votre jeu sans rien faire? À la fin de la journée, ce que vous faites réellement `` faire '' à ces objets de jeu, c'est ce qui va provoquer toute sorte de frais généraux - et la quantité de ressources qui nécessite est très au cas par cas.
la source