J'ai fait un mesh
personnalisé dans le code (mais cela semble se produire sur tout et quand je l'affiche en jeu ou en l'éditeur va faire disparaître certains visages pour que je puisse le voir plus clairement. Je pourrais comprendre comment cela serait utile, mais c'est plutôt agaçant non seulement pour le gameplay mais aussi pour travailler sur le projet. Il y a probablement une boîte que je dois décocher, mais je ne sais pas ce que c'est. J'ai inclus quelques captures d'écran (la première est en jeu et la seconde est dans l'éditeur, le maillage doit être en forme de pyramide complète). Ma maille pour un cube a 12 triangles, 8 sommets, et aucun uv où le maillage par défaut a 24 sommets, 12 triangles, et uv et uv2, juste pour référence.L'unité ne rend pas certaines parties de ma maille pour essayer de rendre d'autres parties visiblesGameObject
que je fais)
Voici mes réglages de l'appareil:
[EDIT] Non! J'avais tort! Il fonctionne parfaitement bien avec la valeur par défaut cube
et d'autres objets par défaut
Voici le code je:
if (GameObject.Find ("Hopefully a Cube") == null) {
GameObject cube = new GameObject ("Hopefully a Cube");
Mesh mesh = new Mesh();
Vector3[] verticies = new Vector3[8];
verticies [0] = new Vector3 (0, 0, 0);
verticies [1] = new Vector3 (100, 0, 0);
verticies [2] = new Vector3 (0, 100, 0);
verticies [3] = new Vector3 (100, 100, 0);
verticies [4] = new Vector3 (0, 0, 100);
verticies [5] = new Vector3 (100, 0, 100);
verticies [6] = new Vector3 (0, 100, 100);
verticies [7] = new Vector3 (100, 100, 100);
mesh.vertices = verticies;
int[] tris = new int[36];
tris = new[] { 0, 2, 1, 2, 3, 1, 4, 2, 0, 6, 2, 4, 4, 6, 5, 6, 7, 5, 1, 3, 5, 3, 7, 5, 0, 4, 1, 4, 5, 1, 2, 6, 3, 6, 7, 3 };
mesh.triangles = tris;
mesh.RecalculateNormals();
MeshFilter meshFilter = cube.AddComponent<MeshFilter>();
meshFilter.mesh = mesh;
MeshRenderer meshRenderer = cube.AddComponent<MeshRenderer>();
Texture2D texture = new Texture2D (1, 1);
texture.SetPixels (new[] { Color.blue });
meshRenderer.sharedMaterial = new Material (meshShader);
meshRenderer.sharedMaterial.mainTexture = texture;
cube.SetActive (true);
}
if (GameObject.Find ("Hopefully a Pyramid") == null) {
GameObject pyramid = new GameObject ("Hopefully a Pyramid");
Mesh mesh = new Mesh();
Vector3[] verticies = new Vector3[5];
verticies [0] = new Vector3 (0, 0, 0);
verticies [1] = new Vector3 (100, 0, 0);
verticies [2] = new Vector3 (0, 0, 100);
verticies [3] = new Vector3 (100, 0, 100);
verticies [4] = new Vector3 (50, 100, 50);
mesh.vertices = verticies;
int[] tris = new int[18];
tris = new[] { 0, 2, 1, 2, 3, 1, 0, 4, 1, 2, 4, 0, 3, 4, 2, 3, 4, 1 };
mesh.triangles = tris;
mesh.RecalculateNormals();
MeshFilter meshFilter = pyramid.AddComponent<MeshFilter>();
meshFilter.mesh = mesh;
MeshRenderer meshRenderer = pyramid.AddComponent<MeshRenderer>();
Texture2D texture = new Texture2D (1, 1);
texture.SetPixels (new[] { Color.blue });
meshRenderer.sharedMaterial = new Material (meshShader);
meshRenderer.sharedMaterial.mainTexture = texture;
pyramid.SetActive (true);
}
im un 99% sûr qu'il a à voir avec l'ordre de liquidation. l'effet que vous voyez le plus probable n'est pas "ainsi vous pouvez le voir plus clairement", c'est parce que les indices (ou comme l'unité l'appelle triangles, pourquoi jamais, sont dans le mauvais ordre). veuillez poster le code que vous utilisez pour générer le cube. – yes
J'ai ajouté le code que j'ai utilisé. – dsiegler19
@ dsiegler19 a ajouté la réponse et une courte explication. veuillez le cocher comme correct. – yes