モデルの特定場所の色を調べたい場合は、
・モデルにMeshColliderがついている
・Convexがoffになっている
・マテリアルに使用されているメインテクスチャがRead/Wrightableになっている
必要があります。
その状態で
Physics.Raycast()
でヒットしたときに返ってくるRaycastHit.textureCoord
を調べるとテクスチャの場所(uv)が返ってきます。
かなり特殊な場合になると思いますが、マテリアルにタイリングやオフセットがかかっている場合があります。
そんな時は
Vector2 ofs = m_mat.GetTextureOffset("_MainTex");
Vector2 scl = m_mat.GetTextureScale("_MainTex");
uv = Vector2.Scale(uv,scl);
uv.x = Mathf.Repeat(ofs.x + uv.x,1f);
uv.y = Mathf.Repeat(ofs.y + uv.y,1f);
でuvを補正します。
あとはメインテクスチャの指定個所の色をtex2d.GetPixelBilinear(uv.x,uv.y)
で取得します。