
Unity3D
文章平均质量分 92
yongh701
这家伙很聪明,什么都没有留下
展开
-
【Unity3D】GIF与序列帧动画的使用
2D游戏实质上就是图层叠图层的过程,在一张巨大的图层中,不停播放动画的过程。因此,序列帧动画和GIF在2D中占据真很重要的地位。如果拿Unity3D制作2D游戏,由于Unity3D不接受GIF动画,所以动画要按照最原始的游戏制作方式,利用序列帧大图完成。在《【Photoshop】合并一系列序列帧图片成序列帧大图》(点击打开链接)中,我曾经提到如何用常用的图片处理软件Photoshop cc将G原创 2017-10-06 09:33:15 · 12380 阅读 · 1 评论 -
【Unity3D】分裂平面的跳跃与自动寻路
《【Unity3D】自动寻路》(点击打开链接)中还有很多值得深究的地方,虽然在《【Unity3D】自动寻路的跳跃》(点击打开链接)已经实现在自动寻路中的跳跃,但同时也带来了一个问题,如何在分裂平面中进行跳跃?同时跳跃完毕还是可以自动寻路的?下面继续举一个例子说明这个问题:如图所示,设置两个分裂的Plane,小球Sphere能够在它们之间以跳跃的方式越过。制作过程如下:一、场景布原创 2017-06-21 09:00:38 · 3399 阅读 · 0 评论 -
【Unity3D】自动寻路的跳跃
《【Unity3D】自动寻路》(点击打开链接)万般好,但锁死Y轴这点导致非常蛋疼的一个问题,我需要在自动寻路的过程允许游戏主角进行跳跃。毕竟玩家都说了,在3D游戏里面不让主角跳跃是一个很严重的问题,就像《阿玛拉王国》本来做得非常好,但就是不能跳,导致大打折扣。那么如果在Unity3D自动寻路的过程中进行跳跃呢?下面举一个例子说明这个问题:如图所示,假设图中的小球就是我们的主角,我按左键原创 2017-06-19 10:42:21 · 4061 阅读 · 0 评论 -
【Unity3D】地形和天空盒子
Unity3D自带地形和天空盒子,可以很轻易就做出3D地形和天空贴图。无须写一行代码。下面举一个例子说明如下图的场景实现:一、地形1、通过【GameObject】->【3D Object】->【Terrain】能添加一个地形并且在Asset中,通过【Import Package】->【Terrain Assets】可以导入Unity3D自带的地形贴图2、在地原创 2017-05-19 20:34:26 · 9856 阅读 · 0 评论 -
【Unity3D】Mesh
Unity3D如果要用代码绘制不规则形状的立体图形,必须借助Mesh。其实除了Unity3D提供的Cube、Sphere、Capsule、Cylinder、Plane,可以用GameObject.CreatePrimitive(PrimitiveType.XX);来生成以外,其余的3D图形,如果你不是直接导入模型的话,都要用Mesh去构造。Mesh本质上是一堆由三角形组成的物体。下面用Mesh来画原创 2017-05-10 17:00:25 · 5596 阅读 · 1 评论 -
【Unity3D】表格
游戏里面表格元素也是很关键的一环来的,比如背包、排行榜什么的实际上也是一个表格。Unity3D谈到表格,网上就会推荐各种插件什么的完成,其实用原生的UGUI则能了事。主要是用到布局,而且这个表格还能动态生成,如果配合C#莫说从xml还是excel读数据,从数据库读数据也行。关键是便于维护,那些插件如果他一换规则就呵呵了。下面举一个例子,完成如下的表格,说明如何利用原生的UGUI完成表格:原创 2017-04-27 16:56:07 · 18669 阅读 · 7 评论 -
【Fracturing & Destruction】Unity3D的物体爆裂、炸裂、碎裂效果
如果要想做到如下图的爆裂、炸裂、碎裂效果特效:自己手写可不容易,因为需要利用《【Unity3D】Mesh》(点击打开链接)将一个物体分解成多个碎片,然后再写一系列的方法。此时可以利用到Unity3D的一个插件Fracturing & Destruction,官网上60美金,但用和谐的我,也给大家上传了一份:http://download.youkuaiyun.com/detail/yongh701原创 2017-05-18 16:00:27 · 20288 阅读 · 3 评论 -
【Unity3D】平面绘图——GL与GUI
在Unity3D中绘制一个平面图形可不容易,可别惯性思维觉得,嗯,这引擎3D的事情都能解决了,2D的不叫事情。其实除去布置UI,在Unity3D中绘制一个2D平面图形是很蛋疼的一件事情。不然的话,也不会有大量的平面图形绘制插件出现。如果不用插件的话,需要利用的GL去绘制平面图形,而在屏幕中动态放置文本则需要用的GUI。GL是Unity3D直接调用底层的OpenGL图形库来进行图形绘制,GUI估原创 2017-05-09 15:48:25 · 16667 阅读 · 2 评论 -
【NGUI】Helloworld
虽然UGUI出来许久,但NGUI由于历史的缘故源远流长,而且大部分有用的Unity3D插件,都是根据NGUI来编写的,无论网上对其充满种种不屑又或者颇有微辞,它就由于jQuery在网页设计的地位。在各个地方提起Unity3D,就不得不说说NGUI以显示你懂行。NGUI其实也没有那么难,毕竟再怎么它也只是Unity3D一个插件而已。NGUI配置唯一的难点,就是它存在不同的版本对应这各种不同的Un原创 2017-04-26 21:13:49 · 2165 阅读 · 0 评论 -
【Unity3D】BGM
游戏里面的背景音乐(Back Ground Music)一直是玩家谈论的话题,从太阁、大航海等暗耻的游戏,到某三剑,总有几首经典的背景音乐触动你的耳朵……BGM这个词,就算文化水平不高的我,经常看AB站的我都知道什么意思了,总有几个自带BGM的角色……所以嘛,背景音乐虽然不是游戏的核心,但绝对是重要的组成部分。在Unity3D里面,整BGM,其实难度也就和Helloworld差不多。为游戏添加BG原创 2017-04-26 19:21:40 · 2988 阅读 · 0 评论 -
【Unity3D】自动寻路
毕竟游戏里面,不能所有物体都要求它按照一条定向的路径移动的,需要给玩家一个操作空间,让玩家点哪,这东西自然而然地去哪里。因此自《【iTween】指定路径位移》(点击打开链接)之后,自动寻路的需求应运而生。不过,Unity3D自带的功能,就能完成这个看起来高大上的功能。下面举一个例子说明这个问题。如下图,摆了4个cube当作墙,然后摆一个球,当作游戏的主角,鼠标点哪走哪,但关键是不会出现穿墙的情原创 2017-05-17 17:24:11 · 10561 阅读 · 0 评论 -
【Unity3D】对话
对话大概是所有游戏里面最常见的,也是最有需要的一个系统了吧?现在某剑和某情怀就靠这个都能做天。Unity3D实现对话有很多种,下面就用最简单原生的UGUI,来实现对话。当然,这个界面简陋啊,不过原理就是这样的。程序展示如下:真正投入使用,将那些字体改改,A和B交给美工MM换成个角色立绘,将那个背面换成当前游戏正在进行的游戏场景的立绘,或者将主摄像机换成自拍独特45度角之类的……就好原创 2017-04-26 11:34:14 · 10816 阅读 · 4 评论 -
【Unity3D】改变鼠标样式
Unity3D改变鼠标样式很简单,直接就封装好方法,以满足在游戏里面定制自己的鼠标样式的需求。下面举一个例子来说明这个问题。我需要将光标改成如下的形状:注意这张图片是经过处理的png,白色的地方都用photoshop抠成透明了。要在游戏里面实现如下的效果:将a.png导入Unity3D,可以在主摄像机挂载如下的脚本CursorChange.cs:using Unit原创 2017-05-17 16:17:00 · 7085 阅读 · 0 评论 -
【Unity3D】3D模型的使用——FBX的使用与Animation设置
FBX的使用与Animation设置是一个很有必要的技能,对于美工MM送过来的3D模型你应该懂得如何将其设置到游戏场景之中使用,不然真的羞死人的,这都不会。毕竟游戏里面许许多多的主角的动作都是一系列已经做好的3D动画,包括行走、攻击动作等,很少人在update()中来写一大堆来实现的。下面列举两个例子,说明FBX的使用与Animation设置,说白了,就是3D模型如何在Unity3D中使用。文原创 2017-06-10 21:18:50 · 107292 阅读 · 7 评论 -
【Fracturing & Destruction】点破小球——Unity3D中达到条件才触发的物体爆裂、炸裂、碎裂效果
在《【Fracturing & Destruction】Unity3D的物体爆裂、炸裂、碎裂效果》(点击打开链接)提到了Unity3D的物体爆裂、炸裂、碎裂效果到底是用哪些组件去制作的,但是只是提到如果制作一个碰撞时的击碎效果,当然这也是这个组件最基本的使用,不过,在实际上,更多情况是需要直接利用代码控制一个物件是否破碎,可以称之为“条件碎裂”。那么在Unity3D中,如何做到达到条件才触发的物体原创 2017-06-11 21:01:40 · 8587 阅读 · 2 评论 -
【Unity3D】无限的横轴背景
在街机类的横轴游戏Arcade Game,我们需要背景,但又不想这个背景浪费我们太多的美工时间,可是又不想给玩家一种偷工减料,粗制滥造的感觉。这时我们需要一个无限的横轴背景。如下图所示:无限的横轴背景和《【Unity3D】连续滚动的背景》(点击打开链接)的原理差不多,只是这次允许玩家自由操纵游戏主角的移动。因此,我们需要在此的制作上加点东西。一、场景布置还是这个经典的,原创 2017-09-25 09:39:37 · 3072 阅读 · 0 评论 -
【Unity3D】导入FBX模型使用Legacy动画的Scale缩放问题
3dsmax做的含FBX动画模型导入进Unity3D之后总需要对其缩放Scale调整一番,毕竟模型是在3dsmax中做出来的,不可能和Unity3D中的场景完全匹配。我们自然而言地会对模型的Scale属性进行调节,以放大或者缩小从而适应当前场景的大小。于是,问题就来了,在播放动画的时候,部分模型,会让我们惊讶地发现,明明我的Scale调好了,但在动画播放的时候,又回到原来大小了。如下图所示,就原创 2017-09-13 23:22:11 · 7862 阅读 · 0 评论 -
【Unity3D】刚体自动寻路的抖动问题和运动边界、空气墙的制作
《【Unity3D】自动寻路》(点击打开链接)给我们带来很多方便,尤其是3D游戏的主角移动方面,但是这个东西同样也会带来很多问题。如下图所示。这是一个比较失败的自动寻路例子,由于蓝色的球并不是让玩家主控,只是一个NPC,而这个NPC未来又可能像主角一样进行移动,我们无法像白色的立方体如同墙一样,在自动寻路界面给它上一个Navigation Static属性,因此,我们只是给红球和蓝球共同上一个原创 2017-08-23 17:56:37 · 13484 阅读 · 2 评论 -
【iTween】利用协程完成多个动作、iTween的动作序列
在《【iTween】单点移动和旋转》(点击打开链接)和《【iTween】指定路径位移》(点击打开链接)我曾经介绍过iTween的使用,在iTween中同时做移动和旋转的动作是合法的,比如如下的代码:using UnityEngine;using System.Collections;public class NewBehaviourScript : MonoBehaviour{原创 2017-08-15 16:54:20 · 3554 阅读 · 0 评论 -
【Unity3D】协程Coroutine的运用
网上经常有些资料对一个概念讲得极其透彻,但对于我这个简单粗暴高效率的程序猿猴来说,只希望知道你这个东西怎么用。对于协程Coroutine这个东西,在我之前的博客或多或少有用过,但其实都用不好,原因是我没确切了解协程Coroutine到底是什么东西。直到我再次苦于如何打断某段代码的执行,希望回调地执行某段代码的时候,重新审视起Coroutine这个单词。实质是Co合作+routine一系列的事物(也原创 2017-08-15 11:16:56 · 2317 阅读 · 0 评论 -
【Unity3D】跟随
跟随在游戏中也很常见,特别在一些RPG游戏里面,他实现起来也不太难,下面就用一个例子来说明这个问题。如下图所示,红球是我们的主角,而点击蓝球NPC1和绿球NPC2之后,蓝球和绿球就自动跟随红球了,玩家则演变成控制一个队列。然后在屏幕的左上角显示当前的队列,玩家点击相应的名字,则取消跟随了,这个球就恢复原来的状态了。同时可以看到,我们的主角红球实现了《【Unity3D】自动寻路》(点击打开链接)原创 2017-08-24 16:37:09 · 3405 阅读 · 1 评论 -
【Unity3D】UGUI向导式界面和组件复用
如下图:为了达到不设置这么多个输入框InputField和确定、取消按钮的目的,实现组件复用,并且指导用户完成一行行的输入。因此设置了这个所谓的向导式界面。整个界面的布置非常简单,如下图所示。布置好之后,同时将各个组件命名,便于在脚本中控制。至于向导的白色箭头1.png,是一张在Photoshop空白背景下,画的白色箭头。如下图所示,在Rawimage的Texture选原创 2017-08-21 15:02:04 · 1692 阅读 · 1 评论 -
【Unity3D】UGUI组件的监听
组件的监听在各大编程语言中司空见惯,也就是这个组件一旦出现某种情况就执行某段函数。在Unity3D中也不例外,在《【Unity3D】场景切换、UGUI组件事件、开始游戏与关闭游戏》(点击打开链接)与《【Unity3D】对话框、隐藏与显示、拖拽》(点击打开链接)之中,其实已经涉及到UGUI组件监听的大部分知识了,但是都是需要在Editor中经过一系列的设置才能让监听顺利进行。如何让UGUI组件的原创 2017-08-19 22:26:28 · 4787 阅读 · 0 评论 -
【Unity3D】回合制游戏
回合制游戏一直在游戏史,至少是在中国的游戏历史上扮演很重要的角色。从仙剑到梦幻,这类游戏深受玩家喜爱。那么在Unity3D中怎么实现呢?下面用一个比较简单Unity3D的一对一回合制游戏来说明这个问题。其实也不难,关键是理清各个处理关系。如下图所示,绿色代表玩家操控的主角,蓝色代表遇到的敌人,分别赋予大家100HP,然后玩家打敌方一下,敌方就-40HP,玩家被敌方摸一下就-30HP。下面是玩家原创 2017-08-17 23:21:39 · 14702 阅读 · 2 评论 -
【Unity3D】动态文本的滚动条
在《【Unity3D】公告栏与开始界面的布置》(点击打开链接)曾经做了一个不太好的示范,这种UGUI的滚动条布置虽然简单,但只适用于静态文本,对于动态文本的话,还需要一定的设置。如下的例子,是在一个框中,每个0.5s就会多增加一行的动态本文,但是右侧的滚动条却能很好地配合其滚动。这个UGUI应该如下布置。1、首先还是整一个Plane或者Image,这里是Image,然后上Mask和原创 2017-08-16 16:52:27 · 4479 阅读 · 2 评论 -
【Unity3D】3dsmax中带Vray材质的3D模型的导入
相信做3D的人,不可能没听过3dsmax,至少你不是做美工的,也知道白富美的美工MM就是用这东西,给你这个Unity3d写程序的屌丝来输送这东西。其次,相信了解过3dsmax的人,不可能没听过Vray,许许多多的场景,只需要利用Vray就能收到很真实的光影效果。可惜的是,Vray是3dsmax一个插件,这个渲染器由于光影效果过于逼真,渲染一张图常常需要几秒~几分钟,而Unity3d有自己的渲染器,原创 2017-07-07 21:01:36 · 43418 阅读 · 6 评论 -
【Unity3D】3D模型的自动寻路与Animation连击
在《【Unity3D】3D模型的使用——FBX的使用与Animation设置》(点击打开链接)曾经说明了,在Unity3D中使用3D模型,本文将进一步地说明如何用这个3D模型配合《【Unity3D】自动寻路》(点击打开链接)做出游戏主角的移动效果,同时进一步地实现连击。本文使用的是:http://download.youkuaiyun.com/detail/yongh701/9867149中一个英雄模型。原创 2017-06-13 10:48:22 · 3251 阅读 · 0 评论 -
【Unity3D】世界坐标与屏幕坐标
Unity3D由于是在三维世界中编程,而最终的结果是需要反馈到肉眼所示的2D屏幕之上的。这就产生了一种比较需要考虑的问题,尤其在一些涉及屏幕与Unity3D的3D世界交互的情况。网络上对于这方面的文字,大部分罗列了许许多多文字与代码或者API,甚至连什么视口坐标也带上了。其实在于我个人看来,关键是世界坐标与屏幕坐标之间的互转。在Unity3D中一打开就会有一个主照相机Main Camera,根原创 2017-05-08 17:42:02 · 34381 阅读 · 3 评论 -
【iTween】指定路径位移
上一篇《【iTween】单点移动和旋转》(点击打开链接)介绍了如何使用iTween对Unity3D的物体实施位移、旋转等动画,如果在iTween中需要指定路径位移,建议再导入一个官方的iTweenPath插件,这东西还是在Asset Store有,而且免费,但我这种用和谐版Unity3D的人,还是只能用.unitypackage我也给大家上传了一份:http://download.youkuaiyun.com原创 2017-05-16 20:49:11 · 3683 阅读 · 2 评论 -
【Unity3D】键盘鼠标控制视角的移动
在3D游戏里面,视角是一个很重要的因素,部分玩家对锁视角嗤之以鼻,因此视角也是游戏制作里面需要努力的方面。其实也不难,换到Unity3D里面是想办法控制摄像机的移动。下面举一个简单的例子说明在Unity3D如何用键盘鼠标控制视角的移动的。如下图所示:就像大部分游戏一样,可以用鼠标滚轮控制视角的远近,键盘的wasd和上下左右控制镜头的位置,而按着鼠标右键则可以控制镜头的旋转。当然你可以根原创 2017-05-02 16:38:03 · 43265 阅读 · 3 评论 -
【Unity3D】SetActive的NullReferenceException与LoadLevel的初始化
一、SetActive的NullReferenceException众数周知,让一个物体隐藏,使用的是SetActive(false),比起移到视野外,又要重新移回来计算坐标;或者直接改透明度,考虑到2D对象不一定有render给你改,这算是万能通用的方法,也是最普遍的方法,但是,在使用中,常常遇到隐藏又显示的情况,此时就不是简简单单地一句SetActive(true)能搞定的,如下代码:原创 2017-04-16 19:42:30 · 3029 阅读 · 2 评论 -
【Unity3D】利用预设、实例化Instantiate和协程完成生成器
生成器这东西在游戏中很常见,不如我们要随机产生敌人,就需要用到这东西。说白了,我就是需要一个东西在我的要求下,产生大量的对象。在Unity3D直接就提供接口能够轻松完成这一些,我开始还以为生成器是用Unity3D的粒子系统Particle System做的,其实不是,本身就有预设和实例化Instantiate帮你轻松完成一起。当然,生成也要遵守Unity3D的基本法则啊,不能说生成就生成,需要定时原创 2017-04-19 18:07:54 · 20142 阅读 · 1 评论 -
【Unity3D】用鼠标点击事件、AddForce完成跳跃与二段跳
游戏里面的跳跃和二段跳真的不是很难,尤其是Unity3D直接提供力量模拟引擎更是可以用极其简短的代码完成这一切。下面的程序将加一个对鼠标左键点击的监听,实现两个球的跳跃与二段跳的功能,主要思想还是处理球在跳跃的时候,应该是不允许再跳跃的,而在球落地之后才重新打开跳跃功能。二段跳则要判断两个状态。其实就是《【Cocos2dx】精灵触摸跳跃功能》(点击打开链接)的思想照搬过来。程序具体如下图所原创 2017-04-19 16:52:53 · 16500 阅读 · 2 评论 -
【Unity3D】对话框、隐藏与显示、拖拽
对话框在任何一个地方都随处可见,在游戏里面也肯定不例外啊,那么在Unity3D如何利用UGUI实现一个对话框呢?并且这个对话框可以任意拖拽,更重要的是,我可以想让它显示就显示,隐藏就隐藏,就是一个模态框Modal的样子,如下图所示:其实也并不难啊,首先是UI的布置,具体可以参考《【Unity3D】公告栏与开始界面的布置》(点击打开链接)这里就不再赘述了,在Canvas上面,有一个But原创 2017-04-15 17:20:31 · 21725 阅读 · 2 评论 -
【Unity3D】场景切换、UGUI组件事件、开始游戏与关闭游戏
在《【Unity3D】公告栏与开始界面的布置》(点击打开链接)我曾经简单地提到UGUI是怎么布置与使用的,但这根本不完整,就像单身狗缺个另一半永远只能被喂狗粮似的,组件也因为事件的存在才能够精彩。因此,UGUI的事件设置也是很重要的,下面举个例子来说明,Unity3D中如何进行场景切换、UGUI组件事件、开始游戏与关闭游戏的。如下图所示:我们将设置2个场景,其中一个场景极其简单,只有“原创 2017-04-15 11:27:55 · 57038 阅读 · 7 评论 -
【Unity3D】同场景物体传值与Vector
虽然之前做了一大堆Unity3D,但对于Unity3D各个脚本中的变量操控与使用还不够灵活,至少做了这么多唯一和旋转,对于Vector还懵懵懂懂的。其实在Unity3D各个变量在同场景拿个值非常随意,连公共类都不用自己写了,直接用鼠标轻轻一点就行,下面举个例子说明这两个基础问题,打牢基础,对以后做游戏大有裨益。在场景中,如下图,布置一个球,和一个空物体GameObject。如果要让原创 2017-04-19 11:24:57 · 2961 阅读 · 0 评论 -
【Unity3D】设置脚本的默认编辑器、默认IDE
在《【Unity3D】Helloworld》(点击打开链接)第一次遇见Unity3D在安装的时候,我曾经说,暂时不知道MonoDevelop是什么来的,先装上,虽然装上也没坏,但我现在已经知道这东西是什么,是一个不好用的脚本编辑器。习惯了Visual Studio用Ctrl+K Ctrl+F格式化代码的我,Ctrl+J自动补全代码的我,面对如此的编辑器感到极其不适应,更何况本身C#的发源地就是Vi原创 2017-04-14 19:26:49 · 49768 阅读 · 0 评论 -
【Unity3D】公告栏与开始界面的布置
开始界面是一个游戏最常见的元素,作品或大或少都会有这些东西。下面里面4.6之后Unity3D自带的UGUI,实现一个公告栏和开始界面,以此说明Unity3D中是怎么布置游戏UI的。如下图所示,开始游戏之前,我们会给用户公告比较长,但用户可以通过滑动滑块看完。具体制作步骤如下:1、新建一个Canvas,切换到2D界面,不懂的可以参详《【Unity3D】Helloworld》(点击打开原创 2017-04-14 11:06:40 · 23865 阅读 · 1 评论 -
【Unity3D】连续滚动的背景
在一些跑酷、赛车游戏之中,连续滚动的背景很常见。其实来来去去就是2张图片在不停变换。制作思想就是与《【Cocos2dx】连续滚动的场景》(点击打开链接)一模一样的。下面展示如何用Unity3D做出如下连续滚动的背景的效果。让人看起来那个Capsule是在不停地跑动的样子。一、场景布置1、在画图准备一张这样的图片,自己随便画都能画出来了,简笔画:2、在Unity3D中的布原创 2017-04-18 10:41:07 · 9426 阅读 · 0 评论 -
【Unity3D】物体、材质的设置、物体位移与旋转
Unity3D和Flash一样,甚至可以说是和C#一样,拖完组件,再写一系列的脚本,完成编程,甚至可以说,就是带编程脚本的3DSMAX。那么如何完成最基本的物体、材质的设置、物体位移与旋转呢?下面用一个简单的Unity3D说明这个问题,如下图所示:在一个面板上面有一个可以控制的立方体与不可以控制的球体和立方体各2个,然后可以控制立方体的位移与旋转。概念的东西就不写了,具体步骤如下。原创 2017-04-13 19:24:36 · 10476 阅读 · 0 评论