hydrogenx

Yeni üye
9 Tem 2015
265
77
0
38
(42) Konya
Selamlar.
Tecrübeli arkadaşlara veya bilen arkadaşlara bir soru yöneltmek istiyorum.

Belli bir noktada belli bir sayıyla (örneğin 20) adet top spawn edeceğim. Ki bunu For Loop ile halledebilirim. Fakat sorun şurda. For Loop bu aktörleri aynı anda veya birbirine çok yakın sürede spawn ettiği için bazı sorunlar çıkıyor ortaya. Benim istediğim ise her loop arasında bir süre bulunması (Örn: 0.2sn). Bunun bulunan bir nodu veya tekniği halihazırda var mı yoksa sıfırdan macrosunu mu yapmamız gerekiyor?

Şu an bunun yerine alternatif olarak "Do N" kullanmayı denedim fakat bu yöntem de çok stabil değil. Önerilerinize açığım, teşekkürler.
 
hydrogenx' Alıntı:
Selamlar.
Tecrübeli arkadaşlara veya bilen arkadaşlara bir soru yöneltmek istiyorum.

Belli bir noktada belli bir sayıyla (örneğin 20) adet top spawn edeceğim. Ki bunu For Loop ile halledebilirim. Fakat sorun şurda. For Loop bu aktörleri aynı anda veya birbirine çok yakın sürede spawn ettiği için bazı sorunlar çıkıyor ortaya. Benim istediğim ise her loop arasında bir süre bulunması (Örn: 0.2sn). Bunun bulunan bir nodu veya tekniği halihazırda var mı yoksa sıfırdan macrosunu mu yapmamız gerekiyor?

Şu an bunun yerine alternatif olarak "Do N" kullanmayı denedim fakat bu yöntem de çok stabil değil. Önerilerinize açığım, teşekkürler.

Bunun için delay iyi bir çözüm olur.  [img=800x400]https://upload.wikimedia.org/wikipedia/commons/7/79/Ghh.png[/img]
 
Hocam yanlış anlamışsın sanırım beni. Bu şekilde yapmak çok basit bir işlem fakat işe yaramayacaktır. Atmış olduğunuz ekran görüntüsündeki ForLoop nodunun orada hiç bir özelliği yok. Onu koymayıp, Event Tick'i doğrudan delay'a bağlamanız da aynı sonucu verecektir. Çünkü oradaki loop'u durduracak bir komut olmadığından sürekli olarak loop edecektir. Çünkü Event Tick sürekli olarak komut yollayan bir event tipi.

Tek komut yollayan başka bir event'e (Klavye tuşları veya Actor Begin Overlap gibi...) bağladığımız zaman ise delay işi bozacaktır. Çünkü Loop işlemi anında gerçekleşiyor ve dışa aktarılıyor. Delay ise bunu beklettiği için hepsi birleşip tek komut haline geliyor. Dolayısıyla yine ForLoop'un bir özelliği kalmıyor. Bu da işe yaramayacaktır. ForLoopWithBreak nodu da nedense işe yaramıyor.

Benim sorunum daha derinde, ForLoop bunu loop ederken her loop arasına delay vermesi gerekiyor. Aksi durumda hepsini aynı anda loop ediyor bu da bütün işi bozuyor.

Bir kaç saattir kafa patlatıyorum ve bazı çözümler buldum. Mesela "Do N" kullanımı.

1NL9n5.png


Bu ilk kullanımda sorun çıkartmıyor fakat ikinci kullanım için resetlenmesi gerekiyor. Oyun sisteminde bunu bir şekilde resetlemem zor. Ama imkansız değil sadece biraz daha karmaşıklaşacak iş. Fakat yine de Event Tick kullanımı sorun çıkartabilir. Mümkünse Event Tick olmadan farklı bir yöntemle Loop etmek istiyorum.

