2016-03-29 35 views
0

Herkese iyi günler.Unity3D'de Bir Görev Sisteminin Uygulanması

Unity3D'de hikaye odaklı bir oyun üzerinde çalışıyorum ve oyuncunun hikaye boyunca ilerlemek için tamamlaması gereken görevlere sahip olmak istiyorum.

Görev sistemi uygulamak için en iyi ve en etkili yol hangisidir? Şu

aklımda aşağıdaki veri yapısı vardır:

  • Görev (Sınıf)
    • Görev adını
    • Görev tanımı
    • Görev Ödül
    • Görev Yeri
    • Bu bir yan q mı UEST?
    • Ana görev adı nedir?
    • Ana araştırmaya devam etmek gerekli mi?
  • QuestManager (Sınıf) Tüm görevler
  • anda peşinde oyun hangisi arayış
  • ait
    • Listesi?
    • Görevlerin listesi ve mevcut görev için geçici görevler
    • Oyunun amacı, şu anki görevde tamamlamayı amaçlamaktadır? oyuncusu arayışı/objektif/yan görevi tamamlamış ve

veri yapısı oldukça makul görünüyor ama ben böyle bir jenerik şekilde nasıl uygulanacağı bilmiyorum buna göre olayları kolları olan

  • Çekler olsun o Oyunumda kolayca ve hızlı bir şekilde görevler oluşturabilirim. Herhangi bir fikir?

  • +3

    Sorunun ne olduğunu görmüyorum. Listeledikleriniz çok genel ve makul. Bunu uygulamak konusunda kafa karıştırıcı nedir? Her bir mermi noktası için ya yerleşik bir yazı tipi kullanın ya da kendi sınıfınızı yazın –

    +0

    @GordonAllocman Bu karışıklık, görev sisteminin her bir parçasını yaptıktan ve bunların en üst düzey işlevini oluşturmak için hepsini birbirine bağladıktan sonra başlar. Birisi bu mermi noktalarını aldığında ve bu işlevselliğe ulaşmak için nasıl bağlanacağına dair bir örnek gösterdiğinde daha az kafa karıştırıcı olur. – Tayab

    +0

    Oyuncunun bir QuestManager örneği olduğunu düşünürdüm ve QuestManager'ın tüm görevlerin bir listesini yaptığını söylediniz. hepsi bu şekilde parçalanıyor. Bunu yapmanın sadece bir yolu var, giderken onu değiştirmen gerektiğini fark edebilirsin ama bu kesinlikle makul bir başlangıç. Sınıfları kendiniz yaratmayı denemenizi öneririm ve eğer karışıklıklarla karşılaşırsanız, denediğiniz kodu yazdıysanız ve nerede takıldınız –

    cevap

    2

    Bulunduğunuz genel fikir iyi görünüyor. Bazı şeyleri değiştiririm. Muhtemelen Quest ödülünü de bir sınıf yapardım. Bu şekilde ödülleri özelleştirmek daha kolay .. Ayrıca "Ana arayışın adı nedir?" bir Quest nesnesini (mevcutsa) yakalayan bir yöntem. Böylelikle ana görevi kolayca alt-görev içinde referans alabilirsiniz.

    Tüm bu bilgileri depolamak için bir veritabanı kullandığınızı varsayıyorum. Eğer değilse sqlite kullanmanızı öneririm.

    Böylelikle, daha fazla görev eklemek için gerekli olan her şey, kullanıcılarınıza güncelleştirilmiş bir veritabanı dosyası göndermektir. Ayrıca bir db'ye veri eklemek de oldukça kolay/hızlı. Zor kodlama yok vb.

    Böylece, bu Görev sınıflarını Model olarak oluşturursunuz, verileri doldurun ve sonra bu nesneyi JSON'a dönüştürün. Daha sonra veritabanında saklanabilir. Bir kez çekildiğinde Json'u bir Görev Nesnesine dönüştürebilirsiniz.

    Kullanım Newton-soft JsonSqlite

    birlikte bunu yapmak Yoksa bu şekilde yapmak da yapabilirsiniz: Walkthrough: Simple Object Model and Query

    +0

    Cevabınız için teşekkürler. Ben bir veritabanı kullanmıyorum ve tüm görev yerleri benzersiz olduğu için oyun bağlamında görevler için kullanamadım. Herkesin aklında ne varsa onu koruyacağım ve görev sistemini yazmaya başlayacağım. Güncelleştirmeler gönderecektir – Tayab

    +0

    @Tayab Sadece konumların benzersiz olması nedeniyle bir veritabanı kullanamayacağınız anlamına gelmez ... Tam tersi. –