İlk temel Android oyununuzu sadece 7 dakikada (Unity ile) oluşturun

Yazar: Lewis Jackson
Yaratılış Tarihi: 11 Mayıs Ayı 2021
Güncelleme Tarihi: 1 Temmuz 2024
Anonim
UNITY İLE 2D OYUN NASIL YAPILIR? Ders 1 (Unity Giriş, Bölüm oluşturma, Animasyon)
Video: UNITY İLE 2D OYUN NASIL YAPILIR? Ders 1 (Unity Giriş, Bölüm oluşturma, Animasyon)

İçerik


Android için tamamen çalışan bir oyun yapmak, düşündüğünüzden çok daha kolaydır. Başarılı Android gelişiminin (veya herhangi bir gelişmenin) anahtarı, ne elde etmek istediğinizi bilmek ve bunu yapmak için gerekli araç ve becerileri bulmaktır. En az direnç gösteren yoldan geçin ve akılda net bir hedef edin.

Oyun yaratmaya gelince, bence en iyi araç Birlik. Evet, Android Studio'da bir oyun oynayabilirsiniz, ancak Java ve Android SDK ile deneyimli değilseniz, yokuş yukarı bir mücadele olacaktır. Sınıfların ne yaptığını anlamanız gerekir. Özel görünümler kullanmanız gerekir. Bazı ek kütüphanelere güveniyor olacaksınız. Liste devam ediyor.

Birlik, Play Store'daki en çok satan başlıkların büyük çoğunluğuna güç sağlayan oldukça profesyonel bir araçtır.

Öte yandan birlik, işin çoğunu sizin için yapar. Bu bir oyun motorudur, yani tüm fizik ve kullanmak isteyebileceğiniz diğer birçok özellik zaten halledilir. Çapraz platformdur ve hobiler ve bağımsız geliştiriciler için başlangıç ​​seviyesine uygun olacak şekilde tasarlanmıştır.


Aynı zamanda, Unity, Play Store'daki en çok satan kitapların büyük çoğunluğuna izin veren oldukça profesyonel bir araçtır. Burada hiçbir sınırlama yoktur ve hayatı kendiniz için zorlaştırmak için iyi bir neden yoktur. Bu da ücretsiz!

Unity ile oyun geliştirmenin ne kadar kolay olduğunu göstermek için, ilk Android oyununuzu sadece 7 dakikada nasıl yapacağınızı göstereceğim.

Hayır - gitmiyorum açıklamak 7 dakikada nasıl yapılır. Ben gidiyorum yap 7 dakika içinde Siz de takip ederseniz, aynı şeyi de yapabilirsiniz!

feragat: Başlamadan önce, sadece biraz aldattığımı belirtmek istiyorum. Oyunu yapma süreci 7 dakika sürecek olsa da, bu zaten Unity'yi kurduğunuzu ve her şeyi ayarladığınızı varsayar. Ama seni asılı bırakmayacağım: bunun nasıl yapılacağı hakkında tam bir rehber bulabilirsiniz.


Sprite ve fizik ekleme

Başlatmak için Unity'ye çift tıklayarak başlayın. En uzun yolculuk bile tek bir adımla başlar.

Şimdi yeni bir proje oluşturun ve '2D'yi seçtiğinizden emin olun. İçeri girdikten sonra, birkaç farklı pencereyle karşılaşacaksınız. Bunlar şeyler yapar. Açıklamak için vaktimiz yok, o yüzden sadece talimatlarımı takip et, sonra sen de onu alırsın.

İlk yapmak istediğin şey, karakterin olacak bir sprite yaratmak. Bunu yapmanın en kolay yolu kare çizmektir. Birkaç göz vereceğiz. Hala daha hızlı olmak istiyorsan, istediğin yerden bir sprite yakalayabilirsin.

Bu sprite'ı kaydedin ve ardından en büyük pencereye yerleştirerek yalnızca 'sahnenize' sürükleyip bırakın. Aynı zamanda solda “hiyerarşi” de açıldığını fark edeceksiniz.

Şimdi bazı platformlar oluşturmak istiyoruz. Yine, basit bir kare ile yapacağız ve duvarları, platformları ve neye sahip olduğunuzu göstermek için bu serbest elemeyi yeniden boyutlandırabiliriz.

İşte gidiyoruz, güzel. Sadece yaptığınız gibi bırakın.

