Entwicklung und Veröffentlichung des ersten Android-Spiels auf Unity3D

Guten tag Also habe ich mein erstes Spiel für Unity für Android fertiggestellt. Der Grund für die Entwicklung des Spiels war die Analyse der offenen Stellen bei hh. Es wurde interessant, warum Arbeitgeber bereit sind, Spielentwicklern hohe Beträge zu zahlen. In der Tat können wir (Entwickler) idealerweise autark sein, weil Fast jeder ernsthafte Programmierer ist in der Lage, selbst ein würdiges Produkt zu kreieren und sich an dessen Verkauf und Werbung zu beteiligen. Es scheint mir, dass bei der Kreation keine ernsthaften Probleme auftauchen sollten (mit Ausnahme des Kunstteils, weil ich noch keinen wunderbaren Künstler mit ausgezeichneten Programmierkenntnissen getroffen habe), aber die kostenlose Werbung für das Produkt ist ein Geheimnis - zumindest für mich jetzt.



Kommen wir zum eigentlichen Spiel. Ich habe zwei kleine Kinder und sie spielen oft Kinderspielzeug am Telefon, eine Art "Ablenkung". Natürlich tippen sie auf Werbebanner mit einer beneidenswerten Häufigkeit, was den Entwicklern dieser Spiele nicht wenig gefällt. Die oben genannten Umstände veranlassten mich zu dem Gedanken, etwas Ähnliches zu schaffen, aber nicht auf der Straße ... lächelnd (viele Kinderspiele leuchten nicht mit Genauigkeit), aber schön und angenehm für das Auge. Bei der Auswahl eines Themas hat mir die Jahreszeit selbst die Entscheidung diktiert. Ein Neujahrs- / Weihnachtsthema wurde ausgewählt. Das Gameplay sollte sehr einfach sein, aber lustig und farbenfroh. Hier begann die Arbeit des Kopfes, welche Elemente im Spiel zu implementieren sind. Als Ergebnis wurde beschlossen, die folgenden Elemente auf die Bühne zu bringen: Weihnachtskugeln, Weihnachtsbaum, der Weihnachtsmann fliegt über die Zeitschaltuhr und ein tanzendes Reh mit einem Schneemann.

Jeder Ball sollte beim Drücken eine festliche Melodie reproduzieren und einen bestimmten Impuls erhalten, der dementsprechend mit den anderen Bällen kollidiert. Die Richtung des Impulses hängt davon ab, wo die Folie auf dem Bildschirm erstellt wurde. Jedes Kugelobjekt besteht aus AudioClip, Sprite, Box Collider, Starrkörper 2D, Distance Joint 2D und LineRendrer . Sie können dies deutlich im Screenshot des Projekts sehen. Dementsprechend wird Starrkörper 2D benötigt, um die Objektmasse zu bestimmen und die Wirkung der Schwerkraft zu realisieren. Box Collider implementiert Kollisionen. Distace Joint 2D ist unser unsichtbarer Thread, an dem der Ball aufgehängt ist. LineRenderer ist mit dem Rendern des Distace Joint 2D-Threads beschäftigt.



Jedem Ball ist ein Klickverarbeitungsskript beigefügt, das ohne Verwendung der Unity-Benutzeroberfläche eigenständig implementiert wird.

Hier ist ein Teil des Implementierungscodes für die Tapabearbeitung auf dem Bildschirm:

 if (Input.touchCount > 0)
        {
           if (Input.GetTouch(0).phase == TouchPhase.Moved)
            {
            Vector3 tmp = Camera.main.ScreenToWorldPoint(new  Vector3(Input.GetTouch(0).position.x, Input.GetTouch(0).position.y, 0));
                hit = Physics2D.Raycast(tmp, tmp);
                if (hit.collider.gameObject == gameObject && hit.distance < 0.1)
                {
                    if (Input.GetTouch(0).deltaPosition.x>0)
                        rb2D.velocity += new Vector2(dspeed, 0f);
                    else
                        rb2D.velocity += new Vector2(-dspeed, 0f);
                    if (Asrc.isPlaying)
                        Asrc.Stop();
                    Asrc.PlayOneShot(aclip);
                 }
            }
        }

Es wurde beschlossen, den Weihnachtsbaum nicht einfach, sondern interaktiv zu gestalten. Wenn Sie auf den Weihnachtsbaum tippen, wird die Musik lauter, der Schnee fließt vom Stern und der Weihnachtsbaum beginnt zu tanzen. Der Weihnachtsbaum besteht aus drei beweglichen Elementen, die Distace Joint 2D miteinander verbinden . Jedes Element hat einen Box-Collider und dementsprechend ein Klickverarbeitungsskript. Wie bei Bällen hängt die Richtung des "Tanzes" des Weihnachtsbaums von der Richtung der Folie auf dem Bildschirm ab. Um das „Tanzen“ des Weihnachtsbaums weicher erscheinen zu lassen, wurde beschlossen, denselben Weihnachtsbaum etwas unscharf hinter das Objekt zu stellen, damit der Hintergrund nicht hinter die beweglichen Elemente des Weihnachtsbaums blickt.



