1.Unity中每个模型以及各种图形各种UI都是用三角形绘制的。
2.如果顺时针绘制的话正面可见背面不可见,逆时针反之。
3.UV(Vector2)是显示贴图的坐标,是一个0-1的值.法线,始终垂直于某平面的虚线。曲线的法线是垂直于曲线上一点的切线的直线,曲面上某一点的法线指的是经过这一点并且与该点切平面垂直的那条直线(即向量)。
用C#做了一个小项目,类似于摇奖效果(效果演示在下边)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Sanjiao : MonoBehaviour
{
public int n = 4;
public float r = 5;
// Start is called before the first frame update
void Start()
{
Mesh mesh = new Mesh();
float ang = 2 * Mathf.PI / n;
List<Vector3> vertices = new List<Vector3>();
List<int> triangles = new List<int>();
for (int i = 0; i < n/2+1; i++)
{
float xr = Mathf.Sin(i*ang)*r;
float y = Mathf.Cos(i * ang)*r;
for (int j = 0; j < n; j++)
{
float x = Mathf.Sin(j * ang) * xr;
float z = Mathf.Cos(j * ang) * xr;
vertices.Add(new Vector3(x,y,z));
if (j==n-1)
{
float x0 = Mathf.Sin(j * 0) * xr;
float z0 = Mathf.Cos(j * 0) * xr;
vertices.Add(new Vector3(x0, y, z0));
}
if (i<n/2&&j<n)
{
triangles.Add(i*(n+1) +j);
triangles.Add(i * (n + 1) + j+1);
triangles.Add((i + 1) * (n + 1) + j);
triangles.Add((i + 1) * (n + 1) + j);
triangles.Add(i * (n + 1) + j+1);
triangles.Add((i + 1) * (n + 1) + j+1);
}
}
}
mesh.vertices = vertices.ToArray();
mesh.triangles = triangles.ToArray();
GetComponent<MeshFilter>().mesh = mesh;
GetComponent<MeshCollider>().sharedMesh = mesh;
}
// Update is called once per frame
void Update()
{
}
}