dgnsparta

Üye
18 Nis 2022
52
-1
6
Belirtilmemiş
Arkadaşlar merhaba.

Map üzerinde zaten varolan bir aktör ile etkileşime girip bu aktörü envanterime alabiliyorum. Basit bir save ve load sistemim var. Bu aktör basit bir şekilde save edilebiliyor ve daha sonra load edilebiliyor. Yani save ettikten sonra oyuna yeniden başlayıp load ettiğimde envanterde bu aktörü görebiliyorum. Buraya kadar bir sıkıntı yok.

Sorun aktör save edilmeden önce destroy edilmesine rağmen yeni oyuna başlayıp load edildiğinde hala var olmaya devam etmesi. E ben bunu destroy etmiştim save etmeden önce. Neden load'ta tekrar yükleniyor.

Konuyla ilgili her türlü yardım son derece mutlu eder. Bir iki blueprint kodu üstüme atarsanız gerçekten minnettar olurum :D
 
Editor de bir map i açtığında, ekranda ne görüyorsan, ya da başka bir deyişle outliner da neler listelenmişse, o obje lerin hepsi level yeniden başladığında doğal olarak orada olacaktır. Leveli "play" modunda başlatıp, "runtime" da bir objeyi sonradan destroy etmiş olman, levelin yapısında değişiklik yaptığın anlamına gelmez. O obje editör de, yani sağdaki outliner panelinde görülüyorsa, levelin bir parçasıdır ve level her yüklendiğinde orada olacaktır. Şimdi sorunu eğer anladıysan, çözmen basit olacaktır.
1. Ya level başında önceden yapmış olduğun "Save" dosyasını yüklediğinde o objeyi de destroy edecek bir mantık kuracaksın.
2. Ya da alınabilecek tüm "item" lar level de hali hazırda bulunmamalı. SaveGame durumuna göre, ya da envanter durumuna göre "runtime" da oyun başladıktan sonra dinamik olarak "spawn" edilmeli. Bu durumda zaten envanterinde kayıtlı bulunan bir objeyi atlayarak "spawn" edilmemesini sağlamalısın.
Genellikle profesyonel oyunlar 2 nci seçeneği kullanırlar.
Eğer sorunu doğru anlamışsam cevap bu. Anlayamamışsam başka arkadaşlar yardım ederler.
 
Son düzenleme:
Tamamen doğru anlamışsınız :) 2.Seçenek bana da mantıklı geldi. Bir deneme yapacağım bu akşam. Sadece sıkıntı bir daha "spawn edilmemesini sağlamak" olacak gibi duruyor benim için. Muhtemelen do once işe yaramaz bir sonraki yüklemede.