Temel Birlik Platformu Oyunu Nasıl Oluşturulur

Temel Birlik Platform Oyunu Oluşturma Bölümümüzün 1. Bölümünde, temel karakterinizi oluşturma, fizik, platform ve fare girişi ekleme adımlarını attık. Bundan sonraki bölümde, gelecekteki projelerde kullanabileceğiniz modeller ve ek Unity eklentileri bulmak için prosedürel platformlar, bir oyun menüsü ve bazı kaynaklar eklemeye gideceğiz.

Usul Platformları Yaratmak

Yani bu dersin bir bölümünde, karakterinizin etrafta dolaşabileceği ( ve kıyametine düştüğü) basit bir platform oluşturduk - ancak gerçek bir platform için ek platformlar eklememiz gerekiyor. Ancak, milyonlarca platform eklemek istemiyoruz - karakterimizin birlikte sıçradığı platformları otomatik olarak oluşturmak istiyoruz.

Bunun için, bir prefabrik olarak bilinen bir platform şablonuna ihtiyacımız var. Prefabrik prefabrik için kısadır ve basitçe önceden yapılmış demektir - genellikle tekrar tekrar kullanabileceğiniz bir oyun nesnesinin bir kopyası. Aslında, prefabrikler oyun nesnelerinin hiyerarşilerini içerebilir, bu da oyun nesnelerinin tüm sahnesini önceden oluşturabileceğiniz anlamına gelir.

Yapmanız gereken şey, Prefabs adlı yeni bir varlıklar klasörü oluşturmak, ardından platformumuzu Hiyerarşi panelinden bu yeni klasöre sürükleyip bırakmaktır. Prefabrikler, Hiyerarşi panelinde renk mavisi tarafından tanınacaktır.

Artık Birlik'e prosedürel platformlar oluşturmasını öğretmek için, GameManager adında bir senaryo oluşturmalı ve bunu kameraya bağlamalıyız. GameManager betikleri temel olarak motorun oyuna geçişi için önemli talimatlar içerir - bu durumda karakterimizle birlikte atlama platformları üretecektir.

Fotoğraf makinesine takmamızın sebebi kameranın hiçbir zaman yok edilmemesi ve sabit kalmasıdır - bu yüzden senaryo hiçbir zaman imha edilmemekte ve sabitlenerek sabit kalmaktadır.

İşte senaryonun içinde yer alması gereken şey:

Bu kodu biraz açıklamak gerekirse, hem prefabrik panel hem de küre (karakterimiz) için bir referans oluşturmak bizim için gereklidir, bu yüzden bunları editörünüzdeki özel yuvalarına sürükleyip bırakmanız gerekir.

Bu kod ayrıca üç özel değişken içerir - özel değişkenle başlayan satırlar . Bunlar prefabrik paneli aşağıdaki şekillerde (referans) oluşturacak:

  • Özel var sınır: yüzer, y eksenine bir sınır koyar, böylece karakterimiz bu sınırdan daha yükseğe atlandığında yeni bir panel oluşturulur.
  • Özel var rotasyon: Quaternion; sadece prefabriklerimizi başlatmak için gerekli bir rotasyon ekliyor - ancak rotasyon ekliyoruz = Quaternion.identify; çünkü bu, motoru oyun nesnesini döndürmemesini söyler. Nesne (prefabrik panellerimiz) tam anlamıyla dünya ile mükemmel bir şekilde hizalanacaktır.
  • Son özel değişken lastPlatformPosition, son platformun konumunu 3 boyutlu bir vektör olarak hatırlayacak ve kaydedecektir (temel olarak platformlar arkanızda kaybolmayacaktır, böylece isterseniz oyun dünyasında geriye doğru gidebilirsiniz).

Bir sonraki kod parçasında, her bir çerçeve için bir alan ekleyeceğiz (küremizin) sınırı aşmış olsun (yeni platformlar üretiyor) - eğer karakterimiz sınırın üzerindeyse, sınırı yükselteceğiz. Sondan daha yeni bir panel / platform oluşturmak için limit .

Bir sonraki adımımız, bir sonraki panel konumunu belirleyen kod eklemektir:

