mesh内の任意のポリゴンのmaterialを逆引きする方法が分かってなかったのですが
地面判定で似たような事してたなぁと思い出してソース眺めたら解決しました。
複数materialを使用したmeshは、
1:基本内部submesh分のmaterialが登録されている。
submesh index = materials index
2:mesh.GetTriangles(index)で取得したtriangle dataのどれかと一致すればmaterials[index]使用。
この辺り詳しい解説が見つけられていないのでもっと効率の良い方法がありそうです。