Zaten bir 'oyuna' benzeyen bir şeyimiz var. Oynat'ı tıkladığınızda şimdilik bir statik sahne görmelisiniz.

Oyuncu sprite seçeneğine tıklayarak ve 'denetçi' olarak adlandırılan pencerenin sağına bakarak bunu değiştirebiliriz. GameObjects için özelliklerini değiştirdiğimiz yer burasıdır.

"Bileşen Ekle" yi seçin ve ardından "Fizik 2D> RigidBody2D" yi seçin. Oyuncuya az önce fizik ekledin! Bu, kendi başımıza yapmamız için inanılmaz derecede zor olurdu ve Birliğin yararlılığını gerçekten vurguluyor.

Ayrıca karakterin etrafında dönmesini ve dönmesini engellemek için oryantasyonumuzu düzeltmek istiyoruz. Oyuncu seçildikten sonra denetçide "kısıtlamalar" ı bulun ve Z dönüşünü dondurmak için kutuyu işaretleyin. Şimdi tekrar oynat'ı tıkladığınızda, oynatıcınızın artık gökten sınırına düşeceğini görmelisiniz.

Bunun ne kadar kolay olduğunu düşünmek için bir dakikanızı ayırın: “RigidBody2D” adlı betiği uygulayarak tamamen işlevsel fiziğe sahibiz. Aynı senaryoyu yuvarlak bir şekle uygulayabilseydik, aynı zamanda yuvarlanır ve zıplardı. Kendiniz kodladığınızı ve bunun ne kadar dahil olacağını hayal edin!

Karakterimizin yere düşmesini engellemek için bir çarpıştırıcı eklemeniz gerekir. Bu temelde bir şeklin sağlam anahattıdır. Bunu uygulamak için, oynatıcınızı seçin, "Bileşen Ekle" yi tıklayın ve bu kez "Fizik 2D> BoxCollider2D" yi seçin.

Bunun ne kadar kolay olduğunu düşünmek için bir dakikanızı ayırın: “RigidBody2D” adlı betiği uygulayarak tamamen işlevsel fiziğe sahibiz.

Platformla aynı şeyi yapın, oyuna tıklayın ve karakteriniz sağlam zemine düşmelidir. Kolay!

Bir şey daha: kameranın oynatıcımızı düşüp düşüyor veya hareket ediyor olsun takip etmesini sağlamak için, sahnede bulunan kamera nesnesini (yeni projeye başladığınızda oluşturulmuş olan) oynatıcının üzerine sürüklemek istiyoruz. Şimdi, hiyerarşide (soldaki GameObjects listesi), kamerayı oynatıcının altına girecek şekilde sürükleyeceksiniz. Kamera şimdi Oyuncu GameObject'in bir "çocuğu" anlamına gelir, yani oyuncu hareket ettiğinde kamera da öyle olur.

İlk senaryonuz

Temel bir sonsuz koşucu yapacağız ve bu, karakterimizin bir engele çarpana kadar ekran boyunca hareket etmesi gerektiği anlamına gelir. Bunun için bir senaryoya ihtiyacımız var. Bu yüzden, aşağıdaki Varlıklar klasörünü sağ tıklayın ve "Komut Dosyaları" adlı yeni bir klasör oluşturun. Şimdi tekrar sağ tıklayın ve ‘Yarat> C # Komut Dosyası’ seçin. 'PlayerControls' olarak adlandırın.

Çoğunlukla, yarattığımız komut dosyaları GameObjects için özel davranışları tanımlayacaktır.

Şimdi yeni komut dosyanızı çift tıklatın ve her şeyi doğru şekilde ayarlarsanız Visual Studio'da açılır.

Burada zaten 'kazan plakası kodu' olan bazı kodlar var. Bu, neredeyse her komut dosyasında kullanmanız gerekeceğinin kodudur, bu yüzden zaman kazanmanız için hazırdır. Şimdi bu satırın üzerine yeni bir nesne ekleyelim void Start ():

kamu Rigidbody2D rb;

Ardından, sonraki katı kod satırını, katı cismi bulmak için Start () yönteminin içine yerleştirin. Bu, temel olarak Unity'ye, GameObject'e ekli fiziği bulmasını ve bu senaryo ile ilişkilendirileceğini söyler. Start (), yeni bir nesne veya komut dosyası oluşturulur yaratılmaz yürütülen bir yöntemdir. Fizik nesnesini bulun:

