C# объект проходит сквозь стену

Помогите мне, тут я хочу, чтобы мой объект(не player, а объект) касался стены и поворачивался,типо как в пинг-понг, он он не работает, просто проходит сквозь стены. Причина не в том, что он не поворачивает, а он даже не реагирует на касание. Я в if добавил Debug Log после прикосновения, но он даже на это не среагировал. Вот код объекта если что.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class pat : MonoBehaviour
{
    public float speed;

    void Start()
    {
        speed = 5;
    }

    void Update()
    {
        transform.Translate(speed * Time.deltaTime, 0, 0);
    }

    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == "pat2")
        {
            transform.Rotate(0.0f, 180.0f, 0.0f);
        }
        if (other.tag == "pat")
        {
            transform.Rotate(0.0f, 0.0f, 0.0f);
        }
    }
}

Зелёный - это объект, я хочу, чтобы он касался стен, поворачивался и ехал вперёд. И так до бесконечности. cцена

Rigibody или как там его уже пробовал, isTrigger отключал, включал, всё никак не работает. Буду очень благодарен за помощь.


Ответы (2 шт):

Автор решения: merkyr

если я правильно понял, то у одного из объектов включен isTrigger Collider, отключите его и используйте в коде вместо OnTriggerEnter() - OnCollisionEnter(). Тогда он не будет проходить сквозь объект.

→ Ссылка
Автор решения: Tigran

Всё уже сработало!! Спасибо @merkyr за подсказку, я добавил Collision и на объект прицепил rigidbody, отключил isTrigger и ВОЯЛА! Всё сработало, спасибо всем за помощь и подсказку. Вот что у меня получился, берите кому надо.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class pat : MonoBehaviour
{
public float speed;

void Start()
{
    speed = 5;
}

void Update()
{
    transform.Translate(speed * Time.deltaTime, 0, 0);
}

private void OnCollisionEnter(Collision col)
{
    if (col.gameObject.tag == "pat 1")
    {
        transform.Rotate(0.0f, 180.0f, 0.0f);
    }

    if (col.gameObject.tag == "pat 2")
    {
        transform.Rotate(0.0f, 180.0f, 0.0f);
    }
}
    
}
→ Ссылка