资源大湿 发表于 2018-8-1 10:08

用代码创建一个cube-知识点(vertices、triangle、uvs)


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// Draw AC ube. MDOE BY U3DCHINA.COM
/// </summary>
public class DrawACube : MonoBehaviour {
public GameObject cube;
// Use this for initialization
void Start () {
    MeshFilter mf = cube.GetComponent<MeshFilter> ();
    Mesh mesh = mf.mesh;
    Vector3[] vertices = new Vector3[]{
      //front
      new Vector3(-1,1,1),
      new Vector3(1,1,1),
      new Vector3(-1,-1,1),
      new Vector3(1,-1,1),

      //top
      new Vector3(-1,1,-1),
      new Vector3(1,1,-1),
      new Vector3(-1,1,1),
      new Vector3(1,1,1),
   
      //right

      new Vector3(1,1,1),
      new Vector3(1,1,-1),
      new Vector3(1,-1,1),
      new Vector3(1,-1,-1),
      //left

      new Vector3(-1,1,-1),
      new Vector3(-1,1,1),
      new Vector3(-1,-1,-1),
      new Vector3(-1,-1,1),
      //back

      new Vector3(1,1,-1),
      new Vector3(-1,1,-1),
      new Vector3(1,-1,-1),
      new Vector3(-1,-1,-1),
      //bottom

      new Vector3(-1,-1,1),
      new Vector3(1,-1,1),
      new Vector3(-1,-1,-1),
      new Vector3(1,-1,-1)

    };
    int[] triangles = new int[]{
      0,2,3,
      3,1,0,

      0+4,2+4,3+4,
      3+4,1+4,0+4,

      0+4*2,2+4*2,3+4*2,
      3+4*2,1+4*2,0+4*2,

      0+4*3,2+4*3,3+4*3,
      3+4*3,1+4*3,0+4*3,

      0+4*4,2+4*4,3+4*4,
      3+4*4,1+4*4,0+4*4,

      0+4*5,2+4*5,3+4*5,
      3+4*5,1+4*5,0+4*5,
    };
    //UVs//
    Vector2[] uvs = new Vector2[]
    {
      //front face// 0,0 is bottom left, 1,1 is top right//
      new Vector2(0,1),
      new Vector2(1,1),
      new Vector2(0,0),
      new Vector2(1,0),

      new Vector2(0,1),
      new Vector2(0,0),
      new Vector2(1,1),
      new Vector2(1,0),

      new Vector2(0,1),
      new Vector2(0,0),
      new Vector2(1,1),
      new Vector2(1,0),

      new Vector2(0,1),
      new Vector2(0,0),
      new Vector2(1,1),
      new Vector2(1,0),

      new Vector2(0,1),
      new Vector2(0,0),
      new Vector2(1,1),
      new Vector2(1,0),

      new Vector2(0,1),
      new Vector2(0,0),
      new Vector2(1,1),
      new Vector2(1,0)
    };
    mesh.Clear ();
    mesh.vertices = vertices;
    mesh.triangles = triangles;
    mesh.uv = uvs;
    mesh.RecalculateNormals ();
}

// Update is called once per frame
void Update () {
   
}
}

资源大湿 发表于 2018-8-1 10:20

记住triangles 顺时针绘制

xiaozhishiwo 发表于 2018-9-17 08:04

楼主是超人

从开始到现在 发表于 2018-9-17 08:03

顶顶多好

hjscyl 发表于 2018-9-17 08:10

真心顶

hjscyl 发表于 2018-9-17 08:39

说的非常好

hjscyl 发表于 2018-9-17 08:25

LZ真是人才

a997093108 发表于 2018-12-3 22:32


也不能一竿子打死呀!

lvcoc 发表于 2019-1-9 13:49


感谢楼主的无私分享!

valakaslove 发表于 2019-7-21 07:54

很不错
页: [1]
查看完整版本: 用代码创建一个cube-知识点(vertices、triangle、uvs)