I’ve added an OBJ to my prefabs and instantiate it on the fly. By default it doesn’t have a collider (and I can’t add collider components to a prefab + I wouldn’t like to do it manually for all my meshes), so I add it in a script:

MeshCollider mc = (MeshCollider)blockInst.AddComponent("MeshCollider");    
mc.collider.enabled = true;

After that I do:

Physics.Raycast(ray.origin, ray.direction, out hit);

The meshes I add in the editor can be hit, but my OBJ mesh is never hit unless I bring prefab into the scene, add a mesh collider component to it and bring it back to prefabs (in order to be able to instantiate it again).
Can I add meshcollider components on the fly? If yes, what am I doing wrong?


I can’t add collider components to a prefab

Sure you can. You don’t need to bring prefabs into a scene to do it either; just use the Component menu. Anyway, only adding a MeshCollider component by itself (by the way, don’t use strings, just do AddComponent(MeshCollider)) won’t do much, you need to tell it what mesh to use.