Unity Collider bilgisi konsolda gözükmüyor

psychothinker

Megapat
Katılım
24 Şubat 2015
Mesajlar
672
Çözümler
1
Yer
Antalya
Daha fazla  
Sistem Özellikleri
11th Gen Intel(R) Core(TM) i5-11400H @ 2.70GHz (2.69 GHz)
16,0 GB
RTX 3050Ti
Samsung 980 Pro 1TB
Cinsiyet
Erkek
Meslek
Elektrik-Elektronik Mühendisi
Sahnemde CubeControlled ve Obstacle var. CubeControlled Obstacle'a çarptığı zaman console'da "Hit!" gözükmesi gerekiyor ama gözükmüyor.





[CODE lang="csharp" title="CubeCollider Script"]
using UnityEngine;

public class CubeCollider : MonoBehaviour
{
void OnCollisionEnter(Collision collisionInfo)
{
Debug.Log(collisionInfo.collider.name);
}
}
[/CODE]

[CODE lang="csharp" title="CubeControlled Script"]
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
public Rigidbody rb;
public float Forward = 300f;
public float Side = 100f;


// Update is called once per frame
void FixedUpdate()
{
rb.AddForce(0, 0, Forward * Time.deltaTime);

if (Input.GetKey("w"))
{
rb.AddForce(0, 0, Forward * Time.deltaTime);
}
if (Input.GetKey("a"))
{
rb.AddForce(-Side, 0, 0 * Time.deltaTime);
}
if (Input.GetKey("d"))
{
rb.AddForce(Side, 0, 0 * Time.deltaTime);
}
if (Input.GetKey("s"))
{
rb.AddForce(0, 0, -Forward * Time.deltaTime);
}
}


}

[/CODE]
 
Son düzenleyen: Moderatör:
Çarpan objelerin rigidbodyleri var mı her ikisinin de? Colliderlar isTrigger modunda değil bir de değil mi? Son olarak CollisionEntera girdiğinde bir yazı yazdırabilir misiniz sorun name alırken mi yoksa collision detectionda mı ona bakarız.
 
Hata yaptığın yer şurası:
[CODE title="code"]using UnityEngine;

public class CubeCollider : MonoBehaviour
{
void OnCollisionEnter(Collision collisionInfo)
{
Debug.Log(collisionInfo.collider.name);
}
}[/CODE]

Burada OnCollisionEnter'da nereye çarpacağını girmemişsiniz. İlk önce kodu attığımız obje değil diğerine bir tag verin. Şimdilik bu taga "Obstacle" diyorum. Sonra aşağıdaki kodu değiştirin.

Kod:
using UnityEngine;

public class CubeCollider : MonoBehaviour
{
    void OnCollisionEnter(Collision collisionInfo)
    {
        if(collisionInfo.gameObject.tag == "Obstacle"){
            Debug.Log(collisionInfo.collider.name);
        }
    }
}
 
Rigidbodyler var. Normalde Debug.Log ile herhangi bir output alamıyorum ground ile collision da bile.
Deneyeceğim. Teşekkürler.
 
Tag girmese bile girdiği her collision ı döndürmesi gerekmez miydi?
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…