Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz. Devamını oku.

Dünyanın en eski video oyunlarından bazılarında öncülük eden sağlık, günümüzün en popüler oyunlarının çoğunda varlığını sürdüren yaygın bir mekaniktir. Sağlık, karmaşık dövüş mekaniklerini kullanmayı, oyuncu ilerlemesi oluşturmayı ve oyununuzu daha sezgisel hale getirmeyi mümkün kılar. Peki kendi oyunlarınıza sağlık sistemini nasıl eklersiniz?

Unity3D, 3B oyunlara 2B UI öğeleri eklemeyi kolaylaştırır, bu nedenle sağlık çubuklarını ilk kez keşfetmeye başlamak için harika bir yerdir.

Ne öğreneceksin

Yüzeyde, bu proje karmaşık görünmeyebilir. Buna rağmen çalışan bir sağlık çubuğu oluşturmak için birkaç önemli Unity3D kodlama kavramını anlamanız gerekir. Bu, aşağıdakiler dahil olmak üzere, bu projede ilerlerken öğrenecek çok şey olduğu anlamına gelir:

  • Unity3D'de 2B UI öğeleri/sprite'lar nasıl oluşturulur?
  • instagram viewer
  • Oyun nesnesi bileşenleri kodla nasıl düzenlenir.
  • Unity3D'de komut dosyaları arasında değişkenler nasıl paylaşılır.

1. Adım: Sahnenizi Kurun

Sağlık çubuğunuzu kodlamaya başlamadan önce, uygulanacağı bir oyuncu modeli olan bir sahneye ihtiyacınız var. Başlamak için sayfamızı takip edebilirsiniz. fizik tabanlı Unity3D karakter denetleyicisi kılavuzu temel kontrollere sahip bir oyuncu modeli oluşturmak için.

Yerinde bir sahne ve oyuncu modeli ile, bir UI öğesi eklemenin zamanı geldi. Hiyerarşi penceresinin içine sağ tıklayın ve seçin kullanıcı arayüzü > resim. Bu, hiyerarşinizde iki yeni öğe oluşturacaktır: bir Canvas ana nesnesi ve bir Image alt nesnesi. Alt nesnenin adını Healthbar olarak değiştirin. Denetçiyi kullanarak sağlık çubuğunuz için bir genişlik, yükseklik ve konum seçin.

Sağlık çubuğu için arka plan/kenarlık görevi görmesi için rengi siyah olarak ayarlanmış biraz daha büyük bir UI görüntüsü ekleyebilirsiniz. Arkasında görüntülenmesi için hiyerarşideki sağlık çubuğunun üzerinde olduğundan emin olun.

Bu kullanıcı arabirimi öğesi, sağlık çubuğunuzun temeli olarak çalışır, ancak onu canlandırmak için yerinde bir karaktere de ihtiyacınız vardır. Proje bölmesine gidin, sağ tıklayın ve seçin Yaratmak > 2 boyutlu > Spritelar > Kare.

Hiyerarşiden Sağlık Çubuğunu seçin ve az önce oluşturduğunuz hareketli grafiği denetçinin içindeki Kaynak Görüntü seçim kutusuna sürükleyin. Ayrıca değiştirebilirsiniz Resim türü için Doldurulmuş, Dolgu Yöntemi Yatay'a ve Kökeni Doldur sola. Şimdi oyununuzu çalıştırırsanız ve Doldurma Miktarı kaydırıcıyı kaydırarak sağlık çubuğunuzun küçüldüğünü ve büyüdüğünü görmelisiniz.

Kullanıcı arabirimi bileşen menüsünü göremiyorsanız şuraya gidin: Pencere > Paket Yöneticisive 2B paketin kurulu olduğundan emin olun.

2. Adım: Bir Sağlık Değişkeni Ekleyin

