boubouk50 a écrit : ↑06 Juin 2018 09:01
Si le script s'arrête sans raison, il est fort à parier qu'une erreur soit apparue, dans ce cas, elle est décrite dans l'onglet Console en rouge. Merci de nous les faire parvenir.
Effectivement il y a ca :
Internal_CreateGameObject is not allowed to be called from a MonoBehaviour constructor (or instance field initializer), call it in Awake or Start instead. Called from MonoBehaviour 'test' on game object 'Sphere'.
See "Script Serialization" page in the Unity Manual for further details.
ca :
UnityException: Internal_CreateGameObject is not allowed to be called from a MonoBehaviour constructor (or instance field initializer), call it in Awake or Start instead. Called from MonoBehaviour 'test' on game object 'Sphere'.
See "Script Serialization" page in the Unity Manual for further details.
UnityEngine.GameObject..ctor
et ça:
NullReferenceException: Object reference not set to an instance of an object
test.OnTriggerEnter (UnityEngine.Collider truc) (at Assets/test.cs:44)
En une partie j'ai reçu 3 fois ces messages d'erreurs avec des changement au niveau de la 2eme ligne " on game object 'Sphere'."qui n'apparait pas dans cerains cas.
J'étais allé sur le site recommandé mais je n'ai rien compris
puis ça m'est sorti de la tête.
Au niveau de mon Boolball je ne l'utilise pas dans mon autre script et, de plus j'ai testé le script sans et cela ne marchait toujours pas. Mon script a toujours l'air de s'arreter avant rb.constraints = RigidbodyConstraints.FreezePosition.
J'ai verifié en mettant des debug.log dans les boucles if (TrucAdeenable.activeInHierarchy) et je recevais bien les 4 premiers message.
Là je vous avoue que je ne comprends plus la logique d'unity. si cela vous interesse je vous met la derniere version avec les changements
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class test : MonoBehaviour
{
[TagSelector]
public string TagFin = "<NoTag>";
Vector3 positionDepart;
private Rigidbody rb;
public GameObject TrucAEnable = new GameObject { };
public GameObject TrucAdeenable = new GameObject { };
public MonoBehaviour Script;
void Start()
{
positionDepart = transform.position;
}
void OnTriggerEnter(Collider truc)
{
if (truc.tag == TagFin)
{
Debug.Log("le truc est normalement activé1");
if (!TrucAEnable.activeInHierarchy)
{
TrucAEnable.SetActive(true);
Debug.Log("lobjet est normalement activé2");
}
Debug.Log("lobjet est normalement desactivé1");
if (TrucAdeenable.activeInHierarchy)
{
TrucAdeenable.SetActive(false);
Debug.Log("lobjet est normalement desactivé2");
}
transform.position = positionDepart;
rb.constraints = RigidbodyConstraints.FreezePosition;
Debug.Log("le script est normalement desactivé1");
if (Script.enabled)
{
Script.enabled = false;
Debug.Log("le script est normalement desactivé2");
}
}
}
}
Je m'en remet à vous
.
! | Message de : Max |
Utilisez les balises code SVP
Merci de lire la Netiquette.
|