问题背景

最近在开发一个功能,钻孔功能,每一层(段)都需要单独拾取,显示不同的颜色,使用不同材质

问题分析

对于这个功能,由于上述需求,很容易想到用submesh实现,但是主要问题是在于对于Submesh的拾取,如何知道拾取到那一段?

解决方案:

通过Unity中自带的RaycastHit解决,里面的触碰的三角形索引,根据三角面判断所在Submesh。

 

上代码

获取钻孔Mesh

 1         /// <summary>
 2         /// 获取gameobject的mesh
 3         /// </summary>
 4         /// <param name="gameobject">目标物体</param>
 5         /// <returns></returns>
 6         private Mesh GetMesh(GameObject gameobject)
 7         {
 8             if (gameobject)
 9             {
10                 MeshFilter meshFilter = gameobject.GetComponent<MeshFilter>();
11                 if (meshFilter)
12                 {
13                     Mesh mesh = meshFilter.sharedMesh;
14                     if (!mesh) { mesh = meshFilter.mesh; }
15                     if (mesh)
16                     {
17                         return mesh;
18                     }
19                 }
20             }
21             return (Mesh)null;
22         }
View Code

相关文章:

  • 2021-05-23
  • 2021-08-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-07
猜你喜欢
  • 2022-12-23
  • 2021-08-25
  • 2022-12-23
  • 2021-11-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案