rb = GetComponent();

Bunu Update () içine ekleyin:

rb.velocity = yeni Vector2 (3, rb.velocity.y);

Update () art arda yenilenir ve bu nedenle buradaki herhangi bir kod, nesne yok olana kadar tekrar tekrar çalışacaktır. Bunların hepsi, rijitlerimizden y ekseninde (rb.velocity.y) aynı hızla, ancak yatay eksende but 3 hızla yeni bir vektör almamızı istediğimizi söylüyor. İlerlerken, gelecekte ‘FixedUpdate ()’ kullanacaksınız.

Bunu sakla ve Birliğe geri dön. Oynatıcı karakterinizi tıklatın ve sonra denetçide Bileşen Ekle> Komut Dosyaları'nı ve ardından yeni komut dosyanızı seçin. Oyun tıklayın ve patlama! Karakteriniz şimdi çıkıntının kenarına doğru bir lemming gibi hareket etmelidir.

Not: Bu seslerden herhangi biri kafa karıştırıcı geliyorsa, videonun tümünü görmek için sadece izleyin - yardımcı olacaktır!

Çok temel oyuncu girişi

Bir atlama özelliği eklemek istiyorsak bunu sadece bir ek kod bitiyle yapabiliriz:

if (Input.GetMouseButtonDown (0)) {rb.velocity = yeni Vector2 (rb.velocity.x, 5); }

Bu, Güncelleme yönteminin içine girer ve “oynatıcı tıklarsa” der, y eksenine hız ekler (5 değeriyle). Eğer kullandığımız zaman, parantez içinde izleyen herhangi bir şey bir tür doğru veya yanlış test olarak kullanılır. Söz konusu parantez içindeki mantık doğruysa, aşağıdaki parantez içindeki kod çalışır. Bu durumda, oyuncu fareye tıklarsa, hız eklenir.

Android, ekranın herhangi bir yerine dokunarak sol fare tıklamasını okur! Yani şimdi oyunda temel musluk kontrolleri var.

Ayaklarınızı bulma

Bu temelde bir Flappy Birds'ü klonlamak için yeterlidir. Bazı engelleri at ve oyuncuya dokunduğunda nasıl imha edeceğini öğren. Bunun üzerine bir puan ekleyin.

Bunu aşarsanız, hiçbir zorluk gelecekte çok büyük olmayacak

Ama biraz daha zamanımız var, böylece daha hırslı oluruz ve bunun yerine sonsuz koşucu tipi bir oyun oynarız. Şu an sahip olduğumuz şeyle ilgili yanlış olan tek şey, zıplamanın zıplama oyuncunun zemine dokunmadığı zamanlarda bile zıplayacağı, yani esasen uçabilmesi.

Bunun düzeltilmesi biraz daha karmaşık hale geliyor, ancak bu Birliğin aldığı kadar zor. Bunu aşarsanız, hiçbir zorluk gelecekte çok büyük olmayacak.

Update () yönteminin üzerindeki komut dosyasına aşağıdaki kodu ekleyin:

public Transform groundCheck; kamusal Dönüşüm startPosition; halka açık alan şeceriRadius; genel LayerMask whatIsGround; onGround üzerindeki özel bool;

Bu satırı if ifadesinin üstündeki Update yöntemine ekleyin:

onGround = Physics2D.OverlapCircle (groundCheck.position, groundCheckRadius, whatIsGround);

Son olarak, & & onGround özelliğini içerecek şekilde aşağıdaki satırı değiştirin:

