Je suis sur un petit projet qui me permet de me familiariser un peu plus avec Unity et je gère notamment dans ce projet un plateau dont les cases sont des prismes hexagonaux.
Ces cases sont chacune modélisées par un GameObject puisque j'envisage de pouvoir les détruire/déplacer/modifier et pour l'instant je me contente de modifier leurs textures lorsqu'elles sont sélectionnées, par exemple.
Mon problème est donc le suivant : lorsqu'une case est sélectionnée et que son script appelle le script du plateau pour pouvoir gérer l'évènement au travers de cette fonction :
Code : Tout sélectionner
public void OnCaseSelection (HexCaseScript hcs) {
if (_selected == null)
{
hcs.gameObject.renderer.material.mainTexture = hcs._stexture;
_selected = hcs;
}
else if (_selected == hcs)
{
hcs.gameObject.renderer.material.mainTexture = hcs._texture;
_selected = null;
}
else
{
_selected.gameObject.renderer.material.mainTexture = _selected._texture;
hcs.gameObject.renderer.material.mainTexture = hcs._stexture;
_selected = hcs;
}
}
Alors que lorsque je veux créer une nouvelle case sans collider qui doit suivre le pointeur de la souris de cette façon :
Code : Tout sélectionner
public void CreateCasePointeur (Vector3 pointeur) {
hcasep = (GameObject) Instantiate(_hexcase, pointeur, Quaternion.identity);
HexCaseScript hcps = hcasep.GetComponent<HexCaseScript>();
hcasep.renderer.material.mainTexture = hcps._stexture;
}
J'imagine que la réponse est toute bête mais j'ai beau retourner le problème dans tous les sens, je ne trouve pas ce qui cloche.
Quelqu'un a une idée de l'erreur que j'ai faite ?
Merci d'avance pour vos réponses.