Unity3D | 您所在的位置:网站首页 › unity3D画图为什么会散 › Unity3D |
Github源码 效果动态创建长度固定的可调节弧度的面,效果如图: 需要一个可以调节弧度的且长度固定的面(最多可调节至半圆型)。 从官方手册中可以知道,想要使用代码来创建Mesh需要至少四个步骤: 设置顶点数组(想要创建的面一共有多少个顶点)设置三角形信息(每三个顶点确定一个三角形,要顺时针的设置)设置法线信息(可以通过mesh的方法直接计算)设置UV信息(决定了图像信息如何在此Mesh上显示,其设置顺序和顶点数组的设置顺序相同) 顶点数组先讨论如何计算得到弧面上的顶点信息 由于需求的弧面是可以调节的(0°~180°),那么就分为两种情况讨论: 0°的弧面(也就是平面)非0°的弧面0°的弧面 要知道在模型中任何一个面都是由诸多三角形组成的,平面也不例外,一个平面至少由两个三角形组成。例如下图,该平面由2段四个三角形组成: 假设我们想要的平面宽高都为1,且平面位于XY轴平面上,那么其6个顶点分别为: 左上 (-0.5, 0.5) 左下 (-0.5, -0.5) 正上 (0, 0.5) 正下 (0, -0.5) 右上 (0.5, 0.5) 右下 (0.5, -0.5)其计算公式也很简单,拿到左上点,再计算出每段的分量,就可得到顶点数组了,可以看到下面这段代码是以列为单位为数组赋值,每次循环赋值上下两个顶点。 // 该平面由几段构成 int segments_count = 2; // 平面宽度 int planeWidth = 1; // 平面高度 int planeHeight = 1; // 平面每段的宽度值 float widthSetup = planeWidth * 1.0f / segments_count; // 该平面需要的顶点数 int vertex_count = (segments_count + 1) * 2; // 平面顶点数组 Vector3[] vertices = new Vector3[vertex_count]; for (int si = 0; si |
CopyRight 2018-2019 实验室设备网 版权所有 |