Page 1 sur 1

[RESOLUS] [DB-AL] Deplacer un gameobject sur la position d'un autre gameobject se trouvant dans un tableau

Publié : 06 Juin 2018 20:17
par FriteCoca
Bonjour, j'ai 2 soucis.

Premièrement, j'ai besoins de téléporter mon jouer sur la position d'un gameobject sur trouvant dans un tableau

J'ai essayé

Code : Tout sélectionner

transform.position = playerGroupSpawn[0].transform.position;
Mais j'ai cette erreur :

Code : Tout sélectionner

NullReferenceException: Object reference not set to an instance of an object
battleController.changescene () (at Assets/script/battleController.cs:48)
battleController.OnTriggerEnter (UnityEngine.Collider other) (at Assets/script/battleController.cs:35)
Voici mon script :

Code : Tout sélectionner

   public string battleSceneToLoad;
    public GameObject[] playerGroupSpawn;
    bool ifcombat = false;

    void Start() {
    }


    void Update() {

        playerGroupSpawn[0] = GameObject.Find("point1");
        playerGroupSpawn[1] = GameObject.Find("point2");
        playerGroupSpawn[2] = GameObject.Find("point3");
        playerGroupSpawn[3] = GameObject.Find("point4");
    }

    void OnTriggerEnter(Collider other)
    {
        if (other.tag == "cityBattle")
        {
            changescene();
        }
    }

    void changescene()
    {
        SceneManager.LoadScene(battleSceneToLoad, LoadSceneMode.Additive);
        Scene nextScene = SceneManager.GetSceneAt(1);
        SceneManager.MoveGameObjectToScene(gameObject, nextScene);
        SceneManager.UnloadSceneAsync("terrain");
        transform.position = playerGroupSpawn[0].transform.position;
    }
deuxiement, je cherche simplement à charger une scène et téléporter mon joueur dedans mais au moment de faire l'operation j'ai cette erreur et la scene precedante reste chargée.

Code : Tout sélectionner

Unloading the last loaded scene Assets/terrain.unity(build index: 0), is not supported. Please use SceneManager.LoadScene()/EditorSceneManager.OpenScene() to switch to another scene.
UnityEngine.SceneManagement.SceneManager:UnloadSceneAsync(String)
battleController:changescene() (at Assets/script/battleController.cs:37)
battleController:OnTriggerEnter(Collider) (at Assets/script/battleController.cs:28)

Voici le code pour changer de scene

Code : Tout sélectionner

void changescene()
    {
        SceneManager.LoadScene(battleSceneToLoad, LoadSceneMode.Additive);
        Scene nextScene = SceneManager.GetSceneAt(1);
        SceneManager.MoveGameObjectToScene(gameObject, nextScene);
        SceneManager.UnloadSceneAsync("terrain");
        transform.position = playerGroupSpawn[0].transform.position;
    }

Re: [DB-AL] Deplacer un gameobject sur la position d'un autre gameobject se trouvant dans un tableau / Décharger une scè

Publié : 06 Juin 2018 20:39
par Scozor
Salut à toi,

Unity te dit que l'une des choses de la ligne 48 du script battleController n'existe pas. Peut-être qu'il n'y a rien dans
playerGroupSpawn[0]
Essaie de vérifier si dans ton tableau à l'index 0 il y a un GameObject en faisant une condition.
if(playerGroupSpawn[0] != null)
{
    // Tes instructions si dans ton tableau il y a un objet à l'index 0.
}
Un conseil ne mets pas à jour les valeurs de ton tableau à chaque frame, tu perds en optimisation.

Re: [DB-AL] Deplacer un gameobject sur la position d'un autre gameobject se trouvant dans un tableau / Décharger une scè

Publié : 06 Juin 2018 20:43
par Max
Bonsoir,
FriteCoca a écrit :
06 Juin 2018 20:17
Premièrement, j'ai besoins de téléporter mon jouer sur la position d'un gameobject sur trouvant dans un tableau
Ton tableau de GameObjects est-il bien définis dans l'inspector ? A priori je ne pense pas.
FriteCoca a écrit :
06 Juin 2018 20:17
deuxiement, je cherche simplement à charger une scène et téléporter mon joueur dedans mais au moment de faire l'operation j'ai cette erreur et la scene precedante reste chargée.
Passe plutôt par une coroutine pour ce genre d'opération, permettant de bien séquencer les phases load/upload.
Tu as un exemple dans la doc qui devrait parfaitement fonctionner et qui colle très bien à ce que tu cherches à faire ICI.

Re: [DB-AL] Deplacer un gameobject sur la position d'un autre gameobject se trouvant dans un tableau / Décharger une scè

Publié : 06 Juin 2018 21:33
par FriteCoca
Merci à vous deux ! Problème résolus.

Bonne soirée.