Unity uçak rigidbody sorunu


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.
 
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.
 
Hocam ben uçak zemindeyken devamlı hareket ediyor dediği için öyle dedim, muhtemelen sürtünmedendir diye. Ortada şu an zaten 2 sorun var.

Zemine temas etikten sonra sürekli hareket ediyor.
 
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:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…