Bu kodda bir vektörün X ve Z değerlerinin (oyun dünyasındaki konumu) önceki platformlarla aynı olmadığından emin olmak için kullanıyoruz - bu yüzden prosedürle oluşturulan platformlarımız her zaman yükseklik olarak artacaktır.

Tabii ki, bu değerlerin kesinlikle yerleştirilmesini istemiyoruz - biraz rastgelelik iyi bir şey, yoksa sadece mükemmel bir merdiven yapıyoruz. Bu yüzden, Rastgele fonksiyonunu, -1 ve 2 değerleri arasında, X ve Z için rastgele değerler çağırmak için kullanıyoruz. Bu numaralarla oynayabiliyorsunuz.

Oyun Menüsü Oluşturmak

Şimdiye kadar, artan yükseklik ile zıplayabileceğiniz ve yönü kontrol etmek için fareyi hareket ettirebileceğiniz bir oyun yarattık. Sorun şu ki platformdan düşerseniz, sadece sonsuz bir şekilde düşeceksiniz - baştan başlamak için ölüm / oyun menüsünde senaryo yazmamız gerekecek.

Temel olarak, küremizin (karakterimizin) oyunun ilk platformunun altına düşüp düşmediğini kontrol eden bir senaryo yazacağız. Öyleyse, komut dosyası yeni bir sahne yükler.

İlk adımımız kürenin belirli bir eşiğin altına düşüp düşmediğini kontrol etmek olacaktır. Daha önce yaptığımız GameManager betiğine gidin ve güncelleme işlevinin if ifadesine bakın.

Burada ifade edersek, küremizin pozisyonunun Y-pozisyonunun -2.0 biriminin altında olup olmadığını kontrol etmek için kullanacağız - eğer, bizim özel fonksiyon oyunumuzun devam etmesi durumunda, bu betiğin bir kısmı kendi kendini açıklayıcıdır.

Bu son kod biti, bir oyun üzerinde oyun oynamak ve oyun menüsünü yüklemek için kullanılan işlevdir.

PRO TIP: Sorun bilgisayarınız veya dizüstü bilgisayar / dizüstü bilgisayar ile yapılmışsa, depoları tarayabilen ve bozuk ve eksik dosyaları değiştirebilen Reimage Plus Yazılımı'nı kullanmayı denemeniz gerekir. Bu, çoğu durumda, sorunun sistem bozulmasından kaynaklandığı yerlerde çalışır. Reimage Plus'ı tıklayarak buraya tıklayarak indirebilirsiniz.

Bu, Unity'nin Uygulama sınıfına dayanıyor - LoadLevel fonksiyonunu çağırmak için yeni bir sahne oluşturmamız gerekiyor. Bu durumda, oyunumuz sadece bir oyun menüsü. Unutmayın ki Unity'deki her şey seviyedir . Ana menüler (Oyuna Başla - Seçenekler - Krediler - vb) temel olarak tıklanabilir metnin bitleri ile sadece seviye / sahnelerdir. Skyrim'in yükleme ekranı gibi bir şey, ha? Onlar bir yükleme çubuğu ile boş bir dünya alanında sadece 3D modelleri.

Her halükarda, Dosya> Yeni Sahne ile bir sahne oluşturmalı ve onu kaydederken Menü ismini vermeliyiz. Sonra her iki sahneyi de oluşturma sürecine ekleyeceğiz. Bu Dosya> Yapı Ayarları ile yapılır.

Menü sahnesinin hala açık olması gerekir, bu yüzden Geçerli Ekle düğmesine tıklayın ve sahneyi Yapı Ayarları'na ekleyin - bunu seviye sahnesinde tekrar yapın.

Oyunda öldüğümüzde, yarattığımız senaryo bizi oyun seviyesinden menü sahnesine geçirmeli.

Oyuncular için Başlat Düğmesi Ekleme

Şimdi, oyunu bir deneme modunda oynayabiliyoruz, ancak şu an itibariyle, bu oyunu bir yere yükleyeceksek, oyuncuların oyuna başlamaları mümkün değil. Bu yüzden oyuna başlamak için bir butona sahip bir oyun menüsü oluşturmamız gerekiyor.

