Şimdi Ara

Unity Runtime Obje Oluşturma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
7
Cevap
0
Favori
540
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
Öne Çıkar
0 oy
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar Unity ile oyun geliştirirken takıldığım bir sorun var. Oyunda 20 karakter var ve bunlardan kullanıcının seçiceği 1 tanesini oyun çalışırken sahnede olmasını istiyorum. Karakterlerin hepsinin script, animasyon vs oluşturup "Prefabs" adlı klasörün içinde topladım. Bunun için dizi oluşturup o elemanı çağırabilirim fakat direk "Prefabs" klasöründen şunu getir diyebilir miyim ?

    İnternette biraz araştırdım Unity'nin kendi içerisinde olan küp, silindir, küre gibi objeleri oluşturmayı bulabildim. Bir diğer bulduğum farklı yöntem ise Resource.Load fonksiyonu ve türevleri idi fakat bunlarda materyal ve texture için kullanılanları buldum. Aynı mantığı GameObject için uygulayınca hata ile karşılaştım.



    < Bu mesaj bu kişi tarafından değiştirildi Core. -- 20 Ağustos 2015; 18:23:29 >



    _____________________________
  • Resource klasörüne attığınız herhangi bir prefabı Resource.Load metoduyla sorunsuz bir şekilde cagirabilmeniz lazım.

    < Bu ileti mobil sürüm kullanılarak atıldı >
    _____________________________
  • Gameobject dizisi olusturup secmek isini gorur herhalde neden kullanmadigini merak ettim.

    Resources.Load kullanabilmek icin Resources klasorune icine prefablerini koyman lazim diye biliyorum

    < Bu ileti mobil sürüm kullanılarak atıldı >
    _____________________________
  • hsmtn, Resorces.Load ile cağırdığımda null reference hatası alıyorum, objeyi bulamıyor. Objenin bulunduğu dizin "Assets/Prefabs/karakter1.prefab". Yol olarak "karakter1.prefab" , "Assets/Prefabs/karakter1.prefab" ve bunların sonunda .prefab olmadan da denemdim ama hep aynı hatayı verdi.

    bersgurs, dizi kullandamadan sanırım daha iyi optimize edilebilir diye düşünüyorum. Gameobject türünde 20 elemanlı dizi oluşturup bunun için sadece 1 tanesini kullancağım. Bunun yerine menü kısmından kullanıcının seçtiği karakterin adını alıp diğer sahnede sadece onu çağırmak daha iyi optimizasyon olur diye düşünüyorum.
    Bu "Resource" klasörü dediğiniz sanırım "Assets" ile aynı çünkü öyle bir klasör göremedim.



    < Bu mesaj bu kişi tarafından değiştirildi Core. -- 21 Ağustos 2015; 16:24:14 >
    _____________________________
  • Core. kullanıcısına yanıt
    Resources klasorunu kendiniz oluşturmanız gerekiyor Assets klasoru içinde ondan sonra prefablarınızı o klasore koyacaksınız.

    < Bu ileti tablet sürüm kullanılarak atıldı >
    _____________________________
  • kardeş önce,project bölümünde yeni bir klasör oluştur ve adını Resources yap(R büyük diğer harfler küçük olacak.yanlış yazarsan kodun hata verir.) sonra,oluşturmak istediğin nesnelerin prefab'ını bu klasörün içine at.sonra da, kullanacağın script'te;

    GameObject xyz = Resources.Load("prefab'ınİsminiBurayaYaz") as GameObject;

    prefabın adını tam olarak hatasız bir şekilde tırnakların arasına yazman gerek yoksa kodun çalışmaz.sonra da;

    GameObject abc = (GameObject) Instantiate( xyz, transform.position, Quaternion.identity);

    abc oyunda oluşturulacak olan cismin adı olacak .abc ve xyz isimlerini isteğin gibi değiştir. transform.position yerine nesnenin oluşmasını istediğin konumu yaz.
    _____________________________
  • İlgilendiğiniz için teşekkür ederim dediklerinizi yaptım oldu.



    < Bu mesaj bu kişi tarafından değiştirildi Core. -- 21 Ağustos 2015; 22:58:10 >
    _____________________________
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.