@nano_e_t_4

Как игнорировать BoxCollider?

Всем привет.
Кто знает\сталкивался, как можно игнорировать коллайдеры при использовании

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;


я создаю патрон, вычисляю таким образом точку, куда нужно этот патрон направить и добавляю ему velocity:

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;

        //check if ray hits something
        Vector3 targetPoint;
        if (Physics.Raycast(ray, out hit))
        {
            Debug.Log("gameobject name " + hit.collider.gameObject.name);
            Debug.Log("gameobject point" + hit.point);
            targetPoint = hit.point;
        }   
        else
            targetPoint = ray.GetPoint(75); //Just a point far away from the player
            

        //Calculate direction from attackPoint to targetPoint
        Vector3 directionWithoutSpread = targetPoint - attackPoint.position;

        //Calculate new direction with spread
        Vector3 directionWithSpread = directionWithoutSpread + new Vector3(x, y, 0); //Just add spread to last direction

        GameObject currentBullet = Instantiate(bullet, attackPoint.position, Quaternion.identity); 
        Debug.Log("directionWithSpread " + directionWithSpread);
        currentBullet.GetComponent<Rigidbody>().velocity = directionWithSpread * shootForce;


и все норм работает, пули долетают до места, куда я кликал мышью. но на сцене есть объекты с большим BoxCollider. и когда я нажимаю мышью на местно, где этот BoxCollider определен, патрон летит не в нужном направлении, судя по дебагу потому, что определяет "местом нажатия" не meshRender объекта а именно границу BoxCollider-а.

Вопрос - как можно такое поведение побороть игнорировать эти collider-ы?

p.s.
галочка BoxCollider как триггер к сожалению не помогает (
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
ReyGrau
@ReyGrau
Используй LayerMask
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
UdeeMo
@UdeeMo
Либо засунуть твои объекты с большими колайдерами в Layer и отключить взаимодействие с этим слоем у пуль, либо если тебе нужно чтобы пули попадали в модельку(а не в пустое место которое закрыто колайдером), то тебе нужно сделать свой колайдер из маленьких кубов который будет покрывать твою модельку
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы