Unity 2D karakter garip şekilde takla atıyor

zkann

Hectopat
Katılım
27 Ağustos 2022
Mesajlar
137
Daha fazla  
Cinsiyet
Erkek
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
videoda da görebileceğiniz üzere henüz yalnızca sağa ve sola hareket etmeyi kodladığım halde karakter yer çekimi yokmuş gibi uçuyor. Tabii, yerçekimini artırarak düzelecek bir şey değil anlarsınız. Tam nasıl tarif edeceğimi bilmiyorum, kusura bakmayın fakat araştırırken rastladığım birkaç videoda rigidbody -> constraints -> Z'yi açıyorlardı. Videolar 2018 civarındaydı, bense 2022 sürümünü kullanıyorum ve bu seçenek yok. (oyun 2D olduğundan zaten Z kullanılmıyor, konuyla alakasının ne kadar olduğundan şüpheliyim ama belirtmek istedim.). A, D, ←, → tuşlarını kullanarak sadece sağa ve sola gitmesini ve kendi etrafında dönmemesini nasıl sağlayacağım? Umarım anlatabilmişimdir. Şimdiden teşekkür ederim.

Daha önce de sormuştum fakat tek bir cevap bile gelmedi. Günlerdir uğraşıyorum fakat tam olarak anlatan bir çözüm bulamadım.
 
Bunu Unity'nin kendi forumlarında sorman bence sana daha aydınlatıcı cevaplar sağlar ama ben fizik motoru diyorum. Bir şekilde kafasına göre bir şeyler yapıyor gibi ama daha derin anlamam.
 
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
videoda da görebileceğiniz üzere henüz yalnızca sağa ve sola hareket etmeyi kodladığım halde karakter yer çekimi yokmuş gibi uçuyor. Tabii, yerçekimini artırarak düzelecek bir şey değil anlarsınız. Tam nasıl tarif edeceğimi bilmiyorum, kusura bakmayın fakat araştırırken rastladığım birkaç videoda rigidbody -> constraints -> Z'yi açıyorlardı. Videolar 2018 civarındaydı, bense 2022 sürümünü kullanıyorum ve bu seçenek yok. (oyun 2D olduğundan zaten Z kullanılmıyor, konuyla alakasının ne kadar olduğundan şüpheliyim ama belirtmek istedim.). A, D, ←, → tuşlarını kullanarak sadece sağa ve sola gitmesini ve kendi etrafında dönmemesini nasıl sağlayacağım? Umarım anlatabilmişimdir. Şimdiden teşekkür ederim.

Daha önce de sormuştum fakat tek bir cevap bile gelmedi. Günlerdir uğraşıyorum fakat tam olarak anlatan bir çözüm bulamadım.


Rigidbody constraint Rotation'dan hepsini tiklemen lazım. Birazdan fotoğraf olarak atarım.

Rigidbody constraint Rotation'dan hepsini tiklemen lazım. Birazdan fotoğraf olarak atarım.

Unity.png


@zKaann

Rigidbody constraint Rotation'dan hepsini tiklemen lazım. Birazdan fotoğraf olarak atarım.

Unity.png


@zKaann

Bu arada 2D de Z ekseni yok demişsiniz. Doğru, fakat Z dönme ekseni. Bu yüzden saat yönünde veya saat yönünün tersinde bir dönme sağlar. Bu da sizin sorunuzun cevabı zaten. Zıplarken oradaki bloklara çarptığından Z eksenine kuvvet uygulanıyor ve dönmeye başlıyor. Y dönme ekseni ile X ekseni 2D de olamaz. X ve Y hareket ekseni olarak alınır.
 
Son düzenleme:
Rigidbody constraint Rotation'dan hepsini tiklemen lazım. Birazdan fotoğraf olarak atarım.

Eki Görüntüle 1888061

@zKaann

Bu arada 2D de Z ekseni yok demişsiniz. Doğru, fakat Z dönme ekseni. Bu yüzden saat yönünde veya saat yönünün tersinde bir dönme sağlar. Bu da sizin sorunuzun cevabı zaten. Zıplarken oradaki bloklara çarptığından Z eksenine kuvvet uygulanıyor ve dönmeye başlıyor. Y dönme ekseni ile X ekseni 2D de olamaz. X ve Y hareket ekseni olarak alınır.

Hocam işte o bölüm bende yok. Videolarda da onu dondurduklarını görüyordum o olup olmadığından emin değildim. Unity 2022 kullanıyorum dediğim gibi.

1691071347511.png


Bunu Unity'nin kendi forumlarında sorman bence sana daha aydınlatıcı cevaplar sağlar ama ben fizik motoru diyorum. Bir şekilde kafasına göre bir şeyler yapıyor gibi ama daha derin anlamam.

Her yerde araştırdım, onlarca kod denedim ama olmadı. En sonunda gidip Unity 2017'de falan yapacağım oyunu (!) :D
 
Her yerde araştırdım, onlarca kod denedim ama olmadı. En sonunda gidip Unity 2017'de falan yapacağım oyunu (!) :D
Dostum Unity forumunda sorsana sorunu. Burası sana hiç oyun yapan zekaların birleştiği bir yer gibi geliyor mu?

Biz burada youtube format nasıl atılır diye yazamayan insanların seviyesindeyiz henüz. :).
 
Hocam kodunuzda rigidbody tanımlı değilse tanımlayıp şu kodu dener misiniz?

C#:
m_Rigidbody.constraints =RigidbodyConstraints.FreezeRotationZ;

Kusura bakmayın ama tam nereye yazacağım bu kodu ve rigidbody tanımlamaktan kastınız nedir? Bir şeyler denedim ama beceremedim.
 
1691079815117.png


Şuan sağa sola hareket edebiliyor ve zıplayabiliyorum, tabii "GroundCheck" bir "Ground"a temas ediyorsa, onu da iki ayağın ortasında çok az aşağı koydum. Z eksenini dondursam geri kalan kısma geçeceğim, şuanlık sadece pixel art tasarlıyorum, videodakiler de beta zaten.
 

Technopat Haberler

Geri
Yukarı