首先游戏由几个Scene组成,每个Scene都绑定一个脚本,脚本被放在特定的文件夹中:
由于文件越来越长,我将一个文件分割成几个文件,这样比较易读。
分割文件原理是采用partial class方法,将一个类分割到几个文件中。
例如,我将一个HomeScene分割成主体,UI,strs,click部分,其中:
UI:管理UI和UI的初始化
strs:管理文本
click:管理按钮的点击函数
各个文件内的文本,控件声明顺序严格遵循脚本文档顺序,因此比较好找。
对于每一个Scene类内,其类变量与类函数说明如下:
class HomeScene
{
AudioSource sound; // 声效控件
AudioClip click_wav; // 特定声效
AudioSource music; // 背景音乐控件
AudioClip bgm_wav; // 特定背景音乐
int m_i = 28; // 控制流程的标志,一般就是控制游戏进程的,非常重要
float timer = 0.0f; // 蹦字用的计时器
bool isActive = false; // 是否处在打字过程中
int currentPos = 0; // 打字的位置
GLabel m_dialog; // 显示字符串的面板
GGroup m_guild; // 引导面板遮罩,完全透明
GLabel m_guild_dialog; // 引导面板
GGroup m_mask_0; // 遮罩组
GGroup m_mask_1; // 遮罩组
GGroup m_mask_1_1; // 遮罩组
GGroup m_mask_2; // 遮罩组
...
void Start() // 主要用来完成初始化和控件获得
void initUI()// 初始化控件
void Update()// 每一帧都执行
void ControlDialogue() // 用来控制台词的步进
void nextButton_Click()// 继续按钮点击事件
void button_1_Click() // 选择1 : Lee是谁?
void button_1_1_1_Click() // 看看吧
...
string[] strs; // 台词
string[] clue_strs; // 线索
...
}