Ich habe eine Einheitsanwendung für Desktop- und mobile Plattformen erstellt. Es gibt eine Karte in der oberen linken Ecke des Bildschirms. Ich zeichne jeden Rahmen auf dieser Karte. Die Position des Kreises ändert sich zur Laufzeit jederzeit.So zeigen Sie 2d Bild auf dem Bildschirm an unity3d
Um für diese Aufgabe zu tun, zeichne ich Kreis auf Textur und zeichne diese Textur. Dieser Code funktioniert auf Emulator, aber nicht Android-Handy oder Tablet. Ich sehe keinen Kreis auf der Karte.
Mein Code ist hier:
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);
}
}
Manche Leute sagen, OnGUI
veraltet. Aber wenn ich eine Schaltfläche in OnGUI
erstellen, wird es zur Laufzeit auf Android angezeigt.
Ich versuchte eine andere Lösung. Ich erstelle ein 3D-Ebenen-Objekt in meiner Szene und ziehe die .png-Datei als Textur. Aber ich ändere diese Textur nicht mit der Texture2D
Variable, die ein Kreis ist.
Warum benutzen Sie 'Sprites' nicht? –
teile die x- und y-Positionen nach Bildschirmbreite und -höhe in deinem Rect – LumbusterTick