ServantOfAllah_93

Yeni üye
29 Eyl 2023
3
0
0
33
(6) Ankara
Yumurtlanan custom c++ aktör sınıfını editörden editleyemiyorum. Onun yerine kod üzerinden nasıl editleyip yumurtlayabilirim?
https://www.youtube.com/watch?v=i8HeSi8TkMY

Kod üzerinden mesh ekleme?
Edit : Discord'da da sormuştum, doğrusunu şimdi öğrendim. Static Mesh componentinin mesh kısmını kod üzerinden tanımlamak için constructorda atanması gerekiyormş. BeginPlay'e yazarak hata yapmışım. Arkadaşın dediğini yaptım, çalıştı. Error loguna' bakmak hiç aklıma gelmedi : "FObjectFinders can't be used outside of constructors"...
 
Evet o sadece contructor içinde çalışır ama daha önemli ve öncelikli bir yanlışın var onu düzelteyim.
1. Yapman gereken nedir: Normalde o yaptığın BP yi çift tıklayıp açmalı ve oradan static mesh component ına istediğin mesh i  C++ kodundan değil blueprint editor içerisinde atamalısın. Senin videoda yaptığına "instance editing" deniyor. Levele koyduktan sonra "instance" üzerinden edit yapıyorsun. Yapmak istediğin ise instance editing değil. Sen ilk değer vermek istiyorsun. Bunu o asset e çift tıklıyorsun ve sağdaki component details panelden yapman gerekiyor. Bunu yapıp save ettiğinde ne zaman o BP yi koyarsan o mesh i orada göreceksin zaten. Yapman gereken şey bu.
2. ConstructorHelpers çok nadir durumlar dışında kullanılmaz ve kullanılması tavsiye edilmez. Direk kod referansıdır çünkü. O assetin ismi ya da yeri değiştiğinde sorun çıkar. Kodun takibi de zorlaşır. Ayrıca diğer çalışma arkadaşlarına da karmaşa yaratır. Tavsiye edilen yöntem bu sorunların çıkma ihtimalinin olmadığı yukardaki yöntemi kullanmandır.
3. Eğer yeni başladıysan "Class Default Object" nedir öğrenmeni tavsiye ederim bu konu ile ilgili.
4. ConstructorHelper kullanmanın daha faydalı olabileceği tek bir durum şöyle olabilir. Bir editör aracı geliştiriyorsun diğer "artist" lerin kullanabilmesi için (yani oyunla ilgisi yok direk olarak). Sisteminin BP açılmadan dahi direk çalışmasını istiyorsun ve oradaki değerin değiştirilememesini istiyorsun. Çünkü her zaman o asset olması gerekiyor. Bizim şirkette böyle bir durumda "ConstructorHelper" ı izin alarak kullanabiliyorsun. Diğer durumlarda sildiriyorlar.