
☆游戏开发☆
游戏开发
Jaihk662
这个作者很懒,什么都没留下…
展开
-
Unity3D基础42:AnyState大法
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/88384315(状态机实现人物站立、跑步与后退动画切换)一、AnyState哪怕是最简单的角色,一般来讲都可能需要6-7个动画以上,例如一些最基本的:跑步、后退、受击、跳跃、攻击、死亡等等,这个时候,状态机的规模就已经不能算小了,而更主要的是假设有n个状态,它们之间连线可能有n²个这...原创 2019-03-11 00:02:38 · 13034 阅读 · 11 评论 -
Unity3D基础41:状态机实现人物站立、跑步与后退动画切换
一、状态机的建立大部分情况下,当游戏内玩家没有任何操作时,肯定都是站立不动的状态,然而事实上,玩家不可能和木头人一样完全静止,这样显得非常不真实,给玩家带来的体验当然也会很差,所以基本上所有有角色的游戏(纯2D游戏除外),角色的站立状态也都是有专门的动画的。当然了,站立状态大部分情况下都会是默认状态,所以先设置一个站立的状态,并作为初始状态如下:点击一下状态,添加动画并改名...原创 2019-03-10 21:59:35 · 16246 阅读 · 2 评论 -
Unity3D基础40:人物动画
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/87927195(人物角色模型)一、Animator组件官方文档:https://docs.unity3d.com/ScriptReference/Animator.htmlController:当前动画控制器(状态机) Avatar:骨骼文件,仅当GameObject是人形...原创 2019-03-10 17:26:39 · 3057 阅读 · 2 评论 -
Unity3D基础39:人物角色模型
一、FBX格式文件FBX格式文件:最通用的一种3D文件格式,由AutoDesk(3DMax)公司推出,其最大的特点就是“跨平台”,也就是说3D模型制作完毕后导出的FBX格式文件,可以在不同的3D软件之间交互,很多3D建模类软件也都支持导出(导入)FBX格式FBX模型资源:BIP骨骼文件:一套完整的骨骼结构,用于控制角色的动作 角色模型文件:角色有蒙皮,所有该文件上有一个“Ski...原创 2019-02-25 23:37:51 · 11317 阅读 · 1 评论 -
GameObject.Find() 和 Transform.Find()的区别
GameObject.Find() 和 Transform.Find() 都可以用于查找物体,但是它们当然是有区别的GameObject.Find()可以通过路径查找 如果某个物体的祖先被隐藏,那么这个物体将无法被查找到 相当于递归暴力查找,效率相对低下Transform.Find()可以通过路径查找 可以查找到隐藏物体,但是Transform所在的根节点必须可见 相对...原创 2019-02-25 15:49:24 · 1177 阅读 · 0 评论 -
Unity3D基础38:角色控制器组件
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/87906156(Input控制面板)一、CharacterController角色控制器为什么使用角色控制器而不使用刚体? → 刚体过于灵活(敏感),例如稍有碰撞就会被弹开,物体的质量不好把握或计算等等角色控制器面板与属性:Slope Limit:控制角色最大的爬坡斜率...原创 2019-02-24 23:10:52 · 3716 阅读 · 0 评论 -
Unity3D基础37:Input控制面板
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/87643141(控制物体移动与旋转)一、Input控制面板简介很多游戏的按键都是可以配置的,比如说赛车游戏你可以按Shift进行漂移,但是如果你觉得不方便可以改成Ctrl键,除此之外守望先锋有一段时间可以用鼠标滚轮来控制DJ跳跃以更方便的做到脚不沾地游遍地图秀各种操作等等,想要做到按...原创 2019-02-24 19:31:00 · 1319 阅读 · 0 评论 -
Unity3D之UGUI基础10:画布的三种模式
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/87865239(UGUI插件介绍)Canvas组件有三种不同的渲染模式:Screen Space - Overlay Screen Space - Camera World Space这三种渲染模式分别用于不同的渲染需求,Canvas组件上其余的属性都根据不同的渲染模式发生...原创 2019-02-22 16:08:46 · 957 阅读 · 0 评论 -
Unity3D之UGUI基础9:ScrollRect卷动区域
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/87876606(Scrollbar卷动条)一、ScrollRect卷动区域ScrollRect卷动区域组成:可以从上面看出,如果文字宽度/长度不需要卷动条,那么卷动条就会自动隐藏ScrollRect卷动区域重要属性:Horizontal:数据是否可以横向拖动(注意...原创 2019-02-22 15:16:34 · 2405 阅读 · 0 评论 -
Unity3D之UGUI基础8:InputField输入栏
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/87866889(Text文本)一、InputField输入栏简介InputField输入栏组成部分:InputField组件属性:Text Component:用于接收显示用户输入内容的Text组件 Text Component::Text:在该区域输入的文本会直接...原创 2019-02-22 14:05:38 · 3279 阅读 · 2 评论 -
Unity3D之UGUI基础7:Scrollbar卷动条
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/87876183(Slider滑条)一、Scrollbar卷动条简介Scrollbar组成部分:Scrollbar中的Handle是装载着Handle的空物体,作用是调整Handle可移动范围Scrollbar组件特有属性:Number Of Steps:滑块每次移...原创 2019-02-22 13:33:56 · 1444 阅读 · 0 评论 -
Unity3D之UGUI基础6:Slider滑条
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/87868676(Button按钮)一、Slider滑条简介Slider组成部分:Slider中的Fill Area和Handle Slide Area是装载着Handle和Fill的空物体,作用是调整子物体可移动范围Slider组件属性:Direction:滑块的...原创 2019-02-22 13:11:51 · 2341 阅读 · 0 评论 -
Unity3D之UGUI基础5:Toggle复选框
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/87868676(Button按钮)一、Toggle复选框简介Toggle组成部分:Toggle组件属性:部分组件和Button组件相同,可以参考前文Is On:是否选中(无法通过Inspector面板直接改变实际状态,需要用代码控制) Target Graphi...原创 2019-02-22 11:09:33 · 5495 阅读 · 1 评论 -
Unity3D之UGUI基础4:Button按钮
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/87866889(Text文本)一、Button组件分析当你新建Button时,会附送一个Text子物体 Button自带图片组件,并且有默认图片按钮的四种状态:Transition:四种状态切换方式(颜色变化、图片变化、行为控制)Normal:原始状态 Hover:...原创 2019-02-22 09:46:33 · 1739 阅读 · 0 评论 -
Unity3D之UGUI基础3:Image图片
一、Image基本使用Image组件用于显示图片资源或者纯粹的颜色在导入图片资源之前,可以先对图片进行以下操作:必须:将图片的类型修改为“Sprite(2D and UI)” 点击Sprite Editor给图片进行九宫划分(九宫模式必须)图片的基础属性Source Image:这个就不用说了吧 Color:图片的色调,当没有图片时显示的颜色 Raycast Ta...原创 2019-02-21 20:19:23 · 3157 阅读 · 1 评论 -
Unity3D之UGUI基础2:Text文本
一、两个基本组件Rect Transform:用于控制UI物体的基本属性Canvas Renderer:画板UI渲染器,必备且不可编辑这两个组件是所有UI的必备组件using UnityEngine.UI:UGUI所有的组件都存在于该命名空间内 二、Text文本Text文本除了上述的两个基础组件外,还有一个必备的Text组件一些基础属性:Font:字体...原创 2019-02-21 19:36:41 · 1276 阅读 · 0 评论 -
Unity3D之UGUI基础1:UGUI插件介绍
一、添加UIUGUI:Unity官方的UIUI创建方式如下:创建之后,就可以给UI添加组件,如下:当然也可以直接在Inspector面板中添加 二、Canvas画布当第一次添加UI时,会自动产生两个物体Canvas和EventSystemCanvas:画布,所有UGUI游戏物体都必须是Canvas的子物体,否则UI游戏物体将无法正常渲染显示,Canva...原创 2019-02-21 17:40:10 · 2472 阅读 · 0 评论 -
Unity3D之NGUI基础8:UI锚点与深度
一、层次深度假设同一个地方有两张图片,那么这两张图片肯定会有层次关系(深度),也就是渲染顺序,如下而决定这个属性就是Widget下的DepthWidget::Depth:渲染顺序,数字小的先渲染,而先渲染的会被后渲染的盖在下面,在同一个 UIPanel 中的所有子物体互相关UIPanel:用于创建实际的集合图形,也可也理解为一种用于管理的容器,例如下: 二...原创 2019-02-09 20:32:44 · 1049 阅读 · 1 评论 -
Unity3D基础36:场景自适应与场景切换
前文:https://blog.youkuaiyun.com/jaihk662/article/category/8659261一、场景分辨率游戏场景分辨率设置16:9常用分辨率有:1920*1080, 1280*720, 960*540, 720*405, 640*360, 320*180有了场景之后,一般就可以开始先做UI了,新建 2D UI Root,调整分辨率自适应方法如下...原创 2019-02-09 16:16:56 · 1028 阅读 · 0 评论 -
Unity3D之NGUI基础7:UI动态加载
一般在实际项目开发过程中,UI 界面制作好以后会拖拽成为一个 Prefab 资源,和 Scene 场景分离,在需要加载到该场景的时候,再动态的加载显示UI界面动态加载方法:第一步:将制作好的UI面板拖拽成为一个Prefab资源,放到Resources文件夹下第二步,编写脚本挂在 UI Root 上即可Resources.Load<T>(path):从资源文件夹...原创 2019-02-08 16:09:08 · 1720 阅读 · 0 评论 -
Unity3D之NGUI基础6.1:按钮交互
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/86775081一、两种绑定方法先写一个脚本如下:原则:一般来讲,是谁的脚本就挂在谁的身上,便于管理,所以这个脚本就挂在按钮图片上using System.Collections;using System.Collections.Generic;using UnityEn...原创 2019-02-08 15:19:21 · 1168 阅读 · 0 评论 -
Unity3D之NGUI基础6:UIButton按钮
一、添加按钮按钮的前提条件是有一个按钮的“图片”,所以要先添加一个图片之后给图片添加BoxCollider组件,用于确定可以点击的区域如下:最后添加按钮脚本就完成了 二、UIButton面板属性按钮的四种状态:Normal:原始状态 Hover:鼠标经过/停留状态 Pressed:按下状态 Disabled:不可用状态Colors就是对应的颜色...原创 2019-02-08 14:39:48 · 1174 阅读 · 0 评论 -
Unity3D之NGUI基础5.1:代码控制UISprite
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/86772975(UISprite显示图片)一、UI其它创建方案可以通过 NGUI→Create→2D UI 直接创建 UI Root,如下:2D UI 呈现灰色(不可创建)是因为一个Scene只能存在一个2D UI Root除此之外,直接新建子物体方法如下:图片中的文字就...原创 2019-02-08 02:37:28 · 1418 阅读 · 0 评论 -
Unity3D之NGUI基础5:UISprite显示图片
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/86772807(NGUI图片管理工具AtlasMaker)一、利用UISprite显示图片第一步:NGUI→Create→UISprite第二步:选择图集后选择要显示的图片第三步:调节图片大小Aspect:图片比例;设置锁定比例缩放 二、UISprite面...原创 2019-02-07 21:51:08 · 2307 阅读 · 1 评论 -
Unity3D之NGUI基础4:NGUI图片管理工具AtlasMaker
图集(Atlas):图片的一个集合,或者说打包格式,将多个图片全部贴在一起使用图集制作器(AtlasMaker)打包图集:打开AtlasMaker:NGUI→Open→AtlasMaker之后就可以得到一个图集,图集中有三个文件如下:.png:贴图文件,小图片拼接成的一张大图片 .mat:材质球文件,使用 .png 为素材制作的材质球 .prefab:图集文件,使用 .m...原创 2019-02-07 20:36:58 · 1075 阅读 · 0 评论 -
Unity3D之NGUI基础3.1:代码控制UILabel
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/86772256(UILabel显示字体)一、游戏得分信息第一步:新建UILabel,并将NGUI的摄像机的视角设定和主摄像机一致(比忘了Align……)第二步:新建两个Label标签,设定第一个文字内容为:“你的分数”,第二个文字内容为分数值修改分数对齐为左对齐,如下:不...原创 2019-02-07 19:37:59 · 977 阅读 · 0 评论 -
Unity3D之NGUI基础3:UILabel显示字体
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/86772085(使用NGUI)一、字体图集与TTF字体字体图集:将所用到的文字处理成一张图片进行使用,因为英语只有26个字母所以用这个,中文很显然不适合 TTF字体:直接使用TTF格式进行文字显示,非常主流的显示方式,电脑上的文字都是这样显示的修改字体:选中文字,之后通过Insp...原创 2019-02-07 17:49:47 · 1584 阅读 · 0 评论 -
Unity3D之NGUI基础2:使用NGUI
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/86771968(NGUI插件介绍)一、NGUI层次关系先创建一个用于显示文字的“游戏物体”:NGUI→Create→Label之后就可以看到NGUI的默认层次结构如下:UI Root:所有的 NGUI 元素都是 UI Root 的子物体 Camera:用于渲染 NGUI...原创 2019-02-07 16:53:43 · 2271 阅读 · 4 评论 -
Unity3D之NGUI基础1:NGUI插件介绍
一、安装NGUINUGI:最强大的UI系统之一是个额外需要下载的插件:https://pan.baidu.com/s/1IFjAX6Bp2itilBaBHTPmSw(3.10.0smva)下载后可以得到一个 .unitypackage 后缀的资源包,新建Unity项目直接导入即可二、NGUI文件夹Editor:编辑器扩展 Examples:示例工程 Res...原创 2019-02-07 16:23:34 · 2345 阅读 · 2 评论 -
Unity3D基础35:五彩砖块
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/86769185(打砖块小游戏)一、颜色控制gameObject.GetComponent<MeshRenderer>().material.color = new Color(R, G, B):通过网格渲染器修改物体外表颜色R, G, B:三色数值,在Unity3D中...原创 2019-02-06 22:21:06 · 759 阅读 · 0 评论 -
Unity3D基础34.1:打砖块小游戏优化
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/86768910(打砖块小游戏设计)前面实现了一个非常的简单打砖块小游戏,但可以发现里面有许多不合理的地方(特性)一、优化:当方块掉下去的时候,到达一定高度后销毁它给方块添加脚本如下即可:using System.Collections;using System.Colle...原创 2019-02-06 21:02:56 · 1338 阅读 · 1 评论 -
Unity3D基础34:打砖块小游戏设计
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/86768480(物理射线)这里实现一个简单的“打砖块”小游戏,效果如下:一、地面和墙壁第一步:先创建一个"plane"平面和一个"Cube"方块如下,其中Cube添加物理组件,并存储预制体材质球什么的就不用说了,随便弄一个第二步:创建脚本,批量生成方块脚本如下...原创 2019-02-06 19:48:21 · 4134 阅读 · 1 评论 -
Unity3D基础33:物理射线
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/86749803(摄像机与Game视图)一、利用摄像机创建射线物理射线:从一个点往一个方向发射一根无限长的射线,当这根射线与场景中的其余的游戏物体的碰撞体组件相碰撞时射线结束,由于射线可以与物理组件 Collider 相交互,所以“射线”也称之为“物理射线”射线的定义:Ray ra...原创 2019-02-06 17:05:13 · 1267 阅读 · 0 评论 -
Unity3D基础32:屏幕类、时间类与数学类
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/86751079(C#脚本)一、屏幕类Screen.width:静态只读属性,屏幕的宽度 Screen.height:静态只读属性,屏幕的高度在Unity的开发模式下,这两个值取的是Game窗口的宽度和高度,在项目编译打包后再运行,就是具体的设备的屏幕的宽度和高度 二、时间...原创 2019-02-06 15:43:18 · 401 阅读 · 0 评论 -
Unity3D基础31:脚本生命周期
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/86751079(C#脚本)一、脚本生命周期脚本的生命周期,就是挂载到的游戏物体“从出生到死亡”所经历的一些事件,这些生命周期事件是 Unity 引擎事先定义好的一些特定方法,在游戏的运行过程中,由引擎自动调用,系统调用这些事件的顺序,和我们代码里面的书写顺序无关Awake():唤...原创 2019-02-06 14:57:41 · 757 阅读 · 0 评论 -
Unity3D基础30:协同程序
一、协同程序协同程序:能暂停执行,暂停后立即返回,直到中断指令完成后继续执行的函数,类似一个子线程单独出来处理一些问题,性能开销较小,若在脚本运行过程中,需要额外的执行一些其他的代码,这个时候就可以将“其他的代码”以协程的形式来运行普通程序都是自上而下的执行过程,协同程序就相当于给予其中一些语句开开辟捷径单独执行只有在继承了“MonoBehaviour”这个类的子类中才能使用相关...原创 2019-02-06 14:09:40 · 649 阅读 · 0 评论 -
Unity3D基础29:消息发送
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/86766641(Invoke计时函数与碰撞销毁)一、SendMessage消息发送gameObject.SendMessage(string, value, SendMessageOptions):通知游戏物体gameObject身上的脚本文件执行它的方法string,value为传...原创 2019-02-06 00:50:39 · 428 阅读 · 0 评论 -
Unity3D基础28:Invoke计时函数与碰撞销毁
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/86766196(物体实例化)https://blog.youkuaiyun.com/Jaihk662/article/details/86766324(物体销毁)前面已经实现了“物体随机刷新”,代码如下,利用flag全局变量使金币每15帧刷新一次using System.Collectio...原创 2019-02-05 22:34:09 · 2287 阅读 · 2 评论 -
Unity3D基础27:C#随机函数与物体销毁
前文:https://blog.youkuaiyun.com/Jaihk662/article/details/86766196(物体实例化)在很多游戏中,都有那种类似“奖励分”的游戏道具,它们会随机刷出,玩家捡到之后就会获得相应的分数或者物品,但是如果在一段时间内没有被任何玩家“拾取”,那么这个奖励道具就会消失一、随机函数接前文:很多情况下,奖励道具都是随机位置生成的,这个时候就需要添加随...原创 2019-02-05 20:43:54 · 1986 阅读 · 0 评论 -
Unity3D基础26:物体实例化
在很多游戏中,都有那种类似“奖励分”的游戏道具,它们会随机刷出,玩家捡到之后就会获得相应的分数或者物品一、物体实例化实例化就是通过预制体来克隆物体,先新建一个“金币”预制体如下: 那么如何用脚本实例化生成金币呢?还是先建立一个空物体,专门用于挂脚本生成上面的"coin"之后编写脚本并拖到这个空物体上,定义一个公有的GameObject类型,如下:p...原创 2019-02-05 19:52:38 · 6014 阅读 · 1 评论