Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

C# Script and Health Bar (Ruby Adventure 2D)

Discussion in 'Scripting' started by Welly10, Aug 20, 2021.

  1. Welly10

    Welly10

    Joined:
    Aug 13, 2021
    Posts:
    38
    After Adding the Health Bar of Ruby and done scripting both Ruby Controller and UIHealthBar,
    I start the game and when I hit the enemy it doesn't collide (before that it collides) and if I stand in the damage zone the game freeze and comes out with this error.

    I uploaded two pictures one from the unity editor and the other of the Damage zone script

    upload_2021-8-20_9-20-59.png upload_2021-8-20_9-23-49.png
     
  2. Chris-Trueman

    Chris-Trueman

    Joined:
    Oct 10, 2014
    Posts:
    1,256
    The code you posted has no issues. Seems like something within the controller isn't set correctly within the editor. The error is on line 89 of the RubyController script so something in there isn't being set.

    Check the player object in the editor to see if something isn't set up within the RubyController component.
     
  3. Welly10

    Welly10

    Joined:
    Aug 13, 2021
    Posts:
    38
    line89 = UIHealthBar.instance.SetValue(currentHealth / (float) maxHealth);

    I've copied it from the tutorial and still got the error

    upload_2021-8-20_11-3-24.png
     
  4. Kurt-Dekker

    Kurt-Dekker

    Joined:
    Mar 16, 2013
    Posts:
    36,711
    Copying code is only a tiny fraction of the issue. You have to set it up.

    Thankfully, for the error you report, it does not even remotely matter what you are doing.

    The answer is always the same... ALWAYS. It is the single most common error ever.

    Don't waste your life spinning around and round on this error. Instead, learn how to fix it fast... it's EASY!!

    Some notes on how to fix a NullReferenceException error in Unity3D
    - also known as: Unassigned Reference Exception
    - also known as: Missing Reference Exception
    - also known as: Object reference not set to an instance of an object

    http://plbm.com/?p=221

    The basic steps outlined above are:
    - Identify what is null
    - Identify why it is null
    - Fix that.

    Expect to see this error a LOT. It's easily the most common thing to do when working. Learn how to fix it rapidly. It's easy. See the above link for more tips.

    You need to figure out HOW that variable is supposed to get its initial value. There are many ways in Unity. In order of likelihood, it might be ONE of the following:

    - drag it in using the inspector
    - code inside this script initializes it
    - some OTHER external code initializes it
    - ? something else?

    This is the kind of mindset and thinking process you need to bring to this problem:

    https://forum.unity.com/threads/why-do-my-music-ignore-the-sliders.993849/#post-6453695

    Step by step, break it down, find the problem.

    Here is a clean analogy of the actual underlying problem of a null reference exception:

    https://forum.unity.com/threads/nul...n-instance-of-an-object.1108865/#post-7137032
     
    Welly10 likes this.
  5. Welly10

    Welly10

    Joined:
    Aug 13, 2021
    Posts:
    38
    I've found where is my error as I don't put the script back in the Inspector
    Thanks for replying and for the analysis
    you Lighten me up with some extra work I need to do with C# as I'm still a beginner and trying to learn and understand how to write and understand the code.
     
    Kurt-Dekker likes this.
  6. waxmaxgames

    waxmaxgames

    Joined:
    Mar 10, 2022
    Posts:
    2
     
  7. Welly10

    Welly10

    Joined:
    Aug 13, 2021
    Posts:
    38
    You need to assign the C# script to the Game Object inside unity editor