Salut jm et Max,
Bon bah avant de vous répondre j'ai voulu essayer de me corriger grâce à vos réponses, mais maintenant ça me met cette erreur là, dans mon 1er script, là où j'avais pas d'erreur avant
:
NullReferenceException: Object reference not set to an instance of an object
Sortie_de_jeu.OnTriggerEnter (UnityEngine.Collider other) (at Assets/Scripts/Sortie_de_jeu.cs:30)
Et la ligne 30 c'est ça:
Ci dessous les réponses que j'avais commencé à écrire:
Ah oui merde tu as raison jm ya un truc qui n'apparait pas dans ce que je vous ai montré, en fait c'est le vector3 d'un objet parent/enfant, c'est donc son vector3 que je réccupère dans mon 1er script:
(Et quand je le récupère il me donne bien le vector3 que j'attends, ça correspond bien)
Max, Ah.... mais pourtant j'ai bien utilisé "scripte" ici:
Code : Tout sélectionner
clone_barre = Instantiate(barre, scripte.remettre_coordonnées_barre, Quaternion.identity) as GameObject;
Alors comment peut il être null?
D'accord Jm, je voulais éviter de mettre tous le scripts pour parasiter la réflexion, mais les voici:
1) Script Sortie_de_jeu :
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Sortie_de_jeu : MonoBehaviour
{
Gestion scripte1;
public Vector3 remettre_coordonnées_barre;
// Start is called before the first frame update
void Start()
{
para = GetComponent<Gestion>();
}
// Update is called once per frame
void Update()
{
}
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.name == "Sphere")
{
remettre_coordonnées_barre = GameObject.Find("Clone_de_la_Barre").transform.localPosition;
Debug.Log(remettre_coordonnées_barre); // ça ça marche bien!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
scripte1.reset_barre(); // Il me met une nouvelle erreur là maintenant
}
}
}
2) Script Gestion:
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; // utilisé par exemple pour les textes
using UnityEngine.SceneManagement;
using UnityEngine.UIElements;
public class Gestion: MonoBehaviour
{
public GameObject barre;
public GameObject clone_barre;
public Vector3 pos_barre;
Sortie_de_jeu scripte;
// Start is called before the first frame update
void Start()
{
scripte = GetComponent<Sortie_de_jeu>();
}
// Update is called once per frame
void Update()
{
}
public void reset_barre()
{
Destroy(clone_barre);
Debug.Log("RAZ : " + scripte.remettre_coordonnées_barre);
clone_barre = Instantiate(barre, scripte.remettre_coordonnées_barre, Quaternion.identity) as GameObject;
}