コード例 #1
0
 void GenerateMaterial(MassAnimation.Avatar.Entities.ShapeUnity shape, GameObject go)
 {
     if (null != shape.TextureEntity)
     {
         var texName = shape.TextureEntity.ImageName;
         go.GetComponent <Renderer>().material = CreateNewMaterial(go.GetComponent <Renderer>().sharedMaterial, texName);
     }
 }
コード例 #2
0
 void GenerateGameObject(MassAnimation.Avatar.Entities.ShapeUnity shape, GameObject parent)
 {
     try
     {
         var go = (GameObject)GameObject.Instantiate(AnimatableMeshPrefab);
         go.hideFlags        = HideFlags.HideInHierarchy | HideFlags.HideInInspector | HideFlags.NotEditable;
         go.transform.parent = parent.transform;
         GenerateMaterial(shape, go);
         GenerateMesh(shape, go);
     }
     catch (UnityException exp)
     {
         Debug.LogError(exp.Message);
         throw;
     }
 }
コード例 #3
0
        void GenerateMesh(MassAnimation.Avatar.Entities.ShapeUnity shape, GameObject go)
        {
            if (null != shape.GeoModel)
            {
                var indices  = shape.GeoModel.Indices;
                var vertices = shape.GeoModel.Vertices;

                var mesh = new Mesh();
                var mf   = go.GetComponent <MeshFilter>();
                mf.mesh = mesh;

                mesh.vertices = vertices.AllPoints.Select(p => new Vector3(p.X, p.Y, p.Z)).ToArray();

                mesh.uv = shape.TexureMapping.UVs.AllPoints.Select(uv => new Vector2(uv.X, uv.Y)).ToArray();

                mesh.triangles = indices.AllCoordIndices.SelectMany(idx => idx).ToArray();

                mesh.RecalculateNormals();

                var umfs = go.GetComponent <UpdateMeshFromShape>();
                umfs.SetShape(shape);
            }
        }