using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
public class CreateCube : MonoBehaviour
{
private Vector3[] m_Vertex;
private int[] m_triangle;
void Start()
{
Mesh mesh = new Mesh();
var meshFilter = GetComponent<MeshFilter>();
meshFilter.mesh = mesh;
mesh.name = "MyCube";
GenerateVertex();
GenerateTriangle();
mesh.vertices = m_Vertex;
mesh.triangles = m_triangle;
}
void GenerateVertex()
{
m_Vertex = new Vector3[8];
m_Vertex[0] = new Vector3(-0.5f, -0.5f, -0.5f);//左下
m_Vertex[1] = new Vector3(0.5f, -0.5f, -0.5f);//右下
m_Vertex[2] = new Vector3(-0.5f, -0.5f, 0.5f);//左上
m_Vertex[3] = new Vector3(0.5f, -0.5f, 0.5f);//右上
m_Vertex[4] = new Vector3(-0.5f, 0.5f, -0.5f);//左下
m_Vertex[5] = new Vector3(0.5f, 0.5f, -0.5f);//右下
m_Vertex[6] = new Vector3(-0.5f, 0.5f, 0.5f);//左上
m_Vertex[7] = new Vector3(0.5f, 0.5f, 0.5f);//右上
}
void GenerateTriangle()
{
//下面
m_triangle = new int[36];
m_triangle[0] = 0;
m_triangle[1] = 1;
m_triangle[2] = 2;
m_triangle[3] = 1;
m_triangle[4] = 3;
m_triangle[5] = 2;
//上面
m_triangle[6] = 6;
m_triangle[7] = 7;
m_triangle[8] = 5;
m_triangle[9] = 6;
m_triangle[10] = 5;
m_triangle[11] = 4;
//前
m_triangle[12] = 0;
m_triangle[13] = 4;
m_triangle[14] = 5;
m_triangle[15] = 0;
m_triangle[16] = 5;
m_triangle[17] = 1;
//后
m_triangle[18] = 3;
m_triangle[19] = 7;
m_triangle[20] = 6;
m_triangle[21] = 3;
m_triangle[22] = 6;
m_triangle[23] = 2;
//左
m_triangle[24] = 2;
m_triangle[25] = 6;
m_triangle[26] = 4;
m_triangle[27] = 2;
m_triangle[28] = 4;
m_triangle[29] = 0;
//右
m_triangle[30] = 1;
m_triangle[31] = 5;
m_triangle[32] = 7;
m_triangle[33] = 1;
m_triangle[34] = 7;
m_triangle[35] = 3;
}
private void OnDrawGizmos()
{
if (m_Vertex == null) return;
for (int i = 0; i < m_Vertex.Length; i++)
{
Gizmos.DrawSphere(transform.TransformPoint(m_Vertex[i]), 0.1f);
}
}
}
Unity生成Cube
最新推荐文章于 2024-01-09 21:53:51 发布