Прежде всего, вам нужен способ ссылки на GameObject, который вы хотите удалить.
Вы можете сделать это различными способами, такими как поиск по имени или тегу, или установив его в редакторе.
Например, поиск по имени,
GameObject objectToDisappear = GameObject.Find("ObjectToDisappearName");
После этого, чтобы объект исчез, вы можете отключить его средство визуализации, используя
objectToDisappear.GetComponent<Renderer>().enabled = false;
внутри вашего метода обнаружения столкновений.
EDIT : Чтобы сослаться на GameObject, перетащив его в инспектор, создайте переменную экземпляра внутри класса, из которого вы хотите сослаться на него. В вашем случае это должно быть так:
public class P2 : MonoBehaviour
{
public GameObject p3;
void OnCollisionEnter(Collision col)
{
if(col.gameObject.name == "p")
{
Debug.Log("Collision detected");
p3.GetComponent<Renderer>().enabled = false;
}
}
}
Затем зайдите в инспектор в GameObject, к которому прикреплен этот скрипт (p2), и вы должны увидеть, что значение p3 пустое (должно быть поле с надписью «None (GameObject)»), просто перетащите объект p3 ( тот, который вы хотите скрыть) внутри коробки.