Skip to content

Setter for Value property in FloatReference #12

@Brandon-Gui123

Description

@Brandon-Gui123

Hello Ryan! I'm probably very late but amazing sharing; it completely changed the way on how I worked with Unity and this is so beneficial. Thank you!

I am thinking of adding a set to the Value property so that when other scripts assign a value, the Value property can receive it, then modify, based on whether UseConstant is true or false, ConstantValue or Variable.Value.

The property will look like this:

public float Value
{
    get { return UseConstant ? ConstantValue : Variable.Value; }
    set
    {
        if (UseConstant)
            ConstantValue = value;
        else
            Variable.Value = value;
    }
}

And in other scripts, one can simply do something like this:

public FloatReference hp;
.
.
.
hp.Value = 10;

So far, the only implication I have seen was that setting via a FloatReference, you may be expecting a variable to get updated, but if UseConstant is true, the constant is updated and not the variable. So, for example, if you decrement the player's HP and the HP is of type FloatReference with UseConstant set to true, then this may not update the UI for the HP (e.g. say a HP bar) which depends on a FloatVariable to determine the fill amount, making others think that the player's HP is not decreasing.

But then if such a case happens, FloatVariable should be used to adjust HP instead of FloatReference, which will make it clear to the team that modifications made to it will be clearly shown.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions