DonanımHaber Mini sürüm 2 Ocak 2026 tarihi itibariyle kullanımdan kalkacaktır. Bunun yerine daha hızlı bir deneyim için DH Android veya DH iOS uygulamalarını kullanabilirsiniz.
Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
542
Tıklama
0
Öne Çıkarma
Unity Runtime Obje Oluşturma
C
10 yıl (1268 mesaj)
Binbaşı
Konu Sahibi

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 >

H
10 yıl (120 mesaj)
Teğmen

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ı >

B
10 yıl (3368 mesaj)
Binbaşı

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ı >

C
10 yıl (1268 mesaj)
Binbaşı
Konu Sahibi

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 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @hsmtn , @bersgurs
B
10 yıl (3368 mesaj)
Binbaşı

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ı >


Bu mesajda bahsedilenler: @Core.
H
10 yıl (120 mesaj)
Teğmen

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.



C
10 yıl (1268 mesaj)
Binbaşı
Konu Sahibi

İ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 >


Bu mesajda bahsedilenler: @hsmtn , @bersgurs
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.