J'ai un petit soucis sur Unity.
J'ai trouvé un script qui me permets de faire un flip de mes faces. Jusque la tout fonctionne.
Par contre j'aurais aimé utiliser un bouton Toggle pour activer ou désactiver ce script.
J'arrive à activer le script quand il est désactivé de base. Mais quand il est activé impossible de le désactiver.
D'après mes recherches j'ai cru comprendre que c'était du au fait que l'ensemble de mon script se trouve dans "void Start". Or je ne sais pas ou mettre l'ensemble de mon script pour arriver à le désactiver. Si je le mets dans "void Update" ça marche mais ça fait un effet de scintillement. Je suppose que comme il calcule à chaque image il passe son temps à flipper les normales.
J'arrive à faire ce que je veux en créant deux objets, un avec les faces inversées et l'autre normal. Mais ça prend de la mémoire pour rien !
Merci beaucoup pour votre aide
Voici le script :
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(MeshFilter))]
public class ReverseNormals : MonoBehaviour {
void Start () {
MeshFilter filter = GetComponent(typeof (MeshFilter)) as MeshFilter;
if (filter != null)
{
Mesh mesh = filter.mesh;
Vector3[] normals = mesh.normals;
for (int i=0;i<normals.Length;i++)
normals[i] = -normals[i];
mesh.normals = normals;
for (int m=0;m<mesh.subMeshCount;m++)
{
int[] triangles = mesh.GetTriangles(m);
for (int i=0;i<triangles.Length;i+=3)
{
int temp = triangles[i + 0];
triangles[i + 0] = triangles[i + 1];
triangles[i + 1] = temp;
}
mesh.SetTriangles(triangles, m);
}
}
}
}