unity实战教程 - CSDN
精华内容
参与话题
  • 126套Unity3D视频教程全集(包含入门、编程、特效、UI、动画、实战等等) 全集下载地址 http://urllink.cc/?v=c4ca1ryw [000001]《Unity ARPG网络游戏编程实践系列视频教程(游戏蛮牛第三季)》[25课时] [000002]...
    126套Unity3D视频教程全集(包含入门、编程、特效、UI、动画、实战等等)
    
    全集下载地址 http://urllink.cc/?v=c4ca1ryw
    
    [000001]《Unity ARPG网络游戏编程实践系列视频教程(游戏蛮牛第三季)》[25课时]
    [000002]《Unity CS之战局域网射击游戏视频教程》[28课时]
    [000003]《Unity Dota游戏英雄联盟制作视频教程》[25课时]
    [000004]《Unity Native 2D系列视频教程(游戏蛮牛第二季)》[36课时]
    [000005]《Unity RPG游戏黑暗之光视频教程》[110课时]
    [000006]《Unity 编程基础系列视频教程(游戏蛮牛第五季)》[61课时]
    [000007]《Unity 编程语言视频教程之Javascript》[3季59课时]
    [000008]《Unity 编程语言视频教程之Python》[61课时]
    [000009]《Unity 插件系列视频教程(游戏蛮牛第四季)》[12课时]
    [000010]《Unity 动作游戏全攻略视频教程》[36课时]
    [000011]《Unity 黑暗奇侠RPG剧情类游戏视频教程》[55课时]
    [000012]《Unity 基础入门视频教程》[15课时]
    [000013]《Unity 经典入门课程基础打砖块实例教程》[7课时]
    [000014]《Unity 快速入门视频教程》[18课时]
    [000015]《Unity 炉石传说制作全套视频教程》[24课时]
    [000016]《Unity 年度史诗MMO ARPG 泰斗破坏神全套视频教程》[325课时]
    [000017]《Unity 入门视频教程(游戏蛮牛第一季)》[108课时]
    [000018]《Unity 手机游戏实战类实例视频教程(游戏蛮牛第六季)》[63课时]
    [000019]《Unity 特效系统学习视频教程》[7课时]
    [000020]《Unity 屠龙战机全套制作视频教程》[15课时]
    [000021]《Unity 虚拟现实系列实例视频教程(游戏蛮牛第七季)》[49课时]
    [000022]《Unity 摇摆直升机实例视频教程》[6课时]
    [000023]《Unity 游戏开发中高级美术视频教程(游戏蛮牛第八季)》[40课时]
    [000024]《Unity C# 中级学习教程独家整理进阶视频附带素材》[37课时]
    [000025]《Unity Debug 调试中文视频教程附带源代码》[6课时]
    [000026]《Unity Localized Dialogs 角色对话开发教程附素材》[5课时]
    [000027]《Unity Android 环境搭建及应用中文视频教程附素材》[9课时]
    [000028]《Unity RPG游戏制作中文视频教程附带素材》[56课时]
    [000029]《Unity RTS战棋游戏镜头运用教程附带素材》[1课时]
    [000030]《Unity TNet Tasharen Networking 中文视频教程》[5课时]
    [000031]《Unity UGUI 中文视频超强学习教程附素材》[32课时]
    [000032]《Unity 飞行射击游戏制作中文教程附素材》[16课时]
    [000033]《Unity 格斗游戏开发实例中文视频教程附带素材》[36课时]
    [000034]《Unity 合金弹头游戏开发实例中文视频教程附素材》[3课时]
    [000035]《Unity 火影2048开发实例中文视频教程附带素材》[5课时]
    [000036]《Unity 跑酷游戏开发实例中文视频教程附带素材》[30课时]
    [000037]《Unity 小地图制作实例讲解中文视频教程附带素材》[1课时]
    [000038]《Unity 游戏制作范例讲解中文视频教程附带素材》[24课时]
    [000039]《Unity 休闲游戏开发实例中文教程独家整理附素材》[12课时]
    [000040]《Unity 泰斗破坏神案例视频教程》[全集]
    [000041]《Unity Platform 中文视频教程》[7课时]
    [000042]《Unity PlayMaker基础视频教程》[7课时]
    [000043]《Unity 超级玛丽奥视频教程》[7课时]
    [000044]《Unity 愤怒的小鸟 中文视频教程》[12课时]
    [000045]《Unity 机器人之战视频教程》[14课时]
    [000046]《Unity 精神時光屋》[5课时]
    [000047]《Unity 切水果视频教程》[9课时]
    [000048]《Unity 太空射击游戏中文视频》[17课时]
    [000049]《Unity 坦克克星视频教程》[9课时]
    [000050]《Unity 游戏蛮荒之地教学视频》[15课时]
    [000051]《Unity 2D超级玛丽奥高级版 系列教程》[68课时]
    [000052]《Unity AboutCG JavaScript 初级教程》[4课时]
    [000053]《Unity GUI设计 视频教程》[1课时]
    [000054]《Unity JiaByNew 投篮游戏 视频教程》[1课时]
    [000055]《Unity 动作冒险解谜游戏特效案例制作教程》[16课时]
    [000056]《Unity 海海基础操作 视频教程》[5课时]
    [000057]《Unity 基础视频教程》[5课时]
    [000058]《Unity 脚本着色器基础入门训练》[7课时]
    [000059]《Unity 宣雨松入门三课》[3课时]
    [000060]《Unity 游戏大鬼战斗制作视频教程》[16课时]
    [000061]《Unity (Lynda出品)角色动画系统视频教程(英语)》[42课时]
    [000062]《Unity (Zbooa出品)Scifi Third Person Game Tutorial(英语)》[35课时]
    [000063]《Unity (蓝铅笔)特效系统学习课程》[7课时]
    [000064]《Unity 2D超级玛丽高级教程(英语)(附工程源码)》[25课时]
    [000065]《Unity Android Development With Unity(英语)》[3课时]
    [000066]《Unity iGUI快速搭建UI教程和插件安装包(英语)》[6课时]
    [000067]《Unity Lightmapping光影贴图视频教程(英语)》[4课时]
    [000068]《Unity NGUI教程(英语)》[16课时]
    [000069]《Unity Playmaker基础教程(英语_带中文字幕)》[7课时]
    [000070]《Unity Uni2D最牛逼的2D插件教程和插件安装包(英语)》[6课时]
    [000071]《Unity 反馈系统制作视频教程(附工程源码)》[11课时]
    [000072]《Unity 工作技巧视频教程(附工程源代码)》[11课时]
    [000073]《Unity 游戏开发培训视频教程》[13课时]
    [000074]《Unity 游戏引擎的基础入门视频教程》[20课时]
    [000075]《Unity (SIKI案例公开课)飞机大战录制课程》[7课时]
    [000076]《Unity (SIKI老师)通过示例讲解C#》[10课时]
    [000077]《Unity AboutCG Playmaker 入门到精通》[8章106课时]
    [000078]《Unity AboutCG 初级视频教程》[3章37课时]
    [000079]《Unity ARGP网络游戏实战全套》[24课时]
    [000080]《Unity C#实例讲解打砖块游戏》[8课时]
    [000081]《Unity C#语言基础课程》[31课时]
    [000082]《Unity Mecanim动画系统》[14课时]
    [000083]《Unity Student 初学者系列教程》[15课时]
    [000084]《Unity Student 基础系列视频教程》[10课时]
    [000085]《Unity Swing Copters游戏制作教程》[12课时]
    [000086]《Unity 北京某培训机构 视频课程》[11课时]
    [000087]《Unity 插件之NGUI完整开发课程》[41课时]
    [000088]《Unity 传智播客公开课 视频教程》[9课时]
    [000089]《Unity 大型RPG视频教程》[30课时]
    [000090]《Unity 动画系统 视频教程》[1课时]
    [000091]《Unity 龚老师 大炮射击飞碟 系列视频教程》[8课时]
    [000092]《Unity 龚老师 屠龙战机 视频教程》[15课时]
    [000093]《Unity 龚老师 小鱼战士 视频教程》[5课时]
    [000094]《Unity 官网标准教程(英文)》[11章106课时]
    [000095]《Unity 光影贴图 视频教程》[4课时]
    [000096]《Unity 基础入门视频教程》[15课时]
    [000097]《Unity 基础入门之Roll-a-Ball滚动小球》[16课时]
    [000098]《Unity 基础入门之进入Unity的世界》[14课时]
    [000099]《Unity 角色动画系统 视频教程》[52课时]
    [000100]《Unity 脚本语言学习之C#语言》[9章168课时]
    [000101]《Unity 开发 2048 游戏案例公开课录制课程》[11课时]
    [000102]《Unity 内核架构深度剖析》[1课时]
    [000103]《Unity 跑酷游戏逃离地球实例教程》[31课时]
    [000104]《Unity 使用DF开发应用程序基础-计算器案例》[2课时]
    [000105]《Unity 使用Unity开发FlappyBird案例》[4课时]
    [000106]《Unity 特效系统学习视频课程》[7课时]
    [000107]《Unity 围住神经猫 视频课程》[12课时]
    [000108]《Unity 游戏插件 Daikon Forge GUI 视频教程》[47课时]
    [000109]《Unity 筑梦天下 高级应用 视频教程》[5课时]
    [000110]《Unity RPG游戏黑暗之光案例视频教程》[110课时]
    [000111]《Unity 动作游戏全攻略视频教程》[29课时]
    [000112]《Unity 基础入门之进入Unity的世界》[15课时]
    [000113]《Unity 脚本语言学习之Javascript语言》[59课时]
    [000114]《Unity 脚本语言学习之Python语言》[61课时]
    [000115]《Unity 经典入门课程基础打砖块实例教程》[7课时]
    [000116]《Unity 炉石传说制作全套视频教程》[24课时]
    [000117]《Unity 屠龙战机全套制作视频教程》[15课时]
    [000118]《Unity 知识体系入门课程》[18课时]
    [000119]《Unity 游戏蛮牛 C#编程教程》[第五季][61课时]
    [000120]《Unity 游戏蛮牛 2D进阶公开课》[第二季][37课时]
    [000121]《Unity 游戏蛮牛 插件系列教程》[第四季][83课时]
    [000122]《Unity 游戏蛮牛 公开课》[第一季][108课时]
    [000123]《Unity 游戏蛮牛 手机游戏实战类完整实例》[第六季][63课时]
    [000124]《Unity 游戏蛮牛 虚拟现实系列实例》[第七季][49课时]
    [000125]《Unity 游戏蛮牛 游戏开发中高级美术》[第八季][40课时]
    [000126]《Unity 游戏蛮牛 游戏开发中高级美术》[第三季][26课时]
    
    全集下载地址 http://urllink.cc/?v=c4ca1ryw
    展开全文
  • Unity3D入门教程Unity3D开发实战之五子棋

    万次阅读 多人点赞 2017-10-03 06:55:40
    经过前面《Unity3D入门教程》系列讲解,再加上我们自己的探索,相信大家已经掌握了Unity3D的相关知识和基本方法。本文将使用前面学到的知识,开发一款简单的五子棋程序。本文用到的东西其实不多,非常简单。在最后...

    前言

    经过前面《Unity3D入门教程》系列讲解,再加上我们自己的探索,相信大家已经掌握了Unity3D的相关知识和基本方法。本文将使用前面学到的知识,开发一款简单的五子棋程序。本文用到的东西其实不多,非常简单。在最后我们会把完整工程的源代码发布出来,以供初学者参考。先展示一下最后的运行效果吧。

    1 准备工作

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

    (2)图片素材准备:

    黑棋子和白棋子

       

    棋盘


    获胜提示图片




    2 开发流程

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


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


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


    chess.cs脚本如下:

    using UnityEngine;
    using System.Collections;
    
    public class chess : MonoBehaviour {
    
    	//四个锚点位置,用于计算棋子落点
    	public GameObject LeftTop;
    	public GameObject RightTop;
    	public GameObject LeftBottom;
    	public GameObject RightBottom;
    	//主摄像机
    	public Camera cam;
    	//锚点在屏幕上的映射位置
    	Vector3 LTPos;
    	Vector3 RTPos;
    	Vector3 LBPos;
    	Vector3 RBPos;
    
    	Vector3 PointPos;//当前点选的位置
    	float gridWidth =1; //棋盘网格宽度
    	float gridHeight=1; //棋盘网格高度
    	float minGridDis;  //网格宽和高中较小的一个
    	Vector2[,] chessPos; //存储棋盘上所有可以落子的位置
    	int[,] chessState; //存储棋盘位置上的落子状态
    	enum turn {black, white } ;
    	turn chessTurn; //落子顺序
    	public Texture2D white; //白棋子
    	public Texture2D black; //黑棋子
    	public Texture2D blackWin; //白子获胜提示图
    	public Texture2D whiteWin; //黑子获胜提示图
    	int winner = 0; //获胜方,1为黑子,-1为白子
    	bool isPlaying = true; //是否处于对弈状态
    	void Start () {
    		chessPos = new Vector2[15, 15];
    		chessState =new int[15,15];
    		chessTurn = turn.black;
    
    	}
    
    	void Update () {
    
    		//计算锚点位置
    		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 < gridHeight ? gridWidth : gridHeight;
    		//计算落子点位置
    		for (int i = 0; i < 15; i++)
    		{
    			for (int j = 0; j < 15; j++)
    			{
    				chessPos[i, j] = new Vector2(LBPos.x + gridWidth * i, LBPos.y + gridHeight * j);
    			}
    		}
    		//检测鼠标输入并确定落子状态
    		if (isPlaying && Input.GetMouseButtonDown(0))
    		{
    			PointPos = Input.mousePosition;
    			for (int i = 0; i < 15; i++)
    			{
    				for (int j = 0; j < 15; j++)
    				{   
    					//找到最接近鼠标点击位置的落子点,如果空则落子
    					if (Dis(PointPos, chessPos[i, j]) < minGridDis / 2 && chessState[i,j]==0)
    					{
    						//根据下棋顺序确定落子颜色
    						chessState[i, j] = chessTurn == turn.black ? 1 : -1;
    						//落子成功,更换下棋顺序
    						chessTurn = chessTurn == turn.black ? turn.white : turn.black;                        
    					}
    				}
    			}
    			//调用判断函数,确定是否有获胜方
    			int re = result();
    			if (re == 1)
    			{
    				Debug.Log("黑棋胜");
    				winner = 1;
    				isPlaying = false;
    			}
    			else if(re==-1)
    			{
    				Debug.Log("白棋胜");
    				winner = -1;
    				isPlaying = false;
    			}            
    		}
    		//按下空格重新开始游戏
    		if (Input.GetKeyDown(KeyCode.Space))
    		{
    			for (int i = 0; i < 15; i++)
    			{
    				for (int j = 0; j < 15; j++)
    				{
    					chessState[i, j] = 0;
    				}
    			}
    			isPlaying = true;
    			chessTurn = turn.black;
    			winner = 0;
    		}     
    	}
    	//计算平面距离函数
    	float Dis(Vector3 mPos, Vector2 gridPos)
    	{
    		return Mathf.Sqrt(Mathf.Pow(mPos.x - gridPos.x, 2)+ Mathf.Pow(mPos.y - gridPos.y, 2));
    	}
    
    	void OnGUI()
    	{ 
    		//绘制棋子
    		for(int i=0;i<15;i++)
    		{
    			for (int j = 0; j < 15; j++)
    			{
    				if (chessState[i, j] == 1)
    				{
    					GUI.DrawTexture(new Rect(chessPos[i,j].x-gridWidth/2, Screen.height-chessPos[i,j].y-gridHeight/2, gridWidth,gridHeight),black);
    				}
    				if (chessState[i, j] == -1)
    				{
    					GUI.DrawTexture(new Rect(chessPos[i, j].x - gridWidth / 2, Screen.height - chessPos[i, j].y - gridHeight / 2, gridWidth, gridHeight), white);
    				}               
    			}
    		}
    		//根据获胜状态,弹出相应的胜利图片
    		if (winner ==  1)
    			GUI.DrawTexture(new Rect(Screen.width * 0.25f, Screen.height * 0.25f, Screen.width * 0.5f, Screen.height * 0.25f), blackWin);
    		if (winner == -1)
    			GUI.DrawTexture(new Rect(Screen.width * 0.25f, Screen.height * 0.25f, Screen.width * 0.5f, Screen.height * 0.25f), whiteWin);
    
    	}
    	//检测是够获胜的函数,不含黑棋禁手检测
    	int result()
    	{
    		int flag = 0;
    		//如果当前该白棋落子,标定黑棋刚刚下完一步,此时应该判断黑棋是否获胜
    		if(chessTurn == turn.white)
    		{
    			for (int i = 0; i < 11; i++)
    			{
    				for (int j = 0; j < 15; j++)
    				{
    					if (j < 4)
    					{
    						//横向
    						if (chessState[i, j] == 1 && chessState[i, j + 1] == 1 && chessState[i, j + 2] == 1 && chessState[i, j + 3] == 1 && chessState[i, j + 4] == 1)
    						{
    							flag = 1;
    							return flag;
    						}
    						//纵向
    						if (chessState[i, j] == 1 && chessState[i + 1, j] == 1 && chessState[i + 2, j] == 1 && chessState[i + 3, j] == 1 && chessState[i + 4, j] == 1)
    						{
    							flag = 1;
    							return flag;
    						}
    						//右斜线
    						if (chessState[i, j] == 1 && chessState[i + 1, j + 1] == 1 && chessState[i + 2, j + 2] == 1 && chessState[i + 3, j + 3] == 1 && chessState[i + 4, j + 4] == 1)
    						{
    							flag = 1;
    							return flag;
    						}
    						//左斜线
    						//if (chessState[i, j] == 1 && chessState[i + 1, j - 1] == 1 && chessState[i + 2, j - 2] == 1 && chessState[i + 3, j - 3] == 1 && chessState[i + 4, j - 4] == 1)
    						//{
    						//    flag = 1;
    						//    return flag;
    						//}
    					}
    					else if (j >= 4 && j < 11)
    					{
    						//横向
    						if (chessState[i, j] == 1 && chessState[i, j + 1] == 1 && chessState[i, j + 2] == 1 && chessState[i, j + 3] == 1 && chessState[i, j + 4] == 1)
    						{
    							flag = 1;
    							return flag;
    						}
    						//纵向
    						if (chessState[i, j] == 1 && chessState[i + 1, j] == 1 && chessState[i + 2, j] == 1 && chessState[i + 3, j] == 1 && chessState[i + 4, j] == 1)
    						{
    							flag = 1;
    							return flag;
    						}
    						//右斜线
    						if (chessState[i, j] == 1 && chessState[i + 1, j + 1] == 1 && chessState[i + 2, j + 2] == 1 && chessState[i + 3, j + 3] == 1 && chessState[i + 4, j + 4] == 1)
    						{
    							flag = 1;
    							return flag;
    						}
    						//左斜线
    						if (chessState[i, j] == 1 && chessState[i + 1, j - 1] == 1 && chessState[i + 2, j - 2] == 1 && chessState[i + 3, j - 3] == 1 && chessState[i + 4, j - 4] == 1)
    						{
    							flag = 1;
    							return flag;
    						}
    					}
    					else
    					{
    						//横向
    						//if (chessState[i, j] == 1 && chessState[i, j + 1] == 1 && chessState[i, j + 2] == 1 && chessState[i, j + 3] == 1 && chessState[i, j + 4] == 1)
    						//{
    						//    flag = 1;
    						//    return flag;
    						//}
    						//纵向
    						if (chessState[i, j] == 1 && chessState[i + 1, j] == 1 && chessState[i + 2, j] == 1 && chessState[i + 3, j] == 1 && chessState[i + 4, j] == 1)
    						{
    							flag = 1;
    							return flag;
    						}
    						//右斜线
    						//if (chessState[i, j] == 1 && chessState[i + 1, j + 1] == 1 && chessState[i + 2, j + 2] == 1 && chessState[i + 3, j + 3] == 1 && chessState[i + 4, j + 4] == 1)
    						//{
    						//    flag = 1;
    						//    return flag;
    						//}
    						//左斜线
    						if (chessState[i, j] == 1 && chessState[i + 1, j - 1] == 1 && chessState[i + 2, j - 2] == 1 && chessState[i + 3, j - 3] == 1 && chessState[i + 4, j - 4] == 1)
    						{
    							flag = 1;
    							return flag;
    						}
    					}
    
    				}
    			}
    			for (int i = 11; i < 15; i++) 
    			{
    				for (int j = 0; j < 11; j++) 
    				{
    					//只需要判断横向  
    					if (chessState[i, j] == 1 && chessState[i, j + 1] == 1 && chessState[i, j + 2] == 1 && chessState[i, j + 3] == 1 && chessState[i, j + 4] == 1)  
    					{  
    						flag = 1;  
    						return flag;  
    					}  
    				}
    			}
    		}
    		//如果当前该黑棋落子,标定白棋刚刚下完一步,此时应该判断白棋是否获胜
    		else if(chessTurn == turn.black)
    		{
    			for (int i = 0; i < 11; i++)
    			{
    				for (int j = 0; j < 15; j++)
    				{
    					if (j < 4)
    					{
    						//横向
    						if (chessState[i, j] == -1 && chessState[i, j + 1] == -1 && chessState[i, j + 2] == -1 && chessState[i, j + 3] == -1 && chessState[i, j + 4] == -1)
    						{
    							flag = -1;
    							return flag;
    						}
    						//纵向
    						if (chessState[i, j] == -1 && chessState[i + 1, j] == -1 && chessState[i + 2, j] == -1 && chessState[i + 3, j] == -1 && chessState[i + 4, j] == -1)
    						{
    							flag = -1;
    							return flag;
    						}
    						//右斜线
    						if (chessState[i, j] == -1 && chessState[i + 1, j + 1] == -1 && chessState[i + 2, j + 2] == -1 && chessState[i + 3, j + 3] == -1 && chessState[i + 4, j + 4] == -1)
    						{
    							flag = -1;
    							return flag;
    						}
    						//左斜线
    						//if (chessState[i, j] == -1 && chessState[i + 1, j - 1] == -1 && chessState[i + 2, j - 2] == -1 && chessState[i + 3, j - 3] == -1 && chessState[i + 4, j - 4] == -1)
    						//{
    						//    flag = -1;
    						//    return flag;
    						//}
    					}
    					else if (j >= 4 && j < 11)
    					{
    						//横向
    						if (chessState[i, j] == -1 && chessState[i, j + 1] == -1 && chessState[i, j + 2] == -1 && chessState[i, j + 3] == -1 && chessState[i, j + 4] ==- 1)
    						{
    							flag = -1;
    							return flag;
    						}
    						//纵向
    						if (chessState[i, j] == -1 && chessState[i + 1, j] == -1 && chessState[i + 2, j] == -1 && chessState[i + 3, j] == -1 && chessState[i + 4, j] == -1)
    						{
    							flag = -1;
    							return flag;
    						}
    						//右斜线
    						if (chessState[i, j] == -1 && chessState[i + 1, j + 1] == -1 && chessState[i + 2, j + 2] == -1 && chessState[i + 3, j + 3] == -1 && chessState[i + 4, j + 4] == -1)
    						{
    							flag = -1;
    							return flag;
    						}
    						//左斜线
    						if (chessState[i, j] == -1 && chessState[i + 1, j - 1] == -1 && chessState[i + 2, j - 2] == -1 && chessState[i + 3, j - 3] == -1 && chessState[i + 4, j - 4] == -1)
    						{
    							flag = -1;
    							return flag;
    						}
    					}
    					else
    					{
    						//横向
    						//if (chessState[i, j] == -1 && chessState[i, j + 1] ==- 1 && chessState[i, j + 2] == -1 && chessState[i, j + 3] == -1 && chessState[i, j + 4] == -1)
    						//{
    						//    flag = -1;
    						//    return flag;
    						//}
    						//纵向
    						if (chessState[i, j] == -1 && chessState[i + 1, j] ==- 1 && chessState[i + 2, j] ==- 1 && chessState[i + 3, j] ==- 1 && chessState[i + 4, j] == -1)
    						{
    							flag = -1;
    							return flag;
    						}
    						//右斜线
    						//if (chessState[i, j] == -1 && chessState[i + 1, j + 1] == -1 && chessState[i + 2, j + 2] == -1 && chessState[i + 3, j + 3] == -1 && chessState[i + 4, j + 4] == -1)
    						//{
    						//    flag = -1;
    						//    return flag;
    						//}
    						//左斜线
    						if (chessState[i, j] == -1 && chessState[i + 1, j - 1] == -1 && chessState[i + 2, j - 2] == -1 && chessState[i + 3, j - 3] == -1 && chessState[i + 4, j - 4] == -1)
    						{
    							flag = -1;
    							return flag;
    						}
    					}
    				}
    			}
    			for (int i = 11; i < 15; i++) 
    			{
    				for (int j = 0; j < 11; j++) 
    				{
    					//只需要判断横向  
    					if (chessState[i, j] == -1 && chessState[i, j + 1] == -1 && chessState[i, j + 2] == -1 && chessState[i, j + 3] == -1 && chessState[i, j + 4] == -1)  
    					{  
    						flag = -1;  
    						return flag;  
    					}  
    				}
    			}
    		}       
    		return flag;
    	}    
    }



    运行效果截图:



    小结

    本程序实现了五子棋的基本功能,纯属娱乐而作。暂时没有加入各种UI、网络模块等。本程序经过了简单的测试,没有什么问题,如果大家在使用的时候发现有什么Bug,请联系我改正,谢谢。

    *************************************************************************************

    下面是工程源码下载地址:

    https://github.com/zzlyw/FiveChess_Tutorial



    展开全文
  • Unity客户端架构设计与网络游戏关键技术(Avatar,热更新,Protobuf) 课程分类:游戏开发 适合人群:中级 课时数量:20(42节)课时 用到技术:Unity客户端,UI设计框架,Avatar换装,Protobuf-net等 涉及项目:...
    Unity客户端架构设计与网络游戏关键技术(Avatar,热更新,Protobuf)
    课程分类:游戏开发
    适合人群:中级
    课时数量:20(42节)课时
    用到技术:Unity客户端,UI设计框架,Avatar换装,Protobuf-net等
    涉及项目:搭建Unity客户端 UI设计框架以及Avatar换装和移动端热更新技术实现以及Protobuf-net在Unity中运用
    咨询qq:1840215592


    课程介绍:
    1.课程研发环境
    开发工具:Unity4.6和VS2008
    2.内容简介
    本课程内容详细介绍了如何实现移动端客户端架构以及网络游戏中关键技术Avatar换装实现和热更新技术实现以及开源库Protobuf-net在Unity中使用,由浅入深的讲解,从原理入手,从架设UI设计开始,可以快速的搭建客户端架构,对于游戏中开发应该注意的问题也进行了说明和介绍。
    Unity游戏开发实战视频教程详细介绍:http://www.ibeifeng.com/goods-510.html
    课程大纲:
    第01节:Avatar系统以及模型规范
    第02节:Avatar系统技术实现原理
    第03节:Avatar系统技术编码讲解(1)
    第04节:Avatar系统技术编码讲解(2)
    第05节:Avatar系统换装技术成果展示及总结
    第06节:客户端架构整体设计
    第07节:客户端架构UI设计
    第08节:客户端架构常用函数封装
    第09节:客户端架构UI容器实现
    第10节:客户端架构管理类对外接口封装
    第11节:客户端架构游戏生成器和管理器
    第12节:客户端架构资源类封装
    第13节:客户端架构Panel管理类封装
    第14节:客户端架构Panel管理类完善
    第15节:客户端架构Panel管理类讲解(1)
    第16节:客户端架构Panel管理类讲解(2)
    第17节:客户端架构模板类封装
    第18节:客户端架构DialogManger管理类架构(1)
    第19节:客户端架构DialogManger管理类架构(2)
    第20节:客户端架构Util通用类完善(1)
    第21节:客户端架构Util通用类完善(2)
    第22节:客户端架构生成LoginPanel脚本
    第23节:客户端架构-MainPanel讲解(1)
    第24节:客户端架构-MainPanel讲解(2)
    第25节:客户端架构Json保存与加载(1)
    第26节:客户端架构Json保存与加载(2)
    第27节:客户端架构UITexture旋转功能讲解(1)
    第28节:客户端架构UITexture旋转功能讲解(2)
    第29节:客户端架构副本界面生成
    第30节:客户端架构图集的动态加载
    第31节:客户端架构AssetManager封装
    第32节:客户端架构AssetManager和资源打包
    第33节:客户端架构消息事件封装(1)
    第34节:客户端架构消息事件封装(2)
    第35节:客户端架构总结
    第36节:热更新技术讲解
    第37节:热更新技术代码实现(1)
    第38节:热更新技术代码实现(2)
    第39节:Unity-Protobuf介绍
    第40节:Unity-Protobuf运用
    第41节:Unity-Protobuf代码实现(1)
    第42节:Unity-Protobuf代码实现及总结
    展开全文
  • 基于NGUI 3.6.8版本进行讲解. 目 录 第 1 章 初识NGUI 1.1 游戏UI开发介绍 1.2 什么是NGUI ...第 6 章 NGUI实战进阶 第 7 章 用代码深度控制UI 第 8 章 实用案例演示 第 9 章 常见疑难问题解答
  • 继续第一篇的实战项目学习,完成游戏“弹道精英”后期开发,特效、音效的控制等至打包上线。

    立即学习:https://edu.csdn.net/course/play/4358/76996?utm_source=blogtoedu

    看风景的时间开发乐山大佛

    展开全文
  • Unity 3D NGUI实战教程 完整版 第1章 初识NGUI 1.1 游戏UI开发介绍 1.1.1 什么是游戏UI 1.1.2 UI为何如此重要 1.1.3 UI开发的流程 1.1.4 UI开发的难点 1.2 什么是NGUI 1.2.1 NGUI插件介绍 1.2.2 NGUI的强大优势 第2...
  • Unity 3D NGUI实战教程》完整版,带目录。 此资源为上半部,必须下载下半部 《Unity 3D NGUI实战教程》完整版 part2 放在一起才能解压
  • Unity 3D NGUI实战教程.pdf(大小84.4M),有出现10几M pdf 那才36页,原书有233页
  • Unity 3D NGUI实战教程 pdf电子书

    热门讨论 2020-07-30 23:32:14
    Unity 3D NGUI实战教程978-7-115-38546-8_13745677
  • Unity 3D NGUI实战教程 完整版 第1章 初识NGUI 1.1 游戏UI开发介绍 1.1.1 什么是游戏UI 1.1.2 UI为何如此重要 1.1.3 UI开发的流程 1.1.4 UI开发的难点 1.2 什么是NGUI 1.2.1 NGUI插件介绍 1.2.2 NGUI的强大优势 第2...
  • Unity 3D NGUI实战教程》完整版 带目录 需要和part1放在一起才能解压
  • 本文档适合新上手的Unity客户端程序员、需要做UI的Unity程序员、想自学Unity做独立游戏开发的人员,以及大专院校相关专业的师生学习用书和培训学校的教材。
  • 共包含两套教程:   一:千锋Unity3d游戏图形学从理论到实战精讲 图形学是游戏开发的重点和难点。理解图形学是做好一款游戏的必备技能。 目前有很少的视频教程能够清楚的讲明白图形学,本视频通过大量...
  • Unity+NGUI实战教程

    2020-03-12 23:34:24
    NGUI是专门针对unity引擎,用c#语言编写的一套插件,它已经成了最热门的UI插件,二者的实战教程,初学者必看。
  • Unity开发实战 .pdf

    2020-07-30 23:30:03
    本书共11章,内容几乎涵盖了Unity的所有方面。第1章适合那些刚开始或准备开始使用Unity4.x的读者。该章内容包括软件安装、了解软件界面、用户首选项,以及一些使用流程的建议。第2章讲解用于控制和加强游戏中摄像机...
  • Unity+3D+NGUI实战教程

    2020-07-23 23:32:54
    完成版,好东西,好好学习一下,好好学习一下,好好学习一下
  • 本节书摘来异步社区《Unity 3D NGUI 实战教程》一书中的第1章,第1.1节,作者: 高雪峰 责编: 张涛,更多章节内容可以访问云栖社区“异步社区”公众号查看。1.1 游戏UI开发介绍Unity 3D NGUI 实战教程1.1.1 什么是...
  • 大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。上一章我们添加了突出显示玩家的状态显示,这节课我们来处理一下单位被选中或取消时的效果,通用的办法是使脚本处理每个可交互的对象,但是我们不想让上...
  • 大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。上一章我们对单位选中时进行了处理,接下来我们来处理 一下输入控制。 ...如果检测到点击交互我们就调用之前写好的Select函数,取消选择时我们就会调用...
  • 大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。这节课我们接着来讲AI的相关部分:战斗AI。  游戏中要进行战斗,就需要让AI会攻击,首先在一定范围内如果有足够的单位则进行攻击,在AI文件夹中创建一...
1 2 3 4 5 ... 20
收藏数 2,426
精华内容 970
热门标签
关键字:

unity实战教程