Unity uçak rigidbody sorunu

Hocam zeminin içinden geçmeyle ilgili nasıl çözebiliriz bilmiyorum. Sürtünmeyle ilgili şunu yapabilirsiniz belki: Uçağa bir tane physics material ekleyin, friction kısmını da 0 yapın. Eğer uçak zemindeyken kontroller çok sert gelirse deneme/yanılma yoluyla değiştirebilirsiniz.

Zeminin içinden geçmeyle ilgili çözüm hala bulamadım.

Physics material nasıl eklerim
?
 
Selam. Muhtemelen uçak çok hızlı hareket ettiği için colliderlar çakışıyor, sonuçta bir tanesi etkisiz kalıyor. Çok yavaş bir hareket ile zemine çarpmayı dener misin? Eğer sorun bundan kaynaklı ise bununla ilgili bir çözüm düşünelim.
 
Project'te uçak modeline bir yere sağ tıklayın, daha sonra ise Create > Physic Material menüsüne gidin.
Bununla ilgili olduğunu sanmıyorum, Unity'nin çarpışma algılayıcısı biraz tuhaf çalışıyor dediğim gibi. Zemini komple kaplayan bir "box collider" iş görebilir. Terrain collider bazen böyle yapıyor. Ama dediğin gibi çözlürüse bana da sürpriz olur.
 
Bununla ilgili olduğunu sanmıyorum, Unity'nin çarpışma algılayıcısı biraz tuhaf çalışıyor dediğim gibi. Zemini komple kaplayan bir "box collider" iş görebilir. Terrain collider bazen böyle yapıyor. Ama dediğin gibi çözlürüse bana da sürpriz olur.
Hocam ben zemine temas etikten sonra sürekli hareket ediyor dediği için öyle dedim, muhtemelen sürtünmedendir diye. Ortada şuan zaten 2 sorun var.
 
Physic material işe yaramadı.

C#:
void Update()
    {

        transform.position += transform.forward * Time.deltaTime * speed;
        speed -= transform.forward.z * Time.deltaTime * 10;
        speed -= transform.forward.y * Time.deltaTime * 10;
        speed -= transform.forward.x * Time.deltaTime * 10;

        if (speed < minSpeed) speed = minSpeed;
        if (speed > maxSpeed) speed = maxSpeed;

        if (Input.GetKey(KeyCode.W))
        {

           if (speed < maxSpeed) speed++;
        }

        if (Input.GetKey(KeyCode.S))
        {

            if (speed > minSpeed) speed--;
        }



        if (Input.GetKey(KeyCode.A))
        {
            transform.Rotate(Vector3.forward * Time.deltaTime * rotspeed1);
        }

        if (Input.GetKey(KeyCode.LeftArrow))
        {
            transform.Rotate(Vector3.forward * Time.deltaTime * rotspeed1);
        }


        if (Input.GetKey(KeyCode.D))
        {
            transform.Rotate(Vector3.back * Time.deltaTime * rotspeed1);
        }

        if (Input.GetKey(KeyCode.RightArrow))
        {
            transform.Rotate(Vector3.back * Time.deltaTime * rotspeed1);
        }

        if (Input.GetKey(KeyCode.DownArrow))
        {
            transform.Rotate(Vector3.left * Time.deltaTime * rotspeed2);
        }

        if (Input.GetKey(KeyCode.UpArrow))
        {
            transform.Rotate(Vector3.right * Time.deltaTime * rotspeed2);

        }

        if (Input.GetKey(KeyCode.Q))
        {
            transform.Rotate(Vector3.down * Time.deltaTime * rotspeed1);
        }

        if (Input.GetKey(KeyCode.E))
        {
            transform.Rotate(Vector3.up * Time.deltaTime * rotspeed1);
        }
 
Son düzenleme:

Technopat Haberler

Yeni konular

Geri
Yukarı