Depuis peut j'ai une erreur qui me survient qui est :
erreur: NullReferenceException: Object reference not set to an instance of an object
JouerController2d.Update () (at Assets/Scripts/Monde/ControllerPlayer-Data/JouerController2d.cs:136)
Si je comprend bien mon problème vient que mon objet référencé n'as pas d'instance, mais c'est la que vient le problème, j'ai regarder, encore et encore sans trouver la solution, donc je me tourne vers vous, peut être que la réponse est sous mon nez mais que je cherche trop compliquer, c'est pour sa que j'aimerais juste une petite aide :p
Je vous met une photo de mon Player:
https://image.noelshack.com/fichiers/20 ... -titre.png
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using HealthBarAPI;
public class JouerController2d : MonoBehaviour
{
#region Declaration_LooseLifeTomber
[Header("LooseLifeTomber")]
public Transform destination;
public int perteVieTomber;
[Header("PanelDead")]
public GameObject panelDead;
#endregion
#region Declaration_LettreBonusPrise
[Header("LettreBonus")]
public SpriteRenderer B;
public SpriteRenderer O;
public SpriteRenderer N;
public SpriteRenderer U;
public SpriteRenderer S;
private bool lettreB = false;
private bool lettreO = false;
private bool lettreN = false;
private bool lettreU = false;
private bool lettreS = false;
public int nbChapitre;
public Color prise = new Color();
#endregion
#region Declaration_PanelFin
[Header("PanelFin")]
public GameObject panelFin;
#endregion
#region Declaration_HealBar
[Header("HealthBar")]
public HealBarAPI barreDeVie;
public int barreDeVieMax;
#endregion
#region Declaration_Run
[Header("Declaration Run")]
public float moveSpeed;
public float jumpForce;
private bool _jump = true;
private Rigidbody2D myRigidbody;
private Animator jumping;
#endregion
#region Declaration_Ground
[Header("Declaration Ground")]
public bool ground;
public LayerMask whatIsGround;
private Collider2D myCollider;
#endregion
#region Declaration_Score+Piece
[Header("Declaration Score+Piece")]
public Text _moneyGame;
public static int _moneyRecolter;
#endregion
#region Declaration_Timer
[Header("Timer")]
public Text timerText;
private float startTime;
private bool fin = false;
#endregion
#region Function Unity
void Start()
{
#region Instansiation_Timer
startTime = Time.time;
#endregion
#region Instansiation_HealthBar
barreDeVie.max = barreDeVieMax;
barreDeVie.valeur = barreDeVieMax;
#endregion
#region Instansiation_Run
myCollider = GetComponent<Collider2D>();
jumping = GetComponent<Animator>();
#endregion
#region Instansiation_Money
_moneyRecolter = 0;
#endregion
}
void Update()
{
#region Fonctionalité_timer
if (fin /*|| mort*/)
return;
float t = Time.time - startTime;
string minutes = ((int)t / 60).ToString();
string seconds = (t % 60).ToString("f2");
timerText.text = minutes + ":" + seconds;
#endregion
/*#Region Fonctionalité_HealthBar
if (Input.GetKeyDown(KeyCode.KeypadMinus))
{
barreDeVie.valeur -= 10;
}
else if (Input.GetKeyDown(KeyCode.KeypadPlus))
{
barreDeVie.valeur += 10;
}
#endregion*/
#region Fonctionalité_Ground
ground = Physics2D.IsTouchingLayers(myCollider, whatIsGround);
#endregion
#region Fonctionalité_Run
if (_jump)
{
myRigidbody.GetComponent<Rigidbody2D>().velocity = new Vector2(moveSpeed, myRigidbody.velocity.y);
}
else
{
_jump = true;
myRigidbody.GetComponent<Rigidbody2D>().velocity = new Vector2(myRigidbody.velocity.x, jumpForce);
Invoke("StopSauter", 0.5f);
}
#endregion
#region Fonctionalité_Money
_moneyGame.text = "" + _moneyRecolter;
#endregion
}
#endregion
#region Fonction_Run/Animation
void StopSauter()
{
jumping.SetBool("jump", false);
}
public void ActivationJump()
{
if (ground)
{
_jump = false;
jumping.SetBool("jump", true);
}
}
#endregion
#region Fonction_PanelFin
private void PanelFin()
{
panelFin.SetActive(true);
}
#endregion
#region Fonction_OnTriggerEnter
private void OnTriggerEnter2D(Collider2D go)
{
#region Fonctionalité_LooseLifeTombetr
if (go.tag.Equals("ZoneDead"))
{
if (barreDeVie.valeur != 0)
{
barreDeVie.valeur -= perteVieTomber;
transform.position = destination.position;
if (barreDeVie.valeur == 0)
{
panelFin.SetActive(true);
}
}
}
#endregion
#region Fonctionalité_Lettrebonus
if (go.tag.Equals("B"))
{
if (DataController.allLoadedBonus.BonusNiveaux[nbChapitre - 1].b == false)
{
Debug.Log("B");
lettreB = true;
B.color = prise;
}
}
if (go.tag.Equals("O"))
{
if (DataController.allLoadedBonus.BonusNiveaux[nbChapitre - 1].o == false)
{
lettreO = true;
O.color = prise;
}
}
if (go.tag.Equals("N"))
{
if (DataController.allLoadedBonus.BonusNiveaux[nbChapitre - 1].n == false)
{
lettreN = true;
N.color = prise;
}
}
if (go.tag.Equals("U"))
{
if (DataController.allLoadedBonus.BonusNiveaux[nbChapitre - 1].u == false)
{
lettreU = true;
U.color = prise;
}
}
if (go.tag.Equals("S"))
{
if (DataController.allLoadedBonus.BonusNiveaux[nbChapitre - 1].s == false)
{
lettreS = true;
S.color = prise;
}
}
#endregion
#region Fonctionalité_Score+Piece
if (go.tag.Equals("Piece"))
{
Destroy(go.gameObject);
_moneyRecolter++;
}
#endregion
#region Fonctionalité_FinNiveau
if (go.tag.Equals("FinNiveau"))
{
PanelFin();
Time.timeScale = 0;
if (lettreB == true)
{
DataController.allLoadedBonus.BonusNiveaux[nbChapitre - 1].b = true;
DataController.SaveGameBonus();
}
if (lettreO == true)
{
DataController.allLoadedBonus.BonusNiveaux[nbChapitre - 1].o = true;
DataController.SaveGameBonus();
}
if (lettreN == true)
{
DataController.allLoadedBonus.BonusNiveaux[nbChapitre - 1].n = true;
DataController.SaveGameBonus();
}
if (lettreU == true)
{
DataController.allLoadedBonus.BonusNiveaux[nbChapitre - 1].u = true;
DataController.SaveGameBonus();
}
if (lettreS == true)
{
DataController.allLoadedBonus.BonusNiveaux[nbChapitre - 1].s = true;
DataController.SaveGameBonus();
}
}
#endregion
}
#endregion
}