本文章所有代码在2021.3.15f1c1版本的编辑器下正常运作
一、enum的介绍
enum是一种特殊的C语言对象类型,在Unity中的使用较为广泛,具体介绍可以搜索研究,以下为一个实例
//声明枚举的名称,并声明枚举中的元素
enum Unit {START,PLAYERTURN,END}
//基于已声明的枚举创建变量,该变量的值只能在枚举中的元素中选择
Unit unit;
//为变量赋值的语句格式
unit = Unit.START(也可以是Unit.PLAYERTURN或者Unit.END)
二、脚本之间的enum引用
以下为两个脚本,第一个脚本定义了枚举的名称与其中的元素,并创建了一个基于该枚举的变量,并赋值为START,第二个脚本则可以对第一个脚本中创建的变量进行引用与修改
GameSystem.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameSystem : MonoBehaviour
{
//首先声明枚举的名称,并声明枚举中的元素
//此处的public极为重要
public enum GameState {START,PLAYERTURN,END};
//基于已声明的枚举创建变量
public GameState state;
//为该变量赋值(其中GameState必须写明)
state = GameState.START;
}
ChangeTurn.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ChangeTurn : MonoBehaviour
{
//首先引入上一个脚本定义的类(GameSystem),将名字保存为GS
public GameSystem GS
void Start()
{
//如果想要引用上一个脚本中基于枚举的变量的值,应使用如下代码
var state1 = GS.state
//如果想要修改上一个脚本中基于枚举的变量的值,应使用如下代码
//这一代码中的GameSystem.GameState请使用全拼
//运行过程中代码会从上一脚本中引入枚举,并为这一变量赋值
GS.state = GameSystem.GameState.END
}
}
三、总结
在本文章中简单介绍了enum的定义,以及在不同脚本之间的引用,在下不才,如有纰漏欢迎在评论区中指出。