怎么用Unity3D开发五子棋游戏

介绍

这篇文章主要介绍”怎么用Unity3D开发五子棋游戏”,在日常操作中,相信很多人在怎么用Unity3D开发五子棋游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“怎么用Unity3D开发五子棋游戏”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

<强> 1准备工作

<强>(1)开发环境: Win10 + Unity5.4.1

<强>(2)图片素材准备:

黑棋子和白棋子

棋盘

获胜提示图片

<强> 2开发流程

上文提到的素材可以直接下载我们给出的这些图,也可以自己制作。注意黑白棋子要做成PNG格式,以保证显示的时候棋子四个角是透明的。将用到的图片素材导入到工程当中。新建一个场景,创建一个平面,作为MainCamera的子物体。将棋盘贴图拖动到飞机上,并且将飞机正面面向摄像机。

再创建四个领域,作为平面的子物体,分别命名为LeftTop, RightTop, LeftBottom, RightBottom。然后把他们的MeshRenderer勾选掉。这些球是为了计算棋子落点所设置的,所以需要把它们与棋盘的四个角点对准。

然后我们创建一个chess.cs脚本,绑定到MainCamera上。脚本中包含了所有的功能。需要绑定的一些物体如图所示。

国际象棋。cs脚本如下:

使用UnityEngine;使用System.Collections;公共类国际象棋:MonoBehaviour{,//四个锚点位置,用于计算棋子落点公共GameObject LeftTop;公共GameObject RightTop;公共GameObject LeftBottom;公共GameObject RightBottom;//主摄像机公共摄像头凸轮;//锚点在屏幕上的映射位置Vector3 LTPos;Vector3 RTPos;Vector3 LBPos;Vector3 RBPos;,Vector3 PointPos;//当前点选的位置浮动gridWidth=1;//棋盘网格宽度浮动gridHeight=1;//棋盘网格高度minGridDis浮动;//网格宽和高中较小的一个Vector2 [,] chessPos;//存储棋盘上所有可以落子的位置int [,] chessState;//存储棋盘位置上的落子状态enum把{黑、白};把chessTurn;//落子顺序公共Texture2D白色;//白棋子公共Texture2D黑色;//黑棋子公共Texture2D blackWin;//白子获胜提示图公共Texture2D whiteWin;//黑子获胜提示图int赢家=0;//获胜方,1为黑子,1为白子bool isPlaying=true;//是否处于对弈状态空虚开始(){chessPos=new Vector2 [15、15];chessState=new int [15、15];chessTurn=turn.black;,}无效更新(){,//计算锚点位置LTPos=cam.WorldToScreenPoint (LeftTop.transform.position);RTPos=cam.WorldToScreenPoint (RightTop.transform.position);LBPos=cam.WorldToScreenPoint (LeftBottom.transform.position);RBPos=cam.WorldToScreenPoint (RightBottom.transform.position);//计算网格宽度gridWidth=(RTPos。x - LTPos.x)/14;gridHeight=(LTPos。y - LBPos.y)/14;minGridDis=gridWidth & lt;gridHeight吗?gridWidth: gridHeight;//计算落子点位置为(int i=0;我& lt;15;我为(+ +){int j=0;j & lt;15;j + +) {chessPos (i, j)=new Vector2 (LBPos。x + gridWidth *我,LBPos。y + gridHeight * j);}}//检测鼠标输入并确定落子状态如果isPlaying,,Input.GetMouseButtonDown (0)) {PointPos=Input.mousePosition;for (int i=0;我& lt;15;我为(+ +){int j=0;j & lt;15;j + +){,//找到最接近鼠标点击位置的落子点,如果空则落子如果(Dis (PointPos, chessPos (i, j)) & lt;minGridDis/2,,chessState (i, j)==0){//根据下棋顺序确定落子颜色chessState (i, j)=chessTurn==:谏穆?1:1;//落子成功,更换下棋顺序chessTurn=chessTurn==:谏穆?转弯。白:turn.black;,,}}}//调用判断函数,确定是否有获胜方int re=结果();如果(re==1) {Debug.Log(“黑棋胜“);赢家=1;isPlaying=false;}else if (re==1) {Debug.Log(“白棋胜“);赢家=1;isPlaying=false;},}//按下空格重新开始游戏如果(Input.GetKeyDown (KeyCode.Space)) {(int i=0;我& lt;15;我为(+ +){int j=0;j & lt;15;j + +) {chessState (i, j)=0;}}isPlaying=true;chessTurn=turn.black;赢家=0;},}//计算平面距离函数浮动Dis (Vector3 mpo、Vector2 gridPos){返回Mathf.Sqrt (Mathf.Pow (mpo。x - gridPos。x, 2) + Mathf.Pow (mpo。y - gridPos。y, 2));},空白>到此,关于“怎么用Unity3D开发五子棋游戏”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

怎么用Unity3D开发五子棋游戏