Unity Array of Struct : When setting a variable of one of the array subscripts, it sets it for all of them

General Tech Learning Aids/Tools 2 years ago

0 1 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Learning Aids/Tools related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (1)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

 

This is my struct that I have created.

public struct Bar
{

    private static float deltaTime = 1.0f;
    private static bool AutoRun = false;
    private static bool AutoRunBought = false;
    private static bool Start = false;


    // DELTA TIME
    public float GetDeltaTime()
    {
        return deltaTime;
    }
    public void SetDeltaTime(float _dt)
    {
        deltaTime = _dt;
    }
    public void IncrementDeltaTime(float _deltaIn)
    {
        deltaTime += _deltaIn;
    }
    public void DecrementDeltaTime(float _deltaIn)
    {
        deltaTime -= _deltaIn;
    }

    // AUTO RUN
    public bool GetAutoRun()
    {
        return AutoRun;
    }
    public void SetAutoRun(bool _autoBought)
    {
        AutoRunBought = _autoBought;
    }
    public bool GetAutoRunBought()
    {
        return AutoRun;
    }
    public void SetAutoRunBought(bool _autoBought)
    {
        AutoRunBought = _autoBought;
    }

    // START
    public bool GetStart()
    {
        return Start;
    }
    public void SetStart(bool _start)
    {
        Start = _start;
    }
}

In my other class I create an instance of that by calling

scr_Globals.Bar[] myBars = new scr_Globals.Bar[2];

in my Update I am doing

if (myBars[0].GetAutoRun() == true) 
    {
        myBars[0].IncrementDeltaTime (incrementBar1);
        if (myBars[0].GetDeltaTime () > 40.0f) {
            myBars[0].SetDeltaTime (1.0f);
            globals.IncrementTotalMoney(1.0f);
        } 
    }
    else 
    {
        if (myBars[0].GetStart() == 
                                                
                                                
0 views
0 shares

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.