Inverter Normais no Unity 3D / esferas
Eu escrevi esse código para o meu jogo e o que eu quero é mudar os normais em uma textura em união. Eu tenho um modelo e uma textura e desejo que a textura esteja dentro do modelo de esfera e não do lado de fora. Eu quero criar um efeito panorâmico 360 movendo a câmera pelas imagens dentro da esfera em cima da textura invertida.
Agora, quando eu aperto o botão play pela primeira vez, ele funciona perfeitamente, mas quando o paro e quero jogar novamente, não vejo o quadro nem os arredores.
Parece que funciona a cada 2 vezes que tento jogar. Sou meio novo nisso e não tenho idéia de onde está meu erro.
using UnityEngine;
using System.Collections;
public class InvertObjectNormals : MonoBehaviour
{
public GameObject SferaPanoramica;
void Awake()
{
InvertSphere();
}
void InvertSphere()
{
Vector3[] normals = SferaPanoramica.GetComponent<MeshFilter>().sharedMesh.normals;
for(int i = 0; i < normals.Length; i++)
{
normals[i] = -normals[i];
}
SferaPanoramica.GetComponent<MeshFilter>().sharedMesh.normals = normals;
int[] triangles = SferaPanoramica.GetComponent<MeshFilter>().sharedMesh.triangles;
for (int i = 0; i < triangles.Length; i+=3)
{
int t = triangles[i];
triangles[i] = triangles[i + 2];
triangles[i + 2] = t;
}
SferaPanoramica.GetComponent<MeshFilter>().sharedMesh.triangles= triangles;
}
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}