Bonjour,

Dans la fonction suivante je récupère des données 3D et crée un objet avec celles ci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
        public void setUpCollision()
        {
            TriangleMesh triMesh = new TriangleMesh();
            foreach (ModelMesh m in model.Meshes)
            {
                int bufferSize = m.VertexBuffer.SizeInBytes*8/96;
 
                Vector3[] vBuffer = new Vector3[bufferSize];
                m.VertexBuffer.GetData<Vector3>(vBuffer);
                List<Vector3> vectorList = new List<Vector3>(vBuffer);
 
                TriangleVertexIndices[] indices = new TriangleVertexIndices[bufferSize]; ;
                m.VertexBuffer.GetData<TriangleVertexIndices>(indices);
                List<TriangleVertexIndices> indiceList = new List<TriangleVertexIndices>();
 
                triMesh.CreateMesh(vectorList, indiceList, 4, 500.0f);
            }
            _skin.AddPrimitive(triMesh, (int)MaterialTable.MaterialID.UserDefined, new MaterialProperties(0.8f, 0.8f, 0.7f));
 
        }
mais j'ai une erreur ArrayTypeMismatchException dans la fonction qui suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
        public void AddTriangles(List<Vector3> _positions, List<TriangleVertexIndices> _tris)
        {
            // copy the position data into a array
            positions = new Vector3[_positions.Count];
            _positions.CopyTo(positions);
 
            // copy the triangles
            tris = new TriangleVertexIndices[_tris.Count];
            _tris.CopyTo(tris);
        }
c'est à dire :

Citation Envoyé par msdn
The exception that is thrown when an attempt is made to store an element of the wrong type within an array.
pourtant les types sont les mêmes !