Durumunu dikte edecek bir sağlık değişkeni olmadan bir sağlık çubuğu oluşturmanın pek bir anlamı olmazdı. Diğer betiklerin bu değişkene erişebilmesi gerekir ve onu merkezi bir yere koymak mantıklıdır. Karakter Denetimi komut dosyasına genel kayan nokta olarak ekleyin:

halkbatmadan yüzmek OyuncuSağlığı = 1.0f;

Bu değişken için bir kayan nokta kullanmak, sağlık çubuğu UI görüntüsü Doldurma Miktarı değişkeniyle eşleşmesi için 0 ile 100 arasında herhangi bir yüzdeyi kolayca temsil edebileceğiniz anlamına gelir. Örneğin, 0,5f değerindeki bir oyuncu Sağlığı, sağlık çubuğunun genişliğinin %50'sidir.

3. Adım: Unity'de Komut Dosyaları Arasında Değişkenleri Paylaşın

Değişkenler genellikle kendi işlevleri ve betikleri içinde çalışır. Bu, koda çalışmak istediğiniz değişkenleri nerede bulacağını söylemek için adımlar atmadığınız sürece, diğer işlevlerden ve komut dizilerinden erişilemez hale getirir.

Kodu barındırmak için Sağlık adlı yeni bir komut dosyası oluşturarak başlayın. Bu betiği, ilk adımda oluşturulan Healthbar UI öğesine sürükleyip bırakabilirsiniz. Aşağıdaki kod, void Update() işlevine gider.

Bu süreç, değişkene sahip olan oyun nesnesini bulmakla başlar. Bu durumda, bu, Character_Model nesnesidir:

GameObject Karakter_Model = GameObject. Bulmak("Karakter_Modeli");

Ardından, çalışmanız gereken değişkeni içeren komut dosyası bileşenini bulma zamanı.

Karakter_Kontrol karakter_Kontrol = Karakter_Model. GetComponent();

Ve son olarak, aradığınız belirli değişkeni çıkarabilirsiniz. Bu durumda, karakter denetleyicinize eklediğiniz playerHealth değişkenidir. Bunu, currentHealth adlı geçerli betik içindeki bir kayan değişkene atayın.

currentHealth = karakter_Kontrol.playerHealth;

İhtiyacınız olan değişkeni elde etmek sadece birkaç satırlık bir kod alır ve oyuncunuzun sağlığına erişmeniz gerektiğinde bu yöntemi uygulayabilirsiniz. İşiniz bittiğinde kodunuz şöyle görünmelidir:

kullanarak Sistem. Koleksiyonlar;
kullanarak Sistem. Koleksiyonlar. Genel;
kullanarak Birlik Motoru;
kullanarak UnityEngine. kullanıcı arayüzü;

halksınıfSağlık: MonoDavranış
{
halkbatmadan yüzmek mevcut Sağlık;

geçersizBaşlangıç()
{
}

geçersizGüncelleme()
{
GameObject Karakter_Model = GameObject. Bulmak("Karakter_Modeli");
Karakter_Kontrol karakter_Kontrol = Karakter_Model. GetComponent();
currentHealth = karakter_Kontrol.playerHealth;
}
}

4. Adım: UI Sağlık Çubuğu Oyun Nesnesini Programlayın

Artık bir sağlık çubuğu kullanıcı arabirimi öğesi oluşturduğunuza ve oyuncu sağlığı değişkenine erişiminiz olduğuna göre, bunları birlikte çalıştırmanın zamanı geldi. Başlamak için sağlık çubuğunuzun resim bileşenini içerecek özel bir statik değişken ekleyin:

özelstatik Görüntü Sağlık Çubuğu;

Ardından görüntü bileşenini, yalnızca bir kez çalışan void Start() işlevinde bu değişkene atayabilirsiniz.

Sağlık Çubuğu = GetComponent();

