在 Unity 中的全局变量通常是指具有单个值、单个引用点并且可以从任何脚本访问的变量,它与常规脚本上的变量实例相比,全局变量的意图是跟踪单个变量的值以供其他脚本引用。
可以将他们应用在游戏玩家的血条、时间或其他游戏关键值上。
全局变量
在 Unity中有几种创建全局变量的方法,创建全局变量的最简单方法是使用静态变量。
静态变量
Unity 中的静态变量是一个类的所有实例共享的变量,要在 Unity 中将变量标记为静态,只需在声明时添加 static 关键字即可:
public class PlayerHealth : MonoBehaviour
{
public static float health=100;
}
然后,要访问变量,而不是引用类的实例,可以通过类本身访问它:
Float hp = PlayerHealth.health;
这是有效的,因为变量是公共的和静态的,所以即使这个脚本有很多实例,它们都将共享相同的值,也可以将整个类标记为静态:
public static class PlayerHealth
{
public static float health;
public static float armour;
}
但是请注意,由于静态类不能从 MonoBehaviour 派生,因此需要从类声明的末尾删除正常的:MonoBehaviour 继承。
假如以为这会自动使类中的每个变量变为静态,但是它没有。相反,将类标记为静态仅仅意味着它不能在场景中实例化,我们仍然需要将类中的各个变量和方法标记为静态,以便它们按预期作业。