2016-04-22 2 views
-1

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.

+1

pourquoi ne pas utiliser 'sprites'? –

+0

divisez les positions x et y par la largeur et la hauteur de l'écran dans votre Rect – LumbusterTick

Répondre

0

Vous devez utiliser des sprites, et pourquoi avez-vous utilisé la fonction OnGui au lieu de la mise à jour?

obtenir peut-être un coup d'oeil sur le magasin d'actifs: 2DToolkit

+0

'if (Event.current.type.Equals (EventType.Repaint))' renvoie uniquement la fonction OnGUI, pas Update. Je vais essayer d'utiliser sprite. – zumma

0

Quelle est la résolution de votre appareil et votre image?

Je vous le demande parce que vous devriez envisager de changer les résolutions entre l'écran de votre ordinateur et celui de votre appareil.

Comme vous pouvez voir here vos valeurs rect doivent être en pixels.

Je vous recommande d'utiliser raw image pour charger votre texture, un Canvas pour manipuler le dessin et RectTransform pour contrôler votre position de cercle à la place.

Ces composants ont de nombreuses fonctionnalités pour résoudre ces problèmes de résolution qui peuvent survenir.