unity怎么把skinned mesh改成meshrender
时间: 2023-05-13 22:01:24 浏览: 874
Unity中有两种MeshRenderer:静态的MeshRenderer和动态的SkinnedMeshRenderer。SkinnedMeshRenderer用于可变形模型,如人物模型等。而MeshRenderer则用于静态的模型。将SkinnedMeshRenderer转换为MeshRenderer需要进行以下步骤:
1.创建一个MeshFilter组件或者找到一个已经存在的MeshFilter组件,用于存储Mesh。
2.创建一个新的Mesh,它将代表要转换的SkinnedMesh。
3.从SkinnedMesh中获取顶点,法线和UV等信息。
4.将这些信息存储到新创建的Mesh中。
5.设置新Mesh的Collider组件
6.移除SkinnedMeshRenderer组件,添加一个MeshRenderer组件并将新Mesh分配到MeshRenderer。
7.移除SkinnedMeshRenderer组件,将Animator组件上的Avatar设置为null(如果有)。
8.如果需要下一步动画,则将新Mesh添加到可变形模型中并且重新分配骨骼。
以上就是将SkinnedMeshRenderer转换为MeshRenderer的步骤。这通常用于一些特定的应用,比如将游戏中的静态装饰物体使用动态的可变形模型来替换,以达到更加真实的效果。但需要注意的是,转换后的Mesh不支持动画,必须手动更改动画。
相关问题
unity 修改skinnedmeshrenderer的materials
要修改SkinnedMeshRenderer的Materials,可以按照以下步骤进行:
1. 在Unity编辑器中选择包含SkinnedMeshRenderer组件的GameObject。
2. 在Inspector窗口中找到SkinnedMeshRenderer组件。
3. 展开Materials属性,可以看到一个Material列表。
4. 在这个列表中,您可以添加、删除或重新排列材质。您还可以直接从项目资源中拖放材质到列表中。
5. 您可以通过单击每个材质的图标来打开材质编辑器,并对其进行更改。
注意:每个材质都会影响SkinnedMeshRenderer的不同部分,例如,第一个材质可能用于头部,第二个材质用于身体,第三个材质用于手臂等等。因此,在更改材质时,请确保您知道每个材质的作用,以避免出现不良影响。
unity 中 SkinnedMeshRenderer mesh world position change to local position
To change the world position of a SkinnedMeshRenderer mesh to local position, you can use the Transform.InverseTransformPoint method. Here's an example:
```
// Get the world position of the mesh
Vector3 worldPosition = skinnedMeshRenderer.transform.TransformPoint(skinnedMeshRenderer.sharedMesh.vertices[0]);
// Convert the world position to local position
Vector3 localPosition = skinnedMeshRenderer.transform.InverseTransformPoint(worldPosition);
```
In this example, we're getting the world position of the first vertex in the shared mesh of the SkinnedMeshRenderer. We then use the Transform.InverseTransformPoint method to convert the world position to local position.
You can use this method to convert any world position to local position relative to the SkinnedMeshRenderer's transform.
阅读全文