if (Input.GetMouseButtonDown (0) && onGround) {

Her şey şöyle görünmeli:

kamu sınıfı PlayerControls: MonoBehaviour {public Rigidbody2D rb; public Transform groundCheck; kamusal Dönüşüm startPosition; halka açık alan şeceriRadius; genel LayerMask whatIsGround; onGround üzerindeki özel bool; void Başlat () {rb = GetComponent(); } void Update () {rb.velocity = yeni Vector2 (3, rb.velocity.y); onGround = Physics2D.OverlapCircle (groundCheck.position, groundCheckRadius, whatIsGround); if (Input.GetMouseButtonDown (0) && onGround) {rb.velocity = yeni Vector2 (rb.velocity.x, 5); }}}

Burada yaptığımız şey yeni bir dönüşüm yaratmak - uzayda bir konum - o zaman yarıçapını belirliyor ve bunun zemin denilen bir katmanla çakışıp çakışmadığını soruyoruz. Daha sonra, durumun böyle olup olmadığına bağlı olarak Boole'nin değerini (bu doğru veya yanlış olabilir) değiştiriyoruz.

Bu nedenle, groundCheck adı verilen dönüşüm katman katıyla çakışıyorsa, onGround geçerlidir.

Kaydet'i tıklatıp ardından Birliğe geri dönerseniz, oynatıcıyı seçerken denetçinizde daha fazla seçeneğiniz olduğunu görmelisiniz. Bu genel değişkenler, Birliğin içinde görülebilir ve bu, istediğimiz gibi onları ayarlayabileceğimiz anlamına gelir.

Yeni bir boş nesne oluşturmak için soldaki hiyerarşiye sağ tıklayın ve ardından zemini algılamak istediğiniz Sahne penceresindeki oynatıcının hemen altında olacak şekilde sürükleyin. ‘Check Ground’ nesnesini yeniden adlandırın ve sonra fotoğraf makinesinde olduğu gibi oynatıcının çocuğu yapın. Şimdi oyuncuyu takip etmeli, altındaki zemini kontrol etmelidir.

Oynatıcıyı tekrar seçin ve denetçide, yeni Check Ground nesnesini "groundCheck" yazan alana sürükleyin. “Dönüşüm” (konum) şimdi yeni nesnenin konumuna eşit olacak. Buradayken, yarıçap yazan yere 0,1 girin.

Son olarak, 'zemin' katmanımızı tanımlamamız gerekir. Bunu yapmak için, daha önce oluşturduğunuz araziyi seçin, sonra denetçinin sağ üst köşesinde, 'Katman: Varsayılan' yazan yeri bulun. Bu açılır kutuyu tıklayın ve er Katman Ekle’yi seçin.

Şimdi geri tıklayın ve bu kez platformunuzun katmanı olarak ‘yer’ öğesini seçin (etrafta dolaşan diğer platformlar için bunu tekrarlayın). Son olarak, oynatıcınızdaki "Toprak Nedir" yazdığı yerde, zemin katmanını da seçin.

Şimdi, oyuncu betiğinize ekrandaki küçük noktanın bu katmanla eşleşen herhangi bir şeyle çakışıp çakışmadığını kontrol etmesini söylüyorsunuz. Daha önce eklediğimiz satır sayesinde, karakter şimdi sadece bu durumda atlayacaktır.

Ve bununla birlikte, oyuna vurursanız, doğru zamanda zıplamanızı gerektiren oldukça basit bir oyunun keyfini çıkarabilirsiniz.

Bununla, oyuna basarsanız, doğru zamanda atlamak için tıklamanızı gerektiren oldukça basit bir oyunun keyfini çıkarabilirsiniz. Birliğinizi Android SDK ile düzgün bir şekilde ayarladıysanız, bunu derleyip çalıştırabilmeniz ve ardından zıplamak için ekrana dokunarak akıllı telefonunuzda oynamanız gerekir.

Öndeki yol

Açıkçası bunu tam bir oyun yapmak için ekleyeceğiniz çok şey var. Oyuncunun ölüp yeniden doğabilmesi gerekir. Ekstra seviyeler ve daha fazlasını eklemek istiyoruz.

Buradaki amacım size temel bir şeyi ne kadar çabuk başlatacağınızı göstermek. Bu talimatlara uyarak, sonsuz koşucunuzu hiçbir zaman Fizik gibi zor işleri halletmesine izin vererek derhal kurmanız gerekirdi.

Ne yapmak istediğinizi ve araştırmanızı yapmak istediğinizi biliyorsanız, düzgün bir oyun oluşturmak için bir kodlama sihirbazı olmanıza gerek yoktur!

Tarafından ızdırılmış bir AT&T notuna göre, Telefon arena, Amerika Birleşik Devletleri'ndeki Google Pixel 4 operatörlerinin litei bu efer gerçekten tamamlanmış olabilir. Notlara...

Şaşırtıcı bir hamleyle Google, Google Pixel 4 taarım aylarını beklenen lanmanından önce onayladı.Pixel 4'ün taarımıyla ilgili bir ızıntıdan onra, Google oyunun önüne geçme...

Bugün Oku