TrackBuildRUtil.DynamicMesh.AddData C# (CSharp) Method

AddData() public method

Add new mesh data - all arrays are ordered together
public AddData ( Vector3 verts, Vector2 uvs, int tris, Vector3 norms, Vector4 tan, int subMesh ) : void
verts UnityEngine.Vector3
uvs UnityEngine.Vector2
tris int
norms UnityEngine.Vector3
tan UnityEngine.Vector4
subMesh int
return void
        public void AddData(Vector3[] verts, Vector2[] uvs, int[] tris, Vector3[] norms, Vector4[] tan, int subMesh)
        {
            if (MeshOverflow(verts.Length))
            {
                _overflow.AddData(verts, uvs, tris, norms, tan, subMesh);
                return;
            }

            int indiceBase = vertices.Count;
            vertices.AddRange(verts);
            uv.AddRange(uvs);
            tangents.AddRange(tan);

            if (!subTriangles.ContainsKey(subMesh))
                subTriangles.Add(subMesh, new List<int>());

            int newTriCount = tris.Length;
            for (int t = 0; t < newTriCount; t++)
            {
                int newTri = (indiceBase + tris[t]);
                triangles.Add(newTri);
                subTriangles[subMesh].Add(newTri);
            }
        }

Usage Example

示例#1
0
        /// <summary>
        /// Add new mesh data - all arrays are ordered together
        /// </summary>
        /// <param customName="verts">And array of verticies</param>
        /// <param customName="uvs">And array of uvs</param>
        /// <param customName="tris">And array of triangles</param>
        /// <param customName="subMesh">The submesh to add the data into</param>
        public void AddData(Vector3[] verts, Vector2[] uvs, int[] tris, Vector3[] norms, Vector4[] tan, int subMesh)
        {
            if (MeshOverflow(verts.Length))
            {
                _overflow.AddData(verts, uvs, tris, norms, tan, subMesh);
                return;
            }

            int indiceBase = vertices.Count;

            vertices.AddRange(verts);
            uv.AddRange(uvs);
            tangents.AddRange(tan);

            if (!subTriangles.ContainsKey(subMesh))
            {
                subTriangles.Add(subMesh, new List <int>());
            }

            int newTriCount = tris.Length;

            for (int t = 0; t < newTriCount; t++)
            {
                int newTri = (indiceBase + tris[t]);
                triangles.Add(newTri);
                subTriangles[subMesh].Add(newTri);
            }
        }