Lo Scope (Ambito) in Unity

In Unity, lo “scope” si riferisce all’ambito o alla portata in cui un oggetto o una variabile possono essere acceduti e utilizzati all’interno del gioco. Lo scope determina l’accessibilità dell’oggetto o della variabile in relazione alla posizione in cui viene dichiarato.

In Unity, ci sono quattro tipi di scope:

  • Public: quando un oggetto o una variabile è pubblica, può essere accessibile e utilizzata da qualsiasi script in qualsiasi posizione all’interno del progetto Unity.
  • Private: quando un oggetto o una variabile è privata, può essere accessibile e utilizzata solo all’interno dello script in cui è stata dichiarata.
  • Protected: quando un oggetto o una variabile è protetta, può essere accessibile e utilizzata solo all’interno dello script in cui è stata dichiarata e dalle classi figlie derivate da quella classe.
  • Internal: quando un oggetto o una variabile ha un accesso interno, può essere accessibile e utilizzata solo all’interno dello stesso assembly, ovvero del progetto Unity in cui è stato dichiarato.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour
{
    public int publicValue = 10; // Variabile con scope pubblico
    private float privateValue = 3.14f; // Variabile con scope privato

    void Start()
    {
        Debug.Log("Public value is: " + publicValue); // Output del valore della variabile pubblica
        Debug.Log("Private value is: " + privateValue); // Output del valore della variabile privata
    }
}

Ecco un esempio di codice Unity che utilizza variabili con scope pubblico e privato e visualizza il loro valore nella console di debug:

csharpCopy codeusing UnityEngine;

public class ExampleScript : MonoBehaviour
{
    public int publicValue = 10; // Variabile con scope pubblico
    private float privateValue = 3.14f; // Variabile con scope privato

    void Start()
    {
        Debug.Log("Public value is: " + publicValue); // Output del valore della variabile pubblica
        Debug.Log("Private value is: " + privateValue); // Output del valore della variabile privata
    }
}

In questo script, abbiamo definito due variabili: una con lo scope pubblico (publicValue) e una con lo scope privato (privateValue). La variabile pubblica può essere acceduta e modificata da altre classi, mentre la variabile privata può essere acceduta e modificata solo da questa classe.

All’interno della funzione Start(), abbiamo utilizzato la funzione Debug.Log per visualizzare il valore delle due variabili nella console di debug. La variabile pubblica viene visualizzata semplicemente concatenando il suo nome con una stringa di testo, mentre la variabile privata viene concatenata utilizzando la sua funzione ToString() per convertire il valore in una stringa.

Quando questo script viene eseguito, verrà visualizzato il valore delle due variabili nella console di debug di Unity. Il valore della variabile pubblica può essere modificato e visualizzato anche da altre classi, mentre il valore della variabile privata è accessibile solo all’interno di questa classe.

Getter e Setter

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour
{
    private int privateValue; // Variabile privata

    // Setter per la variabile privata
    public void SetPrivateValue(int value)
    {
        privateValue = value;
    }

    // Getter per la variabile privata
    public int GetPrivateValue()
    {
        return privateValue;
    }

    void Start()
    {
        SetPrivateValue(10);
 // Imposta il valore della variabile privata utilizzando il metodo setter

        Debug.Log("Private value is: " + GetPrivateValue()); 
// Output del valore della variabile privata utilizzando il metodo getter
    }
}

In questo script, abbiamo definito una variabile privata privateValue e due metodi: SetPrivateValue e GetPrivateValue. Il metodo SetPrivateValue viene utilizzato per impostare il valore della variabile privata da altre classi, mentre il metodo GetPrivateValue viene utilizzato per restituire il valore della variabile privata a altre classi.

All’interno della funzione Start(), abbiamo utilizzato il metodo setter SetPrivateValue per impostare il valore della variabile privata a 10, e poi abbiamo utilizzato il metodo getter GetPrivateValue per ottenere il valore della variabile e visualizzarlo nella console di debug.

Quando questo script viene eseguito, verrà visualizzato il valore della variabile privata nella console di debug di Unity. Altri script possono utilizzare il metodo setter per modificare il valore della variabile, e il metodo getter per ottenere il valore della variabile da altre classi.

Altro esempio:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour
{
	int number;

	//Getter
	public int GetNumber(){
		return number;
}

	// Setter
	public void SetNumber(int value){

		if (value <= 1) {
			Debug.Log("normal");
		} 
		else {
			number = value;
		}
	
}
}
/ 5
Grazie per aver votato!
mycus
Author: mycus