Bonjour,
je pense que tu mélanges un peu tout, et tu confonds un peu GameObject, component et script.
Quand tu définis
public GrassSc grassSc;
, tu fais référence à un script, qui est positionné sur un de tes
GameObject en tant que
Component.
Là on parle d'un script qui s'appelle
GrassSc et d'un
GameObject qui lui se nomme
Grass (et sur lequel le script doit être placé comme component).
Donc si tu veux changer la position du GameObject Grass lors d'un click button, c'est la référence vers le GameObject
Grass qu'il faut chercher (ou simplement son Transform)., et donc dans ton code remplacer
public GrassSc grassSc;
par
public GameObject grass;
, puis dans ta fonction
clickRight() écrire
grass.transform.position += new Vector3(1, 1, 0);
par exemple.
Edit: J'ai utilisé [SerializeField] au lieu de GameObject.FindWithTag("Player"). Ces deux techniques sont-elles équivalentes ou je rate quelque chose.
Désolé je suis perdu, je pars de zéro.
Non rien à voir. [SerializeField] permet d'accéder au niveau de l'inspector à une donnée qui ne serait pas public. Quand à
GameObject.FindWithTag(), comme son nom l'indique, il permet de récupérer la référence d'un
GameObject de ta scène qui aurait le tag spécifié (si il existe bien sûr).
Je pense que travailler les bases serait une bonne approche dans un premier temps. Car là tu butes sur des trucs vraiment simples, et tu te prend la tête sur des choses où tu ne devrais pas