Search Unity

  1. Unity 2019.1 is now released.
    Dismiss Notice

Basic Noob Question About C#

Discussion in 'Scripting' started by BillyBobBeavis, Oct 13, 2018.

  1. BillyBobBeavis

    BillyBobBeavis

    Joined:
    Oct 13, 2018
    Posts:
    53
    I'm curious as to why the definition of a variable needs to be stated twice. For instance:

    public GUISkin skin;

    //then:

    void OnGUI()
    {
    GUISkin = skin
    }

    //or:

    public scoreLevel manager;

    //then:

    void Start()
    {
    manager = manager.GetComponent<scoreLevel>();
    }
     
  2. BillyBobBeavis

    BillyBobBeavis

    Joined:
    Oct 13, 2018
    Posts:
    53
    Or maybe these aren't called variables.
     
  3. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    13,872
    It doesn't and in fact it isn't being defined twice.

    Here you are defining the variables.

    Here you are setting the values they contain (technically the GUISkin one is a bit odd - I'm fairly certain that's supposed to be GUI.skin).

    Technically they're variables but officially they're known as fields because they belong to the class (or struct) definition.

    https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/fields
     
  4. BillyBobBeavis

    BillyBobBeavis

    Joined:
    Oct 13, 2018
    Posts:
    53
    Yes, it's GUI.skin. I copied and pasted it. I don't know how it was changed because it's that way in the code. Weird. Thanks for the reply. I don't know enough about code yet to fully understand your answer but you've given me something that may click into place later.