鬼玖古 2024-08-02 10:32 采纳率: 0%
浏览 3

建模软件中点序号,与Unity中模型的点序号数量及名称不一致,如何统一?以及获取点的序列号?


大家好,我因为工作原因,需要将Unity中的单体模型上的点,进行数据实时移动变换,
但我发现同样的模型在建模软件中,和引擎中是不一样的点数量,同样,点序号也不一样,所以我在后台无法进行有效的规则化控制;
所以想问问大家,有没有什么方法?或者已知脚本,可以做到将Unity中的模型点数量和序列,能调成与建模软件中一致?
或者能够在Unity中将一个单体模型上的点序号显示出来,再或者说能够在后台编辑器中,显示分辨出来?

img

  • 写回答

1条回答 默认 最新

  • 来一杯龙舌兰 2024-08-02 10:42
    关注

    Unity在导入模型时,可能会对模型进行优化,这可能会改变模型的顶点数量和顶点的顺序。如果你需要在Unity中使用和建模软件中完全相同的顶点数据,你可能需要禁用这些优化选项。

    在Unity中,你可以通过以下步骤来禁用模型的优化:

    1. 在Project窗口中选择你的模型。
    2. 在Inspector窗口中,找到Model选项卡。
    3. 在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编辑器中使用。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月2日

悬赏问题

  • ¥15 WPF动态创建页面内容
  • ¥15 如何对TBSS的结果进行统计学的分析已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析
  • ¥15 SQL数据库操作问题
  • ¥100 关于lm339比较电路出现的问题
  • ¥15 Matlab安装yalmip和cplex功能安装失败
  • ¥15 加装宝马安卓中控改变开机画面
  • ¥15 STK安装问题问问大家,这种情况应该怎么办
  • ¥15 关于罗技鼠标宏lua文件的问题
  • ¥15 halcon ocr mlp 识别问题
  • ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线