Artık tüm değişkenlerinizi yerleştirdiğinize göre, sağlık çubuğu kullanıcı arabirimi nesnesinin dolgu genişliğini ayarlamak için önceki adımdaki kodu kullanabilirsiniz. Burada herhangi bir dönüştürme yapmanıza gerek yoktur; hem oyuncu sağlığı hem de sağlık çubuğu doluluk miktarı kayan değişkenlerdir.

Healthbar.fillAmount = geçerliSağlık;

Bu kod yerindeyken, sağlık çubuğunuz Karakter_Kontrol kodunda bulunan sağlık değişkenine göre dolacak ve azalacaktır. Yine de bu biraz sıkıcı ve kesinlikle biraz renkle yapabilirdi.

Oyuncunun çok fazla sağlığı olduğunda sağlık çubuğunu açık yeşil yapmak için yeni bir renk ekleyerek başlayın.

Renk yeşilSağlık = yeni Renk(0.6f, 1, 0.6f, 1);

Ardından, oyuncunun sağlığının 0,3f'nin üzerinde, yani %30 veya daha fazla olup olmadığını kontrol etmek için bir if ifadesi ekleyin. 0,3f'den yüksekse, sağlık çubuğunu az önce eklediğiniz renkle eşleşecek şekilde ayarlayın. 0,3f'nin altındaysa, sağlık çubuğunu kırmızıya çevirin.

eğer (geçerli Sağlık >= 0.3f) {
Sağlık çubuğu.renk = yeşilSağlık;
} başka {
Sağlık çubuğu.renk = Renk.kırmızı;
}

5. Adım: Kodu Test Etme

Aşağıdaki tam koddan da görebileceğiniz gibi, hepsi bir arada olduğunda bu proje oldukça basittir. Elbette, yine de kodunuzu test etmenin bir yoluna ihtiyacınız var.

kullanarak Sistem. Koleksiyonlar;
kullanarak Sistem. Koleksiyonlar. Genel;
kullanarak Birlik Motoru;
kullanarak UnityEngine. kullanıcı arayüzü;

halksınıfSağlık: MonoDavranış
{
özelstatik Görüntü Sağlık Çubuğu;
halkbatmadan yüzmek mevcut Sağlık;

geçersizBaşlangıç()
{
Sağlık Çubuğu = GetComponent();
}

geçersizGüncelleme()
{
GameObject Karakter_Model = GameObject. Bulmak("Karakter_Modeli");
Karakter_Kontrol karakter_Kontrol = Karakter_Model. GetComponent();
currentHealth = karakter_Kontrol.playerHealth;
Healthbar.fillAmount = geçerliSağlık;

Renk yeşilSağlık = yeni Renk(0.6f, 1, 0.6f, 1);

eğer (geçerli Sağlık >= 0.3f) {
Sağlık çubuğu.renk = yeşilSağlık;
} başka {
Sağlık çubuğu.renk = Renk.kırmızı;
}
}
}

Testi mümkün kılmak için Character_Control betiğine tek bir kod satırı ekleyebilirsiniz. Oyuncu ilerlemek için W tuşuna her bastığında, az miktarda sağlığı kaldırın. Aynı sonuçları elde etmek için playerHealth değişkenine erişimi olan herhangi bir komut dosyasına aynı kodu ekleyebilirsiniz:

oyuncuSağlığı -= 0.001f;

Unity projenize benzersiz varlıklar eklemeyi de düşünebilirsiniz. Yapabilirsiniz ücretsiz Unity varlıkları bulun size para harcamak zorunda kalmadan projenizi canlandırma şansı veriyor.

Unity3D'de Sağlık Çubukları Oluşturma

Karakteriniz için bir sağlık çubuğuna sahip olduğunuza göre oyununuz şekillenmeye başlıyor. Hâlâ yapılacak çok iş var, ancak artık gerçek ilerleme kaydetmeye başlamak için ihtiyaç duyduğunuz bazı temel becerilere sahip olmalısınız. Elbette, yine de, daha fazla kılavuz okumaktan asla zarar gelmez.