2015-09-01 3 views
0

J'ai un Texture2D qui peut être créé et redimensionné, et aussi détruit rapidement en fonction de l'entrée de la touche utilisateur.Unity3D Texture2D.Resize conduit à Erreur: afterDecrement> = 0

Si je rapidement frappé les clés pour détruire/créer la texture je reçois parfois des erreurs, évidemment causé par la texture:

afterDecrement >= 0 
UnityEngine.Texture2D:Resize(Int32, Int32) 

Est-ce que quelqu'un sait ce que cela signifie et comment résoudre ce problème?

+1

Ce type de message est généralement une assertion qui a échoué dans les composants internes Unity. Dans ce cas, une texture se plaint que sa largeur ou sa hauteur est 0. Selon ce que vous faites, cela peut signifier que vous redimensionnez une texture supprimée, ou que vous redimensionnez une texture existante avec de mauvais paramètres. – rutter

+0

Merci pour l'info rutter! Je suppose que dans Unity, on ne devrait généralement pas disposer d'objets et laisser Destroy (gameObject) s'occuper de tout cela? J'ai le sentiment qu'essayer de disposer manuellement des objets enfants, grahpics etc. entraînera des erreurs comme celles-ci. Je suis un peu paranoïaque de la mémoire, excusez-moi! – BadmintonCat

Répondre

1

Correction du problème! Il y avait en effet une condition dans ma méthode d'invalidation de vue où la largeur définie pour la texture était 0 et dans la trame suivante réglée à une largeur appropriée. J'ai ajouté un chèque et l'exception n'apparaît plus.