Обработка щелчка мышью на игровом объекте - Unity3d

У меня есть маленькая городская сетка и 3d модель квартиры. Я добавляю сетку к своей сцене и помещаю 3d модель в сетку.

Я пытаюсь справиться с щелчком мыши только на 3d модели. Я использую ниже код. Но я нажимаю в любом месте на экране, он устанавливается как звук = true

Я добавляю сетчатый коллайдер в 3d модель игрового объекта.

if (Input.GetMouseButtonDown (0)) {
            Plane p = new Plane (Camera.main.transform.forward , transform.position);
            Ray r = Camera.main.ScreenPointToRay (Input.mousePosition);
            float d;
            if(p.Raycast (r, out d)) {
                sound = true;
}   

Как я могу решить это?

1 ответ

Решение

Вы можете проверить тег / название игрового объекта. вам нужно использовать вот так:

void Update() 
{
    if (Input.GetMouseButtonDown (0)) {

        Plane p = new Plane (Camera.main.transform.forward , transform.position);
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit, 100)) 
        {
            //Choose one of them below!!!

            /// Name Comparison
            if(hit.collider.gameObject.name.equals("NameOfTheObject")){
               ///Do Logic
            }

            //Tag Comparison
            if(hit.collider.gameObject.CompareTag("TagOfTheObject")){
                ///Do Logic
            }
        }
    }
}
Другие вопросы по тегам