J'ai créé une application unitaire pour les plates-formes de bureau et mobiles. Il y a une carte dans le coin supérieur gauche de l'écran. Je dessine un cercle sur cette carte à chaque image. La position du cercle change à tout moment. Pour ce faire, je dessine un cercle sur la texture et dessine cette texture. Ce code fonctionne sur l'émulateur mais pas sur le téléphone ou la tablette Android. Je ne vois aucun cercle sur la carte.Comment afficher l'image 2d sur l'écran unity3d
Mon code est ici:
TextAsset imageAsset; // .png changes to .png.bytes. And the file dragged to this variable on inspector.
Start() {
texture.LoadImage(imageAsset.bytes);
}
void OnGUI() {
Circle(texture, x, y, Color.red);
if (Event.current.type.Equals(EventType.Repaint))
{
Graphics.DrawTexture(new Rect(..), texture);
}
}
Certaines personnes disent déconseillés OnGUI
. Mais si je crée un bouton dans OnGUI
, il est affiché à l'exécution sur android.
J'ai essayé une autre solution. Je crée un objet plan 3D sur ma scène, et fais glisser le fichier .png comme texture. Mais je ne change pas cette texture en utilisant la variable Texture2D
qui est dessinée en cercle.
pourquoi ne pas utiliser 'sprites'? –
divisez les positions x et y par la largeur et la hauteur de l'écran dans votre Rect – LumbusterTick