—
大家好,我因为工作原因,需要将Unity中的单体模型上的点,进行数据实时移动变换,
但我发现同样的模型在建模软件中,和引擎中是不一样的点数量,同样,点序号也不一样,所以我在后台无法进行有效的规则化控制;
所以想问问大家,有没有什么方法?或者已知脚本,可以做到将Unity中的模型点数量和序列,能调成与建模软件中一致?
或者能够在Unity中将一个单体模型上的点序号显示出来,再或者说能够在后台编辑器中,显示分辨出来?
—
建模软件中点序号,与Unity中模型的点序号数量及名称不一致,如何统一?以及获取点的序列号?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 来一杯龙舌兰 2024-08-02 10:42关注
Unity在导入模型时,可能会对模型进行优化,这可能会改变模型的顶点数量和顶点的顺序。如果你需要在Unity中使用和建模软件中完全相同的顶点数据,你可能需要禁用这些优化选项。
在Unity中,你可以通过以下步骤来禁用模型的优化:
- 在Project窗口中选择你的模型。
- 在Inspector窗口中,找到Model选项卡。
- 在Meshes部分,取消选中Optimize Mesh选项。
这应该可以保证Unity中的模型顶点数据和建模软件中的数据一致。
至于显示模型的顶点序号,Unity本身并没有提供这样的功能。但你可以通过编写脚本来实现。以下是一个简单的示例,它会在每个顶点的位置显示其序号:
using UnityEngine; [RequireComponent(typeof(MeshFilter))] public class VertexNumberDisplay : MonoBehaviour { void OnDrawGizmos() { Mesh mesh = GetComponent<MeshFilter>().mesh; Vector3[] vertices = mesh.vertices; for (int i = 0; i < vertices.Length; i++) { Gizmos.DrawSphere(transform.TransformPoint(vertices[i]), 0.1f); UnityEditor.Handles.Label(transform.TransformPoint(vertices[i]), i.ToString()); } } }
这个脚本使用了Gizmos和Handles来显示顶点序号,所以它只在Scene视图中有效,不会在Game视图中显示。你可以将这个脚本添加到你的模型上,然后在Scene视图中查看顶点序号。
请注意,这个脚本使用了UnityEditor命名空间,所以它不能在构建的游戏中使用,只能在Unity编辑器中使用。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 WPF动态创建页面内容
- ¥15 如何对TBSS的结果进行统计学的分析已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析
- ¥15 SQL数据库操作问题
- ¥100 关于lm339比较电路出现的问题
- ¥15 Matlab安装yalmip和cplex功能安装失败
- ¥15 加装宝马安卓中控改变开机画面
- ¥15 STK安装问题问问大家,这种情况应该怎么办
- ¥15 关于罗技鼠标宏lua文件的问题
- ¥15 halcon ocr mlp 识别问题
- ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线