Prova a mettere anche un +360 gradi, a volte unity e' un po stro***:Ok ho fatto una cosa del genere
l'ho inserito in SmoothRotation perché in IEnumerator se ruotavo velocemente prima che si concludesse la rotazione non assegnava i punti, nonostante questo però i punti non li assegna sempre, nel senso che la maggior parte delle volte appena la rotazione arriva a 0 aumenta un punto, ma a volte capita che uno o due esagoni, non appena arrivano a rotazione 0 non assegna il punto non capisco perchè, poi però se faccio ruotare di nuovo lo stesso fino a 0 lo assegna (anche se non sempre, a volte devo ripeterlo più di una volta). Ho impostato che gli esagoni partino sempre da una rotazione diversa da 0 in modo da non togliere punti erroneamente.C#:if (cRot == 0 || cRot == -360) finelivello.instance.onExagonComplete (); if (cRot == -60) finelivello.instance.onExagonBreak ();
C#:
if (cRot == 0 || cRot == -360 || cRot == 360)
finelivello.instance.onExagonComplete ();
Ad esempio se cRot = 1, il giro completo sara' a 0+1, -360+1, 360+1.
Un altra cosa che ti consiglio di fare e' aggiungere un bool tipo:
C#:
bool hasAddedPoint = false;
//...
if ((cRot == 0 || cRot == -360 || cRot == 360 )&&!hasAddedPoint) // evita di aggiungere due volte lo stesso punto
{
finelivello.instance.onExagonComplete ();
hasAddedPoint = true;
}
//...
if(hasAddedPoint && /*condizione che fa annulare il completamento dell'esagono*/) // togli il punto solo se e' stato aggiunto in precedenza
{
finelivello.instance.onExagonBreak ();
hasAddedPoint = false;
}