depuis peu j'ai un problème sur mon projet qui est apparu de façon inopinée et que je n'arrive pas à me débarrasser.
Je suis sur la fin de mon projet et peut-être qu'un œil neuf m'aidera à y voir un peu mieux.
Lorsque j'appuie sur un bouton sur un canvas, mon cube tourne. Comme pour un dé, je récupère l'information de la face du haut, ce qui me permet de lancer une animation ainsi que de changer subtilement l'orientation de mon "plateau". Je change l'orientation de mon "plateau", pour l'avoir toujours du bon sens quel que soit le côté d'où il arrive.(ça m'aide grandement pour optimiser pas mal les éléments 3D que je ne voudrais qu'en 2D, et ça garde une cohérence visuelle).
Mais voilà, une des faces ne réagit plus. L'information indiquant sur quelle face elle est et toujours bonne, l'animation se lance toujours, mais seulement l'orientation ne fonctionne plus.
J'aimerais savoir s'il existe un moyen de debugger mon problème :
Est-ce qu'unity lit la ligne dans mon script qui me permet de faire ce changement d'orientation?
S'il la lit alors pourquoi ne l'excute t'il pas?
Mais s'il ne la lit pas, alors pourquoi est-ce qu'il y a un saut au niveau de cette ligne? Comment arranger ça?
Merci à tous ceux qui m'aideront à comprendre mon problème
Cordialement 1300VRTICAL
Code utilisé:
topFace
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TopFace : MonoBehaviour
{
public static int ChristianToScore;
// Update is called once per frame
void Update()
{
if(Vector3.Angle(this.transform.right, -Vector3.up) < 1)
{ChristianToScore = 4;}
else if(Vector3.Angle(this.transform.right, Vector3.up) < 1)
{ChristianToScore = 3;}
else if(Vector3.Angle(this.transform.up, Vector3.up) < 1)
{ChristianToScore = 6;}
else if(Vector3.Angle(this.transform.up, -Vector3.up) < 1)
{ChristianToScore = 1;}
else if(Vector3.Angle(this.transform.forward, Vector3.up) < 1)
{ChristianToScore = 2;}
else if(Vector3.Angle(this.transform.forward, -Vector3.up) < 1)
{ChristianToScore = 5;}
Debug.Log(ChristianToScore);
}
}
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Face6 : MonoBehaviour
{
public GameObject BalleJaune;
private bool enHaut;
private bool once = false;
private Animator _animator;
void Start()
{
BalleJaune.GetComponent<Animation>().Stop("MondeDroit");
BalleJaune.SetActiveRecursively(false);
}
void Update()
{
if (TopFace.ChristianToScore == 2 && !once)
{
BalleJaune.SetActiveRecursively(true);
MonterBalle();
Quaternion target = Quaternion.Euler(0, 180, 0);
BalleJaune.transform.rotation = Quaternion.Slerp(transform.rotation, target,1);
}
else if(TopFace.ChristianToScore !=2 && once)
{
DescentBalle();
StartCoroutine (TTimer());
}
}
public void MonterBalle()
{
once = true;
enHaut = true;
BalleJaune.GetComponent<Animation>().Play("MondeDroit");
}
public void DescentBalle()
{
once = true;
enHaut = true;
BalleJaune.GetComponent<Animation>().Play("MondeDroitRR");
once = false;
}
IEnumerator TTimer()
{
yield return new WaitForSeconds (0.3f);
BalleJaune.SetActiveRecursively(false);
}
}
https://vimeo.com/359252918