qukla

Unreal MVP
16 Tem 2015
381
90
0
(35) İzmir
Merhabalar

Bir tane flashlight BluePrint yaptım, flashlight'ın mesh i ve ucunda da bir tane spot light var.

Şimdi FirstPersonCharacter'e bu flashlight'ı child actor olarak atıyorum, Child Actor' ı attıktan sonra karakter movement sapıtıyor. İleri basınca geri gidiyor, geri basınca sağa gidiyor gibi. Bu neden oluyor acaba? Child Actor' a parent soket de verdim ama sonuç değişmedi.

Bir de ben FirstPersonCharacter BluePrint' de sadece ışığı açıp kapatmak istiyorum. Yani elindeki fener dursun sadece ışığı açılıp kapansın istiyorum. Ama ne denediysem olmadı. Castı yaptım olmadı, " Blueprint does not inherit from "child actor" diye hata veriyor.
Sadece spot lighta toggle visibilty nasıl veririm?

Teşekkürler.
 
Movement sorunu collision'dan kaynaklanıyor tahminim. Flashlight BP içindeki tüm componentların collision preset'ini No Collision yapıp deneyin.

Flashlight'ı Child actor olarak koyduysanız BP içine yapmanız gereken çok basit. O Child Actor'ün değişkenini alın > değişkenden sürükleyip Get Child Actor. Şimdi bu Child Actor'dan flashlight BP'ine cast yapıp cast'tan spotlight'ı Get yapıp spotlight'ın visibility'sini Toggle veya Set yapabilirsiniz. Şöyle;

Flashlight_zpsceqaflcz.jpg
 
Jacky süpersin teşekkürler : ) Hemen deneyip dönüyorum .


Şimdi denedim ama "Cast to light" dan çıkan object' te ki ilk child actorun nereden geldiğini bulamadım.

Şöyle birşey denedim ;

x4i55d.jpg


Böyle bir hata aldım.

Neden ki acaba ? : )
 
Baştaki Child Actor değişkeninden tekrar Get Child Actor yapılması lazım. İlk kullandığımız Child Actor değişkeni karakter BP içinde bir component olduğu için o component'ın içinde belirlediğimiz actor'ü çağırmış oluyoruz böylece.

Flashlight2_zpsd7exfvxa.jpg
 
Hah süper şimdi oldu : ) çok teşekkürler tekrar.

Son bir şey daha sorayım hazır yakalamışken : )

Bu Cast node'un daki pin'lerin anlamı ne acaba ? Object dediği kullandığımız yerdeki object mi? Yoksa Cast ettiğimiz BP' deki mi? As "cast ismi" ile başlayan a ne vermemeiz gerekiyor : ) Cast Faild için ne yapabiliriz?

Hepsini bir arada sorsam iyidi de şimdi aklıma geldi kusura bakma : )
 
Açıkçası Cast To'nun ne yaptığını ben de anlamamıştım hiç Beta zamanında ta ki biryerlerden uygulamasını görene kadar. Programlama dilinde neye yaradığına baktığımda da farklı türdeki değerleri birbirine dönüştürmeye yarıyormuş Cast. BP içindeki fonksiyon da bir nevi dönüştürme yapıyor ama sadece ona beslediğimiz yani dönüştürmek istediğimiz değişken/değişkenler içinde istediğimiz değişken(actor) var ise. O zaman Cast'ın bize verdiği yeni değişken As "istediğimiz actor" oluyor ve en üstteki pinden execution devam ediyor. Aksi takdirde başarısız sonuçlanıyor(Failed.)

Failed için de şöyle bir senaryo yaratayım: Diyelim ki bir kuş sürüsü spawn edip Overlap event yaratan bir box içinden geçiriyoruz ve bu kuş sürüsünde istediğimiz kuş var mı yok mu onu öğrenmek istiyoruz. Event Begin Overlap ardından aradığımız kuş türü için cast to uyguluyoruz ve eğer o ilk sürüde kuş yoksa haliyle Failed pini aktif hale geliyor. Şimdi de bu Failed pinini kullanarak tekrar bir kuş sürüsü spawn etmesini söyleyebiliriz diğer BP'e ve bu böylece devam eder ta ki istediğimiz kuş spawn olup overlap edene kadar.

Biraz kafa karıştırdım sanırım ama hiç anlaşılmayan bir yer varsa sorun. ;P
 
Faild kısmını çok iyi anladım : )

Diğer kısım için, ilk gönderdiğin ekran görüntüsünden yola çıkarak; blueprint şunu mu diyor;

Light Blueprint'inde ki Child Actor' ü (object) AL > Onun içindeki Spotlight Actor ü (As..) seç > onu şu-bu işlemleri yap. Gibi mi ?
 
qukla' Alıntı:
Diğer kısım için, ilk gönderdiğin ekran görüntüsünden yola çıkarak; blueprint şunu mu diyor;

Light Blueprint'inde ki Child Actor' ü (object) AL > Onun içindeki Spotlight Actor ü (As..) seç > onu şu-bu işlemleri yap. Gibi mi ?

İlk Child Actor değişkeninden itibaren şöyle;

KarakterBP içindeki ChildActor component'ını al > Child Actor Component içindeki Actor'ü al > Cast ile o Child Actor'ü Light BP'ine(actorBP) dönüştür > Bu Light BP'i içinde varolan Spotlight component'ını al > istediğin parametreyi değiştir.
 
qukla' Alıntı:
Süper, Şimdi tam oturdu : )

Çook teşekkürler tekrar : )

Dedim ama aslında tam oturmamış : ) Son bir şey soracağım. : (

Şimdi bir tane widget yaptım, o W_invMain diye, şimdi orada başka bir widget çağırıp ekrana veriyorum (WW_Hasta1): Şu şekilde :
2u5z5eb.jpg


Şimdi bu açılıyor ama herhangi bir tuşa basınca da kapansın istiyorum, onu yapmakta zorlanıyorum biraz. Bunun için CharacterBlueprint' de bu widgeti cast yapmak istiyorum ve şöyle birşey yaptım :

33bh3if.jpg


Ama olmadı : )

Şimdi böyle bir durumda object' i ne yapmalıyım acaba ?

Yada izlediğim yol yanlış mı sizce ?
 
Asıl Widget BP'sini Level BP içinde aktif ettiğini varsayarsak şöyle birşey yaparsan çalışacak:

WidgetMain_zpsy3jfjbom.jpg


Burada Event Construct(yani widget BP yaratıldığında - Event Begin Play gibi) ile ana widget içinde istediğimiz widget'ı yaratıyoruz. Ardından DELETE ismini verdiğim bir Custom Event yaratıyoruz ve bu event ile ekrandan kalkmasını söylüyoruz. Custom Event yaratmak için sağa tıkla > Custom Event > istediğin ismi ver.

WidgetLevelBP_zps82aotcvc.jpg


Sonra Level BP içinde ana widget'ı yarattıktan sonra onun içindekilere Return Value aracılığı ile ulaşabildiğimiz için oradan DELETE custom eventini çağırıp istediğimiz event ile(bu durumda F tuşu) aktif hale getiriyoruz. Böylece ana widget ekranda kalırken içinde yarattığımız alt widget ekrandan kalkıyor.
 
Direk returndan remove from parent çeker giriş çubuğunu ise e ye bağlar daha mantıklı değilmi?


Birde sana bir sorum olacak,widget oluştururken owning playeri koysak ne yararları var?