Bu yüzden Macro ile uğraşıyorum şu anda halledebilirsem daha kolay olacak sanırım her şey.
 
Evet, o zaman sizde şöyle yapın. Spawn actor ball çıkışına sequence nod unu ekleyin. ve sequence çıkışını da do n reset girişine bağlayın. Bir deneyin olması lazım. Az önce söylediğimi ben denedim reset yapmak için bu çözümü kullanın ama do n kısmına girdiğin sayı yine işe yaramıyor. Ben bir kaç çözüme daha bakarım sayı kısmın da
 
O yöntem de bug'a sebebiyet verir. Şöyle ki: İlk top spawn edildiğinde Reset tetiklenecek, tekrar spawn edilecek, tekrar Reset tetiklenecek ve böyle sonsuz bir döngüye girecek. Sequence sonrasına Resetlemesi için delay koyamam çünkü her seferinde spawn edilen top sayısı farklı olacak dolayısıyla sabit bir süresi bulunmuyor.

-ÇÖZÜM-

Daha önce dediğim gibi işi macro çözdü. Uğraşmak istemiyordum o yüzden konuyu açtım ama yine de mecbur kaldım :D En azından benzer bir isteği veya sorunu olan arkadaşlara rehber olur.

Macro içeriği aşağıdaki gibidir;

dXGz37.png


Macronun kullanımı ise aşağıdaki gibidir;

9Gd8Lo.png


Bu şekilde Event Tick olmadan belirtilen sayı boyunca belirtilen süre aralıklarında tekrar ediyor. Örn: 1-100 arasında bir değer verirsek, ve delay kısmına 1 girersek, her saniye 1 top spawn edecek ve 100 saniyede Loop tamamlanacak. Tam da aradığım bir sistem :D
 
Çözmenize sevindim. Aslında tek sıkıntı hepsine reset atması bu yüzden olayı tekrar ediyor. En kolay sizin yaptığınız macro yöntemi daha kolay bir yöntemi yok gibi bir çok yol denedim ama olmadı. Not: Her defasında aynı sonsuz spawn (sayısını belirleyememe) sorunuyla karşılaştım.
 
ClimbDown' Alıntı:
Retrigerable delay ve loop with break ile çözülebilirdi  :D

Retriggerable Delay aklıma gelmemişti, dolayısıyla deneyemedim fakat Loop With Break işe yaramıyor maalesef. Tam istediğimi vermiyordu.

Önemli olan ne kadar loop ettiği veya nereye kadar loop edeceği değil, önemli olan yaptığı loop esnasında her loop arasında bir delay olması. Tüm Loop nodları girilen indexi anında loop edip çıkışa veriyor. Anında değil zamana yaymasını istiyordum. Yani mevcut olan Loop nodlarında böyle bir seçenek şu anda yok.
En stabil çözüm yukarıdaki haricen yapılan macro oldu.
 
hydrogenx' Alıntı:
ClimbDown' Alıntı:
Retrigerable delay ve loop with break ile çözülebilirdi  :D

Retriggerable Delay aklıma gelmemişti, dolayısıyla deneyemedim fakat Loop With Break işe yaramıyor maalesef. Tam istediğimi vermiyordu.

Önemli olan ne kadar loop ettiği veya nereye kadar loop edeceği değil, önemli olan yaptığı loop esnasında her loop arasında bir delay olması. Tüm Loop nodları girilen indexi anında loop edip çıkışa veriyor. Anında değil zamana yaymasını istiyordum. Yani mevcut olan Loop nodlarında böyle bir seçenek şu anda yok.
En stabil çözüm yukarıdaki haricen yapılan macro oldu.
Şöyle oluyor benim bildiğim,

Retrigerable delay de her giriş için 2 saniye koyuyordu araya yani şöyle,

20 kez tetiklendi delay(loop dan dolayı),her tetiklenişinde 2 saniye bekleyerek işlemi tetikliyor,

Anlatamadım ama olsun  :(