Popüler Yayınımıza da Göz Atabilirsiniz
Unity ile Nesnelerin Çarpışma Hızını Bulmak
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Merhaba Herkese,
Mesela bir bombamız var eğer duvara çok hızlı çarpıyorsa bu duvarın yok olmasını ama yavaş çarparsa hiçbir şey olmasını istemez isek bunu Unity üzerinde nasıl yapabiliriz?
İlk olarak; objelerimizin çarpışmasını Unity üzerinde OnCollisionEnter (3d için) , OnCollisionEnter(2D için) algılıyorduk. Duvar nesnemizin scriptine gidip bu fonksiyonu yazıyoruz. Bu sayede çarpan nesneleri kod üzerinde algılayabiliriz.
class Duvar : MonoBehaviour {
void OnCollisionEnter2D()
{
}
}
Evet Fonksiyonumuzu yazdık peki çarpan nesneyi nasıl anlayacağız. Onu ise parantez aralığına Collision2D coll yazarak. Artık duvara nesnenin ismi coll.
class Duvar : MonoBehaviour {
void OnCollisionEnter2D(Collision2D coll)
{
}
}
Artık çarpma hızımızı algılayabiliriz. Bunun için relativeVelocity vektörünü kullanacağız.
class Duvar : MonoBehaviour {
void OnCollisionEnter2D(Collision2D coll)
{
if (coll.relativeVelocity.magnitude > 7f) {
Destroy(gameobject);
}
}
}
RelativeVelocity vektörü duvara çarpan nesnenin x,y,z ekseninde hareket vektörüdür. Magnitude dememizle birlikte bu vektörün uzunluğunu bulmuş oluyoruz yani duvara çarptığı anki hızını. If sayesinde kontrol ederek eğer 7f den büyükse objeyi yok et diyoruz.
Mesela bir bombamız var eğer duvara çok hızlı çarpıyorsa bu duvarın yok olmasını ama yavaş çarparsa hiçbir şey olmasını istemez isek bunu Unity üzerinde nasıl yapabiliriz?
İlk olarak; objelerimizin çarpışmasını Unity üzerinde OnCollisionEnter (3d için) , OnCollisionEnter(2D için) algılıyorduk. Duvar nesnemizin scriptine gidip bu fonksiyonu yazıyoruz. Bu sayede çarpan nesneleri kod üzerinde algılayabiliriz.
class Duvar : MonoBehaviour {
void OnCollisionEnter2D()
{
}
}
Evet Fonksiyonumuzu yazdık peki çarpan nesneyi nasıl anlayacağız. Onu ise parantez aralığına Collision2D coll yazarak. Artık duvara nesnenin ismi coll.
class Duvar : MonoBehaviour {
void OnCollisionEnter2D(Collision2D coll)
{
}
}
Artık çarpma hızımızı algılayabiliriz. Bunun için relativeVelocity vektörünü kullanacağız.
class Duvar : MonoBehaviour {
void OnCollisionEnter2D(Collision2D coll)
{
if (coll.relativeVelocity.magnitude > 7f) {
Destroy(gameobject);
}
}
}
RelativeVelocity vektörü duvara çarpan nesnenin x,y,z ekseninde hareket vektörüdür. Magnitude dememizle birlikte bu vektörün uzunluğunu bulmuş oluyoruz yani duvara çarptığı anki hızını. If sayesinde kontrol ederek eğer 7f den büyükse objeyi yok et diyoruz.
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Bu blogdaki popüler yayınlar
C# Puan Tablosu Oluşturma
Merhaba arkadaşlar bugün sizlere bir menajer oyununda takımların puan tablosunu ve doğru biçimde sıralamayı nasıl yapacağımızı göstereceğim. Tabi bildiğimiz üzere ligde takımlar puanına göre sıralanıyor eşit olması durumunda ise averaj ve atılan gollere bakılıyor.Bizde bu sisteme göre yapacağız. Öncelikle böyle büyük çaplı bir menajer oyununda classları kullanmamız şarttır. Bize bir "Takım" adında class lazım , hemen oluşturalım. Bu oluşturduğumuz Takım class'ına IComparable interface'ni uygulayalım bu yapının bize verdiği CompareTo komutuyla işlemlerimizi kolaylıkla gerçekleştireceğiz. Eğer isterseniz hazırlamış olduğum football manager youtube serisinide kanalımdan izleyebilirsiniz. https://www.youtube.com/playlist?list=PLw919wW8ikxenpnSTVecZ-oWZjXbPwEDl public class Takim : IComparable { string takim_adi; int Puan; ...
C# ile List İçinde Değer Arama ve Bulma Find ve FindAll Komutu
C# derslerinde koleksiyon yapısı olan List'in dizilerden farklı olarak içindeki bir değeri ya da değer aralığını birden çok değeri arayıp bulmayı sizinle göreceğiz. Find ve FindAll komutlarından yararlanacağız. İsterseniz kendi oluşturmuş olduğunuz bir class değerini de arayabilirsiniz. Referans olarak using System.Collections.Generic; using System.Linq; bu referans kütüphaneler kullanıyoruz. Eğer ekli değilse class dosyamızın en üst satırlarına ekleyebiliriz. List < string > texts = new List < string >(); texts.Add( "RehaStudio" ); Mesela yukarıda bir texts adında List koleksiyonu oluşturduk ve "RehaStudio" adında bir eleman ekledik. string deger = texts .Find( value => value == "RehaStudio" ); Burada list ifademize Find komutunu yazıyoruz ve içine ise bir şart ifadesi girebiliri...
Başarı Not Ortalama Kaldı Geçti Uygulaması Hazır Ödev C#
Ödev cevaplarında, kişinin girdiği sınav notlarını tutarak onun, not ortalamasını hesaplama, sınıf dersi geçti kaldı ve öğrenci başarı durumu belirlemenin kodlarını göstereceğiz. İlk olarak not ortalamasını hesaplayalım Console .WriteLine( "Merhaba Hoş geldiniz Uygulamamıza" ); Console .WriteLine( "Vize notunuzu giriniz!" ); int vize_notu = Int32 .Parse( Console .ReadLine()); Console .WriteLine( "Final notunuzu giriniz!" ); int final_notu = Int32 .Parse( Console .ReadLine()); int not_ortalaması = vize_notu / 100 * 40 + final_notu / 100 * 60; Console .WriteLine( "Not Ortalamanız: " + not_ortalaması); Kullanıcının girdiği değerleri Console.Readline ile okuyup int değişkene dönüştürüyoruz. Daha sonra yüzdelerini alıp topluyoruz. Bu örnekte vize yüzdesi 40 , finalin yüzdesi...
Yorumlar
Yorum Gönder