unity3D
文章平均质量分 77
alice_0305
热爱生活
展开
-
unity3D的面试题
第一部分1.请简述值类型与引用类型的区别2.C#中所有引用类型的基类是什么3.请简述ArrayList和List的主要区别4.请简述GC(垃圾回收)产生的原因,并描述如何避免?5.请描述Interface与抽象类之间的不同6.下列代码在运行中会产生几个临时对象?7.下列代码在运行中会发生什么问题?如何避免?8.请简述关键字Sealed转载 2016-11-16 16:04:12 · 14692 阅读 · 2 评论 -
unity3D游戏开发十二之疯狂的小球
下面我们通过一个具体的实例来了解如何使用物理引擎,该实例通过第三人称视角控制游戏中的小球对象,游戏通过是否与钻石碰撞来界定是否寻找到钻石并获得积分,获得积分满10分后,赢得游戏,当小球冲出跑道时,游戏失败,并提示是否重新开始游戏。依次打开文件夹Assets-》object,在object文件夹下找到Runway.fbx文件,拖进场景中,如下图:选择Runwa原创 2016-11-11 15:33:44 · 1499 阅读 · 0 评论 -
unity3D游戏开发十一之物理引擎
Unity内置了NVIDIA的Physx物理引擎,Physx是目前使用最为广泛的物理引擎,被很多游戏大作所采用,开发者可以通过物理引擎高效、逼真地模拟刚体碰撞、车辆驾驶、布料、重力等物理效果,使游戏画面更加真实而生动。Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可接受外力与扭矩力用来保证游戏对象像在真实世界中那样进行运动。任何游戏对象只有添加了刚体组件才能受到重原创 2016-11-11 15:32:11 · 2237 阅读 · 0 评论 -
unity3D游戏开发十之粒子系统
Shuriken粒子系统是Unity3.5版本新推出的粒子系统,它采用模块化管理,个性化的粒子模块配合粒子曲线编辑器使用户更容易创作出各种缤纷复杂的粒子效果。依次打开菜单栏中的GameObject->Greate Other->Particle System,在场景中新建一个粒子游戏对象,如下图:粒子系统的控制面板主要由Inspector视图中的Particle Sys原创 2016-11-11 15:31:18 · 1707 阅读 · 0 评论 -
unity3D游戏开发九之雾效、水效和音效
开启Fog(雾效)将会在场景中渲染出雾的效果,在Unity中,可以对雾的颜色、密度等属性进行调整。开启雾效通常用于优化性能,开启雾效后远处的物体被雾遮挡,此时便可选择不渲染距离摄像机较远的物体。这种性能优化方案需要配合摄像机对象的远裁切面设置来使用。通常先调整雾效得到正确的视觉效果,然后调小摄像机的远裁切面,使场景中的距离摄像机对象较远的游戏对象在雾效变淡前被裁切掉。在Unity中,开启雾原创 2016-11-11 15:30:16 · 1386 阅读 · 0 评论 -
unity3D游戏开发八之天空盒
Unity中的天空盒实际上是一种使用了特殊类型Shader的材质,该种类型材质可以笼罩在整个游戏场景之外,并根据材质中指定的纹理模拟出来类似远景,天空等的效果,使游戏场景看起来更完整。依次打开菜单栏Assets->Import Package->Skyboxes,如下图:为项目工程导入Skyboxes.UnityPackage,导入时会弹出Importing packa原创 2016-11-11 15:29:09 · 1021 阅读 · 0 评论 -
unity3D游戏开发七之创建基本游戏场景四
这篇文章中我们简单介绍下角色控制,依次打开菜单栏中的Assets->Import Package->Character Controller,如下图:导入角色控制资源包,如下图:资源包被导入后,资源包中包含两个预设体,分别是第一人称角色控制预设体、第三人称角色控制预设体,预设体可以直接拖进项目工程中任何场景中直接使用,如下图:下面我们直接原创 2016-11-11 15:27:53 · 638 阅读 · 0 评论 -
unity3D游戏开发六之创建基本游戏场景三
这篇文章中,我们来详细介绍下Unity的地形编辑器,Unity拥有功能完善的地形编辑器,支持以笔刷绘制的方式实时雕刻出山脉、峡谷、平原、高地等地形。Unity的地形编辑器同时提供了实时绘制地表材质纹理、树木种植、大面积草地布置等功能。Unity中的地形编辑器支持LOD(Level of Detail)功能,能够根据摄像机与地形的距离以及地形起伏成都调整地形块网格的疏密程度。远处或平坦的地形使用稀疏原创 2016-11-11 15:26:49 · 805 阅读 · 0 评论 -
unity3D游戏开发五之创建基本游戏场景二
光源是每一个场景的重要组成部分,网格模型和材质纹理决定了场景的形状和质感,光源则决定了场景环境的明暗、色彩和氛围。每个场景中可以使用一个以上的光源,合理地使用光源可以创造完美的视觉效果。uniity提供了4种类型的光源1、Directional light:方向光源,类似于自然界中日光的照明效果2、Point light:点光源,类似灯泡的照明效果3、Spotlig原创 2016-11-11 15:25:43 · 1099 阅读 · 0 评论 -
unity3D游戏开发四之创建基本游戏场景一
Unity创建游戏的理念可以被简单地理解为,一款完整的游戏就是一个Project(项目工程),游戏中不同的关卡/场景对应的是项目下面的Scene(场景)。一款游戏可以包含若干个关卡/场景,因此一个项目工程下面可以保存多个Scene。我们可以点击File菜单->New Project来创建一个新的工程,可以设置project的目录,然后可以选择需要导入的包,如下图:点Cr原创 2016-11-11 15:24:40 · 852 阅读 · 0 评论 -
unity3D游戏开发三之unity编辑器二
下面我们介绍下GameObject,游戏对象/物体,通过游戏对象我们可以创建游戏对象,如灯光、粒子、模型、GUI等。GameObject菜单通过Create Other,我们可以创建系统自带的一些游戏对象,具体如下:Particle System:创建粒子系统Camera:创建摄像机GUI Text:创建GUI文本GUI Texture:原创 2016-11-11 15:20:24 · 378 阅读 · 0 评论 -
unity3D游戏开发十三之GUI
GUI在游戏的开发中占有重要的地位,游戏的GUI是否友好,使用是否方便,很大程度上决定了玩家的游戏体验。Unity内置了一套完整地GUI系统,提供了从布局、控件到皮肤的一整套GUI解决方案,可以做出各种风格和样式的GUI界面。在Unity中使用GUI来完成GUI的绘制工作,目前Unity没有提供内置的GUI可视化编辑器,因此GUI界面的制作需要全部通过编写脚本代码来实现,如果游戏有比较多的界面制作原创 2016-11-11 15:34:57 · 741 阅读 · 0 评论 -
unity3D游戏开发十四之NGUI一
在Unity中,可以使用代码控制其自身所携带的GUI来实现图形界面的搭建。但是这些组件的搭建效率很低,而且已经无法满足现在市场对图形用户界面美感的要求,所以,引入了NGUI来增加所要开发的图形用户界面的美感。NGUI是一个功能强大的UI系统,其事件处理通常由开发人员编写C#脚本完成,并且是一个严格遵循KISS原则的Unity框架,该框架具有干净、简约的代码。现在NGUI的各个版本很多,我这原创 2016-11-11 15:36:22 · 568 阅读 · 0 评论 -
Unity3D游戏开发之详解 Animation类和Animator类
Animation类animation组件用于播放动画。可以指定动画剪辑到动画组件并从脚本控制动画播放。在的动画系统基于权重并且支持动画融合,叠加动画,动画混合,标签和完全控制动画播放的各个方面。如果想播放一个简单的动画,可以使用Animation.Play;如果想在动画之间交叉淡入,可以使用Animation.CrossFade;如果想改变动画模式(循环,一次,乒乓),可以改变动画导入设原创 2016-11-16 14:25:46 · 2739 阅读 · 0 评论 -
Unity实现简单的碰撞检测
需求:当立方体Cube碰到地面Plane的时候,输出碰撞物体的名称,则表述检测到立方体碰撞了地面。过程:1.搭建一个简单的场景。在新的工程中选择File->new Scene创建新的场景。然后在该场景中添加地板:GameObject->Create Other->Plain,以及正方体:GameObject->Create Other->Cube。给原创 2016-11-03 09:05:58 · 2725 阅读 · 0 评论 -
unity自带寻路Navmesh入门教程(三)
继续介绍NavMesh寻路的功能,接下来阿赵打算讲一下以下两个例子,先看看完成的效果: 第一个例子对于喜欢DOTA的朋友应该很熟悉了,就是不同小队分不同路线进攻的寻路,红绿蓝三个队伍分别根据三条路线进攻。第二个例子是动态的控制道路的开关。当吊桥打开时,道路不通,当吊桥放下时,道路可以通行。先来说说第一个例子吧,第一个例子其实很简单,只需要在之前两节的基础上原创 2016-11-16 11:47:10 · 421 阅读 · 0 评论 -
unity自带寻路Navmesh入门教程(二)
上一节简单介绍了NavMesh寻路的基本用法,这次来介绍一下稍微复杂一点点的高低落差以及跳跃的做法,首先来看看这次的目标: 由于博客相册上传GIF有限制,所以我把整个过程切开了2部分上传,第一部分是爬楼梯,第二部分是横向跳跃和往下跳落 不管是爬楼梯,还是跳跃,NavMesh都是通过了OffMeshLink来做的。创建OffMeshLink的方法有两种,接原创 2016-11-16 11:45:03 · 420 阅读 · 0 评论 -
unity自带寻路Navmesh入门教程(一)
unity自从3.5版本之后,增加了NavMesh寻路的功能。在此之前,unity用户只能通过第三方插件(如Astar寻路插件)等做寻路功能。阿赵我也使用过A*寻路插件,A*的原理并不复杂,有兴趣的朋友可以自己百度一下。不过由于不是自带的功能,所以在设定网格和烘焙的过程难免会出现很多不便。NavMesh作为unity自带的功能,用法和之前的LightMapping烘焙或者遮挡剔除Occlusion原创 2016-11-16 11:43:25 · 1241 阅读 · 0 评论 -
Unity3D之太空大战一
这是一个简单的太空大战DEMO,整个游戏两个部分,开始游戏界面跟游戏主界面,敌人分为两种,一种是简单的敌人,只会去触碰主角,还有一种是复杂点的敌人,可以发射子弹,,OK,下面我们一步步来。首页我们导入相关的资源,在Assets里单击弹出选择框,选择Import Package->Custom Package,如下图:接下来,我们要创建一个开始游戏场景,点击菜原创 2016-11-11 15:49:36 · 2638 阅读 · 0 评论 -
Unity3D之太空大战二
接下来,我们要使飞船能发射子弹,所以我们要创建子弹模型,在资源中找到rocket.fbx模型文件,拖到Hierarchy中,这样就创建了子弹的游戏体,当然对于重复使用的游戏体,我们要做成预设体Prefab,我们打开菜单栏Assets->Create->Prefab,来创建一个新的预设体,如下图:我们命名为Rocket,那么子弹,飞船要发射,所以我们新建一个cs脚原创 2016-11-11 15:51:32 · 916 阅读 · 0 评论 -
unity3D游戏开发十八之NGUI动画
我们先来看下帧动画,顾名思义,就是一帧帧的图片组成的动画,我们需要用到UISprite Animation组件,它的属性如下:Framerate:播放速率,也就是每秒钟播放的帧数Name Prefix:图片名字的前缀,可以用来过滤图片集中的图片,从而指定你需要的图片Loop:循环按照前面文章创建UI的步骤,我们创建一个sprite,一个button,通过原创 2016-11-11 15:43:14 · 362 阅读 · 0 评论 -
unity3D游戏开发十七之NGUI四
接下来我们讲解下UIGrid,UIGrid是用来轻松的排列众多widget到固定大小格子的脚本。 编辑时和运行时都可以使用。如果想使用可变的格子单元大小,你可以使用UITable,属性如下图:Arrangement的值决定了子节点的摆放位置。Horizonta让子节点向右排列,Vertical向下排列。Max Per Line属性控制Horizontal排列时候的最大有多少原创 2016-11-11 15:41:12 · 333 阅读 · 0 评论 -
unity3D游戏开发十六之NGUI三
接下来我们看下ProgeressBar,进度条,它是UISlider和UIScrollBar的基类,属性如下图:Value:百分比Alpha:透明度Steps:步阀阈值Appearance:特性a.Foreground(前景图片)b.Background(背景图片)d.Direction(滑动方向)On Val原创 2016-11-11 15:39:26 · 289 阅读 · 0 评论 -
unity3D游戏开发二之unity编辑器一
通过官网我们可以下载最新的unity版本,这里我们是基于Mac OS系统的,安装步骤很简单,这里就略过了。安装完成后,打开unity,主界面如下:下面我们来看看它的界面布局,Unity界面主要包括菜单栏、工具栏以及相关的视图等内容。1、Scene视图2、Game视图3、Hierarchy视图(显示的都是游戏对象)原创 2016-11-11 15:18:34 · 715 阅读 · 0 评论 -
unity3D游戏开发一之初识unity
刚开始看到unity的编辑界面,确实给了我很大的震撼,相对于cocos2dx来说,强大了太多,当然cocos2dx主要是面对2D游戏的开发,unity主要是面对3D游戏的开发,当然它的范围不仅仅是游戏。下面简单介绍下unityUnity是由Unity Technologies公司开发的跨平台专业游戏引擎,它打造了一个完美的游戏开发生态链,用户可以通过它轻松实现各种游戏创意很三维互动开发,创原创 2016-11-11 15:14:00 · 1514 阅读 · 0 评论 -
unity3d-代码控制游戏角色控制器移动
先上一个gif看看效果。因为图片大小限制。所以录制的比较小。个人认为效果比较牵强。特别是里面的逻辑代码。 不过我还是认为一切是为了先实现,因为我是刚接触的新手。 工程结构图 这次实现的效果是: 1:摄像机跟着角色移动,上篇博客说的是。把摄像机变成角色的子对象。发现没有我想要的效果。跟着角色移动代码是我自己弄出来的。不知道实际项目中是否也是这样。原创 2016-11-04 09:33:36 · 9909 阅读 · 0 评论 -
Unity3d碰撞检测中碰撞器与触发器的区别
要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中,没有碰撞体的刚体会彼此相互穿过。物体发生碰撞的必要条件两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbo原创 2016-11-04 09:23:26 · 915 阅读 · 0 评论 -
Unity 编辑器下控制播放Animator
在Unity编辑器的Scene视图进行控制播放Animator,可以借助方法StartPlayback、StopPlayback、StartRecording和StopRecording,具体可以参照以下例子:创建一个带Controller的Animator对象,可以看到此时人物呈现T型姿势。附上新脚本EditAnimator,此为空脚本,如下: C#原创 2016-11-03 10:46:34 · 1423 阅读 · 0 评论 -
U3D同时播放2个声音
如果只有一个声音可以直接把音源拖到物体上,物体会自动生成Audio Source组件,然后需要在该物体上添加一个Audio Listener组件才会听得到声音(这个组件只能存在一个),后台控制播放的代码:GameObject.Find ("Mc").audio.Play (); 用find方法找到物体。如果有2个声音需要播放:同时添加2个Audio Source不能在代码中选择播放哪个声原创 2016-11-03 10:44:05 · 2555 阅读 · 0 评论 -
Unity3D 多种播放音效的方式
AudioListener组件默认绑定在主摄像机上,这个组件的功能相当于耳朵,用来听声音的。1.背景音乐选中音乐文件,建议不勾选3D Sound选项。在Main Camera下创建一个空物体,添加AudioSound组件,AudioClip选择要播放的音乐。Loop必须勾选,循环播放。勾选PlayOnAwake,场景一进来就开始播放,如果不勾选找个合适时机Play(原创 2016-11-03 10:42:01 · 3666 阅读 · 0 评论 -
Unity3D研究院之详解游戏开发音频的播放
游戏音频的播放在任何游戏中都占据非常重要的地位,音频的播放还可以分为两种,一种为游戏音乐,另一种为游戏音效。前者适用于较长的音乐,如游戏背景音乐。第二种试用与比较短的游戏音乐,如开枪,打怪 时“砰砰”一瞬间播放的游戏音效。今天MOMO将用下面的例子带盆友们去剖析Unity3D游戏音乐与音效的播放。Unity3D游戏引擎一共支持4个音乐格式的文件.AIFF 适用于较短的音乐文件可用原创 2016-11-03 10:39:41 · 593 阅读 · 0 评论 -
U3D游戏开发之摄像机属性及妙用详解
照相机,看着很简单,但是这里面也有很多门道,好多图像效果能在这里实现,我也是新学,所以很多高深的东西都不会,今天就先介绍一下照相机的属性和照相机的平缓跟随,文章出处【狗刨学习网】。 照相机属性: 1、Clear Flags 清除标记–决定屏幕的哪部分将被清除。当使用多个相机来描绘不同的游戏景象时,利用它是非常方便的 2、Background 背景–在镜头原创 2016-11-03 10:34:57 · 475 阅读 · 0 评论 -
unity3d摄像机
一 概述摄像头是用于将世界场景投影到屏幕的设备。可以在场景中放置不限数目的摄像机,它们可以设定成任意的渲染次序,渲染到屏幕上的任意地方。摄像机实质上是用于将游戏显示给玩家看,它们可以被定制,在上面写脚本或者挂载到其他物体上面以获得想象中的各种效果。对于一个猜谜的游戏,可能只需对游戏的全部视图保持摄像机静止即可。对于第一人称的射击游戏,常会将摄像机挂载到玩家角色上面,将其放置在角色眼原创 2016-11-03 10:33:05 · 447 阅读 · 0 评论 -
Unity3D灯光详解
Lights will bring personality and flavor to your game. You use lights to illuminate the scenes and objects to create the perfect visual mood. Lights can be used to simulate the sun, burning match ligh原创 2016-11-03 10:31:32 · 1212 阅读 · 0 评论 -
【Unity3d】Animator和Animation组件使用注意事项
一、Animator一般用于人物动画控制,特点是动画是持续的,可能有动作切换 Animation一般用于间断性的动画的控制,比如一个场景特效的播放,只播放一次就完了二、实测Animation速度比Animator快10%左右,内存占用没测过三、Animation组件不兼容Animator的动画、但Animator动画兼容Animation动作(原创 2016-11-03 09:59:14 · 1487 阅读 · 0 评论 -
Unity手游之路<七>角色控制器
我们要控制角色的移动,可以全部细节都由自己来实现。控制角色模型的移动,同时移动摄影机,改变视角。当然Unity也提供了一些组件,可以让我们做更少的工作,实现我们所期望的功能。今天我们就一起系统来学习相关的内容吧。Charactor Controller(角色控制器)"角色控制器允许你在受制于碰撞的情况下很容易的进行运动,而不用处理刚体。角色控制器不受力的影响,仅仅当你调用M原创 2016-11-04 09:51:48 · 434 阅读 · 0 评论 -
Unity手游之路<十一>资源打包Assetbundle
在手游的运营过程中,更新资源是比不可少的。资源管理第一步是资源打包。传统的打包可以将所有物件制成预设Prefab,打包成场景。今天我们来一起学习官方推荐的Assetbundle,它是Unity(Pro)提供的资源打包策略。利用AssetBundle,可以将几乎所有的资源都打包封装,便于客户端更新下载新的资源。创建AssetBundle1.创建一个空的Prefab,命名Cub原创 2016-11-04 09:52:54 · 230 阅读 · 0 评论 -
unity3D游戏开发十五之NGUI二
接下来我们讲解下UILabel,UILabel是用来显示文本的脚本,继承自UIWidget。我们创建一个label,属性如下图:所有的label都需要Font才可正常工作。这个字体可以使Dynamic的(引用Unity Font),也可以是Bitmap字体——嵌入到Atlas里面的字体。动态字体更稳固因为它不需要你预先创建符号,但是Bitmap字体可以和你atlas的其他东西渲原创 2016-11-11 15:07:17 · 316 阅读 · 0 评论 -
如何制作一个简单的游戏 Cocos2d-x 2.0.4
本文实践自 Ray Wenderlich 的文章《How To Make A Simple iPhone Game with Cocos2D 2.X Tutorial》,文中使用Cocos2D,我在这里使用Cocos2D-x 2.0.4进行学习和移植,前者是用Object-C所写,所以移植到Cocos2D-x会有些差异,比如某些函数、某些功能不能跟原文一样直接实现,需另转换方法实现。之前已经对转载 2016-11-04 10:17:20 · 821 阅读 · 0 评论 -
Unity 脚本生命周期流程图
渲染OnPreCull: 在相机剔除场景之前调用此函数。相机可见的对象取决于剔除。OnPreCull 函数调用发生在剔除之前。OnBecameVisible/OnBecameInvisible: 在对象对于相机可见/不可见时调用此函数。OnWillRenderObject: 如果对象可见,则为每个相机调用一次此函数。OnPreRender: 在相机开始渲染场景之前调用此函数原创 2016-11-04 10:05:39 · 310 阅读 · 0 评论