LS-UNITY NOTES
-KARAKTER HAREKETİ
transform.Translate(Vector3.forward*Time.fixedDeltaTime*moveSpeed);
*transform.Translate = moves the transform in the direction and distance of translation
-Tween'i ksım kısım düşünebiliriz. Tweenler arası işlem yaparak objelerin hareketini sağlamış oluruz. Örneğin DOMoveX(end value,duration) parametreleri alıyor. Bizim transformumuz zaten default olan değerler fonksiyon bunu biliyor zaten , bunu bir aralık olarak düşünelim , ek olarak parametre içine hedef aralık ve süre girilir. Giriler sürede default olan değerden hedef değere belirlenen sürede gerekli işlem yapılır.DOMove için hareket işlemi yapılırken DORotate de rotasyon işlemleri yapılır.
-DOTween.To()
Aralıkları doldurmanın en performanslı yolu bu fonksiyondur.Belirli bir özelliği geçerli değerinden bir değere değiştirir.
DOTween.To(getter,setter,to,float duration)
Örnekler:
DOTween.To(()=>myValue,x=>myValue=x,52,1);
DOTween.To(()=>moveSpeed,x=>moveSpeed=x,moveSpeedDefault,Duration);
-Player
Player objemize bir objenin temas etmesi durumunda yapılacak işlem
public void OnTriggerEnter(Collider other)
{
if(other.CompareTag("DENEME")){
count++;
test.GetChild(count).gameObject.SetActive(true);
}
EULER AÇISI
3 boyutlu yönelimi anlatmanın en kolay yolu Euler açılarını kullanmaktır
Euler açıları bazı durumlarda 3 boyutlu yönelimi açıklamada yetersiz kalır.Özetlemek gerekirse rotasyonlar sonucu eğer eksenler üst üste gelirse özgürlük derecesi kaybu yaşanır. Rotasyon da 2 boyutlu uzaya sıkışmak zorunda kalır.Bu duruma gimbal lock denir.Unity'dee bu sorunun yaşanmaması için Quaternion'lar kullanılıyor. Quaternion'da euler açılarına ek olarak 4.bir değer bulunur. Bu değer skaler bir değer.Ve bunun olması çakışmakarı önlüyor
VECTOR3.normalized
Returns this vector with a magnitude of 1. When normalized , a vector keeps the same direction but is is lenght is 1.0
ÇOK SAYIDA ÜST ÜSTE OBJENİN YIKILMASI DURUMU
Bir duvar düşünelim. Bu duvarı oluşturan onlarca kiremitin bir darbeyle yıkılması durumunu inceleyeceğiz
Kiremit objelerinin hepsinde rigidbody ve collider komponentleri olacaktır ancak use gravity kapalı olması gerekir.Duvarın yıkılması durumunu tetikleyecek obje biz buna player adını verelim. Player ilk teması yaptığında(bu işlemi tag kullanarak yaptık) aşağıdaki kodlar çalıştırılacaktır.
if(gameObject.CompareTag("gate"))
{
Collider[] colliders=Physics.OverlapSphere(transform.position,200);
foreach(var collider in colliders)
{
Rigidbody rb = collider.GetComponent<Rigidbody>();
if(rb!=null)
{
rb.useGravity=true;
rb.AddExplosionForce(200,transform.position,500);
}
}
animator.SetTrigger("Gate");
transform.Translate(Vector3.forward*Time.fixedDeltaTime*moveSpeed);
*transform.Translate = moves the transform in the direction and distance of translation
-Tween'i ksım kısım düşünebiliriz. Tweenler arası işlem yaparak objelerin hareketini sağlamış oluruz. Örneğin DOMoveX(end value,duration) parametreleri alıyor. Bizim transformumuz zaten default olan değerler fonksiyon bunu biliyor zaten , bunu bir aralık olarak düşünelim , ek olarak parametre içine hedef aralık ve süre girilir. Giriler sürede default olan değerden hedef değere belirlenen sürede gerekli işlem yapılır.DOMove için hareket işlemi yapılırken DORotate de rotasyon işlemleri yapılır.
-DOTween.To()
Aralıkları doldurmanın en performanslı yolu bu fonksiyondur.Belirli bir özelliği geçerli değerinden bir değere değiştirir.
DOTween.To(getter,setter,to,float duration)
Örnekler:
DOTween.To(()=>myValue,x=>myValue=x,52,1);
DOTween.To(()=>moveSpeed,x=>moveSpeed=x,moveSpeedDefault,Duration);
-Player
Player objemize bir objenin temas etmesi durumunda yapılacak işlem
public void OnTriggerEnter(Collider other)
{
if(other.CompareTag("DENEME")){
count++;
test.GetChild(count).gameObject.SetActive(true);
}
EULER AÇISI
3 boyutlu yönelimi anlatmanın en kolay yolu Euler açılarını kullanmaktır
Euler açıları bazı durumlarda 3 boyutlu yönelimi açıklamada yetersiz kalır.Özetlemek gerekirse rotasyonlar sonucu eğer eksenler üst üste gelirse özgürlük derecesi kaybu yaşanır. Rotasyon da 2 boyutlu uzaya sıkışmak zorunda kalır.Bu duruma gimbal lock denir.Unity'dee bu sorunun yaşanmaması için Quaternion'lar kullanılıyor. Quaternion'da euler açılarına ek olarak 4.bir değer bulunur. Bu değer skaler bir değer.Ve bunun olması çakışmakarı önlüyor
VECTOR3.normalized
Returns this vector with a magnitude of 1. When normalized , a vector keeps the same direction but is is lenght is 1.0
ÇOK SAYIDA ÜST ÜSTE OBJENİN YIKILMASI DURUMU
Bir duvar düşünelim. Bu duvarı oluşturan onlarca kiremitin bir darbeyle yıkılması durumunu inceleyeceğiz
Kiremit objelerinin hepsinde rigidbody ve collider komponentleri olacaktır ancak use gravity kapalı olması gerekir.Duvarın yıkılması durumunu tetikleyecek obje biz buna player adını verelim. Player ilk teması yaptığında(bu işlemi tag kullanarak yaptık) aşağıdaki kodlar çalıştırılacaktır.
if(gameObject.CompareTag("gate"))
{
Collider[] colliders=Physics.OverlapSphere(transform.position,200);
foreach(var collider in colliders)
{
Rigidbody rb = collider.GetComponent<Rigidbody>();
if(rb!=null)
{
rb.useGravity=true;
rb.AddExplosionForce(200,transform.position,500);
}
}
animator.SetTrigger("Gate");
Comments
Post a Comment