📅  最后修改于: 2023-12-03 14:48:13.272000             🧑  作者: Mango
在Unity中,范围和访问修饰符是用于控制类、函数、变量和属性的访问权限的。在本篇介绍中,我们将深入了解这些修饰符的用途和实际应用。Unity中常见的访问修饰符有public、private和protected,范围修饰符有static和const。
public修饰符是最常用的访问修饰符之一,它用于指定该类、函数、变量或属性可以被所有的其他对象访问。在Unity引擎中,所有的类都必须是public才能被其他脚本访问到。此外,在Unity中,还有许多组件(例如Transform组件、Rigidbody组件等)都是公共的。
private修饰符用于指定该类、函数、变量或属性只能在其声明的类中被访问。也就是说,只有在声明该类的代码块内部,才能访问该类的私有成员。
public class TestClass
{
private int privateVar = 10;
public int publicVar = 20;
public void PrintValues()
{
Debug.Log("privateVar: " + privateVar);
Debug.Log("publicVar: " + publicVar);
}
}
protected修饰符用于指定该类、函数、变量或属性只能在其声明的类以及其子类中访问。也就是说,只有在声明该类的代码块及子类的代码块内部,才能访问该类的受保护成员。
public class BaseClass
{
protected int protectedVar = 15;
}
public class DerivedClass : BaseClass
{
public void PrintValue()
{
Debug.Log("protectedVar: " + protectedVar);
}
}
在上面的代码中,DerivedClass是BaseClass的子类,它可以访问BaseClass中的受保护成员protectedVar。
static修饰符用于指定该类、函数、变量或属性与类的实例无关。也就是说,static修饰符表示该成员是类级别的,而不是实例级别的。
public class TestClass
{
public static int staticVar = 10;
public int instanceVar = 20;
}
public class Test
{
static void Main()
{
Debug.Log("staticVar: " + TestClass.staticVar);
TestClass obj = new TestClass();
Debug.Log("instanceVar: " + obj.instanceVar);
}
}
在上面的代码中,TestClass中的staticVar是静态成员,可以直接通过类名访问。但是,instanceVar是实例成员,需要创建TestClass的实例才能访问。
const修饰符用于指定该变量是一个常量。也就是说,一旦声明了该变量的值,就不能在程序的任何其他地方更改该值。
public class TestClass
{
public const int constVar = 10;
public int instanceVar = 20;
}
public class Test
{
static void Main()
{
Debug.Log("constVar: " + TestClass.constVar);
TestClass obj = new TestClass();
Debug.Log("instanceVar: " + obj.instanceVar);
}
}
在上面的代码中,constVar是常量,它的值被固定为10,而不能更改。但是,instanceVar是实例变量,可以在创建实例后进行更改。
通过本篇介绍,我们了解了Unity中的访问修饰符和范围修饰符的作用和使用方法。这些修饰符可以帮助我们控制代码的可见性和访问权限,使我们的代码更加易于维护和扩展。