looks like you are setting/reading a different bool. You could throw a print string on the false pin of your branch to double check if that is where it is failing
I have a problem with spawn actor.When i try to spawn actor it’s not working.Idk why its happening.ı try to when user pressing in button spawn actor in the level.
Are you sure that your boolean is true? can you connect false pin of the branch too just to control?
well i try both.And i see when ı look print strings uı boolean is working but level boolean not working.
ı try to connect to false and its spawning to always.But ı want just spawn when ı clicked to in the uı button
Then the way you are setting the boolean is wrong. Can you show how you are setting the boolean, and what you are saving in the market ui variable? (Like where you set it)
well first ı try to save how much pressing to button and load in the level bp and loop to actor.But ı cant figure out.Then i think if i put the boolean in uı and cast in the level then bring to boolean then spawn the actor ı guess it’s enough to me.But ı cant figure out again.1.jpg is uı bp and 2.jpg is level bp.(Now ı dont use save-load system and yes ı know save-load system but when ı try to use uı-level save-load system its really complice) sorry about my bad english.
Are you Turkish by any chance?
Hocam türk müsünüz ayı yazıyor şimdi gördüm, türkçe yardımcı olayım isterseniz?
Çok güzel olur.Şimdi hocam şöyle anlatıyım.Telefon uı yaptım ve telefon uı dan market kısmına girince market uı acılıyor.Simdi bu market uı’ın içersinden oyuncak ayı alınca level’a spawnlanmasını istiyorum.Olayı kısaca anlamışsındır.Şimdi bu bool’u false olarak ayarladım.Button’a basıldığındaysa true olarak set’ledim. Yani basınca true dönecek.Level’a castladım ve bu ui’daki bool true’ya dönünce spawn’lansın istedim ancak olmadı ve sıkıntı şu hala olması gerektiğini düşündüğüm için sorunu bulamıyorum.
Görebildiğim kadarıyla hocam market ui variable ı doğru ui’a reference vermiyor. O variable ı nerede atadığınızı atabilir misiniz?
Siz market ui daki bool a bakmaya çalışıyorsunuz fakat market ui olarak kaydettiğiniz şey doğru bir instance değil. character blueprint’inizde UI ı eklediğinizde MarketUi diye bir variable a kaydetmenizi, daha sonra da 0 indeksli oyuncu pawn’ını bulup, kendi blueprint inize cast edip, ordan bu variable ı çekmenizi tavsiye ederim
0 indeksli karakter’de create widget node’unu kullanarak market widget ref olusturdum ve level bp’de çektim.Ancak yine olmadı.(Instance Editable yaptım)
Peki hocam, tüm bu kısmı karakter blueprint inize taşıyabilir misiniz? Yani karakter blueprint iniz içerisinde ayıyı spawnlamayı deneseniz?
Çünkü en optimal şekli karakterinize “Spawn Ayı” gibi bir fonksiyon verip, UI dan bu fonksiyonu çağırmanız olur, Böylece hem her tick process meşgul etmezsiniz, hem de yazılım paradigmalarına daha uygun olur.
Ama isterseniz şimdilik bu kısmı direkt kopyalayıp ana karakterinizin event tick ine yapıştırırsanız (get player character ve casting kısmına gerek yok), ve çalışırsa, dediğim şekle çekmenize yardımcı olabilirim. Eğer böyle yaparsanız, daha sonra başka bir bölümde bir daha aynı işi yapmak isterseniz bir daha yazmamanızı da sağlar.
Şimdi şöyle bu seferde birkaç sorunla karşılaştım.Aynı olayı karakterde’de yapıp event ticke bağladım.Karakter’e scene atadım ve world transformu ona bağladım.Spawn’ı truye bağlayınca hiçbir şey olmuyor.Ancak false’a bağlıyınca yine aynı sekilde sürekli spawn’lanıyor ancak bu sefer actor gözükmüyor.Yani spawnlanıyor ancak actor gözükmüyor.(Level’da gözüküyolardı). Acaba neden olay sadece false’dayken çalışıyor ?
işin saçma kısmı false’da kusursuz çalışıp true’da çalışmaması.Hayır uı’da bool’dan sonraki kısım da kusursuz çalışıyor.Anlamadım.
Bool u başka bir yerde sürekli false a eşitliyor olabilir misiniz? Şunu deneyebilir misiniz:
Karakterinizde yeni bir fonksiyon yaratın, ve bu fonksiyon çağırıldığında bir ayı yaratsın. (branch dan sonrasını yapsın yani)
UI’ınız construct edildiğinde owner’ını bulup, karakterinize cast edip Owner adlı bir variable a kaydetsin.
Butona basılınca, owner daki bu fonksiyonu çağırın.
Spawnlandıktan sonra resetleyeyim tekrar diyip de bir yerde event tick içinde sürekli false atıyor olabilirsiniz. Bahsettiğim şekilde yaparsanız hem daha sonrasında geliştirmeniz kolay olur, hem bu tür bir şeyden kaçınırsınız, hem de her tick kontrol etmeniz gerekmez.
Olustu hocam’da benim aklıma nasıl gelmedi bu ? Yardımın için çok teşekkür ederim.Birde son birşey sorucam bunu karakterde olusturduğum scene’in transformuna atadım ancak ben level’da bir noktaya atamak istiyorum.Nasıl halledebilirim ? (Birde biz sürekli türkçe konustuk ancak sıkıntı çıkarmısın epic games?)
Yok hocam sıkıntı çıkarmaz, gönüllü cevap veriyorum burda, moderatör değilim, fakat en sona özetini yazıcam yorum olarak değil de cevap olarak ingilizce, daha sonra benzer sorun yaşayıp çözüm isteyen olursa diye, onu cevap olarak kabul ederseniz sevinirim.
Şöyle yapabilirsiniz hocam, ya karakterinizde bir variable yaratırsınız target tipi, ve bu variable ı editable yaparsınız. Bu sayede karakterinizi level’a koyduğuzda level editorda karakterinize tıklayınca sağ altta variable initializationlarınız olacak, ya burda target ı seçersiniz, ya da
BearSpawner diye bir blueprint yaratırsınız, boş olur, herhangi bir graph olmaz event graph’ınızda (İsterseniz daha sonrasında bear ı spawn eden fonksiyonu buna koyabilirsiniz tabiki).
Eğer ona koyarsanız direkt widget blueprint inizde “Get All Actors From Class” diyip, foreach loop koyup bu fonksiyonu çağırabilir, istemezseniz de karakter blueprint içerisinde spawn etmeden hemen önce “Get All Actor From Class” diyip, çıkan arraydeki ilk spawner’ın pozisyonuna koyarsınız.
Quick rundown for what was discussed, in case anyone else wonders/has the same issue in the future.
Instead of setting a boolean when a button is clicked, and then checking every tick if that bool is true in another blueprint (And probably setting that bool to false in another event tick loop somewhere else),
we implemented a spawnBear function inside the character blueprint, which spawns the bear at the specified position. Now, when button is clicked UI is getting its owner pawn, casting it to the correct character blueprint, and directly firing that function.
(Sorry for the non-english discussion)
Karakter’in içersindeki functiondan “get all actors of class” dedikten sonra class’ını levela attığım target poin yaptım.Ardından “get actor array average location” node’unu çağırıp make transform dedikten sonra “spawn actor ayı” node’un spawn transform kısmına bağladım ve herşey istediğim gibi oldu.