Weihnachtsmannwurde ursprünglich für "klickbar" gehalten, bei einem Klick musste er "Ho-ho-ho" sagen, mit der Hand winken und mit Geschenken duschen. Pressen werden nach dem gleichen Prinzip wie Kugeln und Weihnachtsbaum verarbeitet. Handschwünge des Weihnachtsmanns - dies ist eine Animation mit Fingerspielen. Der Weihnachtsmann fliegt entlang einer Route, die in einer separaten Animation bekannt ist.

Geschenke, die der Weihnachtsmann wirft, sind Fertigteile ( ich denke, wie man Fertigteile zum Leben erweckt, der Kodierer, der den Artikel liest, weiß, und dies ist keine Lektion, sondern ein Rezensionsartikel, falls jemand mehr abbestellen muss)), die in zufälliger Menge mit Tippen auf den Weihnachtsmann generiert werden. Beim Schaffen von Geschenken war es notwendig, deren Verschwinden irgendwie zu erkennen. Das Verschwinden von Geschenken habe ich folgendermaßen umgesetzt: Laut Zeitschaltuhr wird ein Partikelsystem ähnlich einem kleinen Feuerwerk eingeschaltet, dann taucht Baumwolle auf, das Geschenk verschwindet und verschiedene (zufällige) Spielzeugsprites fliegen aus dem Ort des Verschwindens. Damit Geschenke nicht durch den "Boden" auf der Bühne fallen, ist Edge Collider implementiert .







Wenn Sie bis zu diesem Ort gelesen haben, bemerkten Sie zwei Schaltflächen in der linken Ecke des Bildschirms. Wenn Sie auf diese Schaltflächen klicken, werden ein tanzender Schneemann und ein Hirsch (beide sind Fertighäuser) angezeigt. Die Animationen wurden manuell registriert. Jeder Tänzer hat drei Animationen. Wenn die Animationen geändert werden, gratulieren die Tänzer User Frohe Weihnachten. Der Tanz endet mit einer Verkleinerung des Maßstabs des Objekts und der Einbeziehung eines Partikelsystems. An der Implementierung der Tänzer gibt es nichts Besonderes, das einzige, was ich beachten möchte: Aktivieren Sie beim Erstellen einer Animation immer das Kontrollkästchen Quaternion in den Interpolationseinstellungen für die Rotationsanimation .





Gameplay-Video (Ich entschuldige mich für die Qualität, in der Tat verlangsamt das Spiel nicht, aber mit dem laufenden Dienstprogramm von Google-Spielen für die Aufzeichnung des Gameplays wurde alles verlangsamt):


Bilder und Musik unter der CC-Lizenz finden Sie hier: openclipart.org (Bilder) und incompetech.com (Musik von Kevin MacLeod, CC Attribution 3.0-Lizenz).

Erzählen Sie jetzt kurz von den Fallstricken des Publizierens, obwohl es sich nicht um Fallstricke handelt, sondern um Steine. Bei der Entwicklung eines Projekts wird ein Standardschlüssel darin eingenäht, sodass Sie mit einem solchen Schlüssel keine Anwendung für Google Play veröffentlichen können. Die Anwendung muss vor der Veröffentlichung mit Ihrem Freigabeschlüssel signiert werden. Hierzu werden die Standard-Unity-Tools verwendet.Es gibt Artikel, in denen diese Aktion sehr detailliert beschrieben ist, daher werde ich hier nicht näher darauf eingehen. Ein weiterer beängstigender Stein ist die Angabe der Preise der Anwendung auf dem Markt für verschiedene Länder, machen Sie sich bereit, in diesem Stadium zu paffen, obwohl es nichts Kompliziertes gab, aber dieser Prozess wurde von Nerven getätschelt. Das Wichtigste: Seien Sie nicht faul, eine ausreichende Beschreibung Ihres Produkts zu verfassen. Dies ist der Schlüssel zum Erfolg in der Anfangsphase, wenn Sie keine Werbemethoden anwenden. Ich habe beschlossen, das Spiel mit Unity Ads zu monetarisieren. Es ist sehr einfach zu integrieren und funktioniert gut. Beim Einbetten des AdMob-Plugins habe ich angefangen, auf das SDK zu schwören, auf Java habe ich es nie geschlagen, und der Dezember kam sehr schnell, weshalb ich bei UnityAds blieb. Im Moment gibt es Ansichten und abgeschlossene Ansichten, aber es gibt noch keine Gebühren. Daher kann ich noch keine Statistiken und Schlussfolgerungen zur Monetarisierung geben.

Vielen Dank für das Lesen des Artikels. Ich hoffe es hat jemandem geholfen!
Ich werde einen Link zur Anwendung in Form eines Spoilers erstellen:

Jetzt auch beliebt: