Shoot
Shoot
() =>这个表达示在其他课程里也没有找到,他到底是做什么用的?
1.定义一个Shape,currentShape=null,来判断方块是否落下,如果为null,调用SpawnShape。
2.给Shape脚本添加函数InitColor,用于初始化方块的颜色。
3.gamemanager脚本添加放StartGame和PauseGame函数,控制bool变量isPause。
4.在Ctrl脚本添加gamemanager引用。
5.在PlayState脚本中的函数DoBeforeEntering和DoBeforeLeaving添加StartGame和PauseGame调用。
6.拖放赋值颜色和形状。
1.创建GameManager脚本挂载在ctrl下,定义bool变量isPause标记游戏是否暂停,定义public数组shapes【】和colors【】,分别用来存储7种形状和7种颜色;
2.创建函数SpawnShape来生成方块图形,定义int indexShape和indexColor索引,用Random函数随机生成;再实例化生成shape;
3.创建Shape脚本,挂载在7种形状预制体上,在Shape脚本中创建函数InitColor(Color color),给生成图形时调用。
1.打开PlayState脚本,override函数DoBeforeEntering;
2.打开View脚本,添加ShowGameUI和HideGameUI函数(设计gameui显示和隐藏动画);
3.注册OnPauseButtonClick按键,view脚本添加ShowRestartButton函数(离开PlayState状态时调用)。
为什么服务器端,不能用永真循环而是用回调呢?
utf8第一个
堆
堆his
Application.streamingAssetPath
File.ReadAllText()
System.Text.Encoding.UTF8.GetBytes()
luaenv.DeString("require 'example'")
1.在View脚本下添加HideMenuUI函数。
2.在MenuState脚本下添加处理点击开始游戏按钮函数OnClickStartButton;FSMSystem脚本下Transition枚举增加OnStartButtonClick;在MenuState脚本Awake函数下添调用AddTransition。
1.先调整背景的大小和位置,再在Ctrl下创建CameraManager脚本,获取主相机,创建ZoomIn(放大)和ZoomOut(缩小)函数(引入DG空间,调用mainCamera.DOOrthoSize做动画);
2.在Ctrl脚本下获取CameraManager脚本;
3.在MenuState脚本下的DoBeforeEntering函数中调用CameraManager的ZoomOut(缩小)函数。
1.在menuState脚本下,重写FSMState脚本的函数DoBeforeEntering(),运用Ctrl脚本调用View脚本下的ShowMenu函数实现菜单的显示。
2.注意将MakeFSM函数放在Start函数下,防止空指针。
3.FSMSystem脚本下的函数SetCurrentState中,增加调用DoBeforeEntering()。
设计菜单MenuUI的显示动画,在View脚本中获取logoName和menuUI的rectransform,引入DG.Tweening命名空间,创建ShowMenu类。
1.给四种状态类添加ID(在awake里添加),在FSMState里的枚举类中添加4中状态枚举,再在FSMSystem类里的addstate类中添加fsm引用,方便状态切换时的调用。
2.导入DOTWEEN插件并安装。
在FSM文件夹下创建4个游戏状态类(MenuState,PlayState,PauseState,GameOverState),将FSMSystem脚本里的FSMState里的构造函数struct修改为虚函数virtual,再将4个游戏状态类都设置为继承自FSMState,并在Ctrl下创建空物体,改名为State,然后拖拽挂载4个游戏状态类。再在Ctrl类中构造FSM,存入四种状态类,并将MenuState设置为默认状态。
1.在http://wiki.unity3d.com/网址下载导入现成的有限状态机代码。
2.分析四种游戏状态(菜单状态,游戏状态,暂停状态,结束状态)。
3.scripts文件夹下创建FSM文件夹,再创建FSMSystem脚本,复制有限状态机代码粘贴,FSMState需要挂载在游戏物体上,因此需要加后缀Monobehaviour。
设计5种形状,左L,右L,土,左Z,右Z。制作成预制体。
设计2种下落的基本图形,方块和长条,先在Prefabs下建立文件夹Shapes,再利用Block预制体建立Shape1(方块)和Shape2(长条)并制作预制体,建立Tag标签Block,将Shape下的Block归类入Block标签,建立旋转中心点Pivot(不归类)。
设计游戏背景,Block方格放置在坐标轴0,0位置为一个背景方格(放在View下而不是Canvas下),做一个prefab,然后按住ALT复制水平排列(10格)(放到空物体Row下),纵向复制(20行)(整体放置到空物体Map下),再调整MainCamera的Size,将背景地图居中显示,并调整Block的颜色为浅灰色。