Bu yüzden oyun menüsü sahnesine geçin ve bu biti kameraya ekleyin ( Inspector panelinde, bu eğiticinin pt. 1'inden hatırlayın?).

  • Açık Bayraklar: Düz Renk
  • Arka plan: # 000
  • Genişlik: 200
  • Yükseklik: 60

Bu bizim oyun menü için sağlam bir siyah arka plan verecektir - bu RGB değerlerinde yapılır, onaltılık değil - yani mavi 001, yeşil 010, kırmızı 100, vb. Bunu sizin için açıklayabilirim, ama tek ihtiyacınız olan Belirli bir renk istiyorsanız Google RGB seçici seçmektir.

Oyuna başlamak için düğmemizi eklememiz gerekiyor. Bu, UI öğeleri aracılığıyla yapılır - temel olarak, UI öğelerini, Hiyerarşi paneli aracılığıyla, 3B öğeleri eklediğimiz gibi ekleyebiliriz. Şimdi devam edin ve bir UI düğmesi oluşturun ve Hiyerarşi panelinde bazı yeni öğeler göreceksiniz:

  • EventSystem
  • Tuval
  • Buton
  • Metin

Bunu aşmak için - tuval tüm UI öğeleri için bizim konteynırdır ve bunu duyarlı hale getirebiliriz ( yanıt olarak ekran boyutuna ölçekleme anlamına gelir, sorduğunuz sorulara cevap verecek gibi tepki vermez. En iyi AI komut dosyalarına bırakılır). Her durumda, düğmenin konumunu şu şekilde değiştireceğiz:

  • Rect Dönüşümü {Pos X: 0, Poz Y: 0, Poz Z: 0}
  • Rect Dönüşümü {Genişlik: 200, Yükseklik: 60}

Bunu biraz daha zarif yapmak için düğmenin kaynak görüntüsünü kaldırabilir ve bunun için bir renk ayarlayabilirsiniz. Düğmenin metnini değiştirmek için, Metin öğesini START GAME gibi bir şeye düzenleyin ve 16'ya yakın bir yazı tipi boyutu verin.

Düğmeyi tıklatmak için Button öğesindeki UIController komut dosyasına bir işlev ekleyeceğiz. Sadece aşağıdaki kodun birazını ekleyin:

Bu işlevi düğmenin Müfettiş ayarlarına ve Düğme (Komut Dosyası) bileşen ayarlarına uygulayın, sadece oyuncu Başlat düğmesine bastığında yürüten bir işlev ekleyeceğiz. Bu yüzden On Click () olayına bir işlev ekleyin ve Start Game düğmesini sürükleyerek giriş alanına bırakın. Son olarak, UIController komut dosyasından ( UIController.StartGame) yeni yapılmış işlevi seçin.

Bu işlevi düğmenin Müfettiş ayarlarında uygulayabiliriz. Düğme (Komut Dosyası) bileşen ayarlarında, bir oyuncu her tıkladığında bir işlevi yürütebiliriz. Bunun için, + simgesini tıklatarak On Click () olayına yeni bir işlev ekliyoruz. Şimdi düğmenin kendisini giriş alanına sürükleyip bırakabiliriz. Daha sonra UIController komut dosyasından (UIController.StartGame) yazdığımız fonksiyonu seçtik.

Bir WebGL Tarayıcı Oyununu Nasıl Ihracat / Yayınlama

Oluşturma ayarlarını açın ve hedef platformunuz olarak WebGL'yi seçin. Şimdi Platform Değiştir düğmesine tıklayın ve son olarak Oluştur düğmesine tıklayın ve oyununuza bir başlık verin. Oluşturulduktan sonra, herhangi bir WebGL etkin tarayıcısında açılıp / görüntülenebilen bir .HTML dosyası olarak dışa aktarılır / kaydedilir. Oyununuzu yayınlamak istiyorsanız, bunun için iki yöntem vardır:

  • Oyununuzu bir çeşit dosya sunucusuna (Dropbox, Google Drive, vb.) Yükleyin ve bağlantıyı paylaşın. Bu, arkadaşlarınıza veya potansiyel müşterilerinize ( oyununuzu satın alacak veya sizinle bir reklam paylaşımı geliri oluşturacak olan oyun portalı web sitelerine) göstermek istediğiniz küçük demolar için kullanışlıdır .
  • Oyununuzu sahip olduğunuz bir FTP sunucusuna yükleyin ve bir