sharedMesh.vertices得到的坐标只有0和1
时间: 2024-04-15 09:25:54 浏览: 19
如果你的模型上的顶点坐标值只有0和1,那么可能有几个原因导致这种情况发生:
1. 模型的顶点坐标被归一化到0和1之间。在某些情况下,模型的顶点坐标可能会在建模软件中被归一化到0到1的范围内。这是一种常见的做法,以确保模型在不同尺寸和比例的场景中能够正确显示。如果你的模型是经过归一化处理的,那么得到的顶点坐标值确实只会在0和1之间。
2. 你可能没有正确地访问到模型的顶点坐标。请确保你在代码中正确地获取了模型的顶点信息,并且使用了正确的属性或方法来获取顶点坐标。通常情况下,你可以通过 `meshFilter.sharedMesh.vertices` 或者 `mesh.vertices` 来获取顶点坐标。
3. 如果你的模型确实只有0和1的顶点坐标值,那么可能是模型本身的问题。检查模型文件是否正确,或者尝试使用其他模型进行测试,看看是否会得到正确的顶点坐标值。
请确保你正在正确地获取模型的顶点坐标,并且检查模型本身是否存在问题。如果问题仍然存在,请提供更多关于你的模型和代码的详细信息,以便我能够更好地帮助你。
相关问题
Vector3 center = GetComponent<MeshFilter>().sharedMesh.bounds.center; 得到的是0
如果你得到的几何中心位置是 `(0, 0, 0)`,可能有几个原因导致这种情况发生:
1. 网格(Mesh)的几何中心本身就是 `(0, 0, 0)`。这意味着网格的顶点分布在以原点为中心的对称区域内,并且它们的平均位置正好是 `(0, 0, 0)`。在这种情况下,得到几何中心位置为 `(0, 0, 0)` 是正常的。
2. `MeshFilter` 组件没有正确的分配网格(Mesh)。请确保你的物体上有一个 `MeshFilter` 组件,并且已经分配了一个有效的网格。如果未分配网格,或者分配了一个没有顶点的空网格,那么得到的几何中心位置可能会是 `(0, 0, 0)`。
3. 物体本身的变换(Transform)可能导致几何中心位置不正确。请确保物体的比例、旋转和位置没有被修改,否则可能会影响到几何中心位置的计算。
你可以通过检查以上问题来确定为什么得到的几何中心位置是 `(0, 0, 0)`。如果问题仍然存在,请提供更多关于你的物体和场景设置的信息,以便我能够更好地帮助你。
unity获取模型网格顶点坐标
要在Unity中获取模型网格的顶点坐标,你可以使用`Mesh`类的`vertices`属性。以下是一个示例代码,演示了如何获取模型网格的顶点坐标:
```csharp
using UnityEngine;
public class GetMeshVertices : MonoBehaviour
{
void Start()
{
MeshFilter meshFilter = GetComponent<MeshFilter>();
if (meshFilter != null)
{
Mesh mesh = meshFilter.sharedMesh;
if (mesh != null)
{
Vector3[] vertices = mesh.vertices;
// 遍历顶点坐标并打印
for (int i = 0; i < vertices.Length; i++)
{
Debug.Log("顶点 " + i + " 的坐标:" + vertices[i]);
}
}
}
}
}
```
在上述示例代码中,我们首先获取了附加在物体上的`MeshFilter`组件。然后,我们使用`sharedMesh`属性获取到`Mesh`对象。接下来,通过访问`vertices`属性,我们可以获取到顶点坐标数组。
在这个示例中,我们遍历了顶点数组,并通过`Debug.Log`打印了每个顶点的坐标。
请确保你的物体上有一个包含网格数据的`MeshFilter`组件,并且已经赋予了相应的网格。这样你才能成功获取到顶点坐标。