
unity游戏开发案例讲解
文章平均质量分 51
HC_无敌的韩先生
这个作者很懒,什么都没留下…
展开
-
关于数据结构和算法
数据结构和算法理解程序=数据结构+算法数据结构分为:逻辑结构和物理结构逻辑结构:指反应数据结构元素之间逻辑关系的数据结构 物理结构:又叫存储结构通俗讲:物理结构是数据在存储器中存放形式针对内存而言逻辑结构分为四种常见集合结构:同一个集合,他们之间并列关系 线性结构:一对一的相互关系 树形结构:一对多的相互关系 图形结构: 多对多的相互关系物理结构分为顺序存储结构:是...原创 2019-02-22 21:30:54 · 308 阅读 · 0 评论 -
Unity-动画系统-Animat
Root Motion根运动Root Motion根运动是一个非常重要的概念。它的原理是:当身体发生了变换,从而引发身体的重心发生改变。即改变了重心或者说身体的方向。这样在地面上则产生了方向上的投影。角色身体的上半身也下半身相对于角色T-pose进行平均计算而产生一个方向矢量。身体变换和方向则在每一帧中都会把变化计算出来,并都存储到动画片段 (Animation Clip) 中。最后施加到游戏对象...转载 2018-03-03 17:00:02 · 1703 阅读 · 0 评论 -
Unity-动画系统-Animator动画分割与设置
对于模型动画的分割,不论Animation,还是Animator,在动画的分割上稍有一些不同,但整个操作的思路是一致的,希望大家在本课内容的学习过程中与Animation的动画分割方式进行相应比较。分割动画导入的一个角色资源,可能只有一个角色模型资源,也可能包含动画资源。动画资源也分两种情况:1. 各个动画部分都是独立的2. 所有的动画集成在一个动画片段中。注:第2种情况,需要在导入资源之后手动分...转载 2018-03-03 17:00:13 · 14491 阅读 · 1 评论 -
Unity-动画系统_Avatar系统
利用Avatar系统,我们可以通过对骨胳操控实现动画的重利用效果,这也就是Mecanim系统中的动画重定向功能。Avatar工作原理对于人类角色来说,都包含着相同或者类似的骨骼。而Avatar,可以对角色中包含的骨骼结构或者角色模型进行分析与识别,并与Mecanim中已有的标准人类骨骼进行对比,并进行标示。它是一个接口,通过它可以被Mecanim系统所识别,成为一种可被Mecanim系统所识别的通...转载 2018-03-03 17:00:32 · 9801 阅读 · 0 评论 -
Unity-动画系统-Animator基础
Mecanim动画系统简介 Unity 4.0于2012年11月15日正式发布,该版本最大变化之一就是引入了新动画系统——MecAnim,通过MecAnim新的动画系统,开发者可以非常方便地实现角色的各种动画的控制。Mecanim具有以下特征:● Mecanim动画系统是通过Avatar这个代理来实现设置角色动画中的骨架和蒙皮的。● 开发者可以利用角色动画的重定向功能(Retarget...转载 2018-03-03 17:00:45 · 1370 阅读 · 0 评论 -
Unity-动画系统-AniamtionEvent
通过AnimationEvent监测动画结束AnimationEvent的添加方法1.通过界面操作来添加事件选中具有Animation动画组件的模型,并拖动到场景中。模型具有两个动作,分别是pose 和 wait按快捷键Ctrl+6 打开动画编辑器,通过顶部的图标来可以为选中的帧添加一个事件。添加出事件后,在关键帧顶部,会显示出一白色的小块,说明此处已经添加了事件,并且会弹出下面的一个弹窗,此时还...转载 2018-03-03 17:00:59 · 1645 阅读 · 0 评论 -
Unity-动画系统
在Unity引擎中,大致上可以分为两大类动画控制系统,分别是Animation和Mecanim动画系统.。Aniamtion是低版本中的动画控制系统。而Aniamtor是Unity新的动画系统Mecanim动画系统的核心组件.通过它能够实现对动画的重定向,在后面的课程中,将会详细讲解,本课的内容为Aniamtion动画的控制。模型导入的常见问题1.模型材质或纹理丢失当模型中出现紫红色区域或模型没有...转载 2018-03-03 17:01:18 · 1722 阅读 · 0 评论 -
Unity-物理系统-射线
射线前面章节讲过,刚体与刚体、刚体与碰撞器之间可以发生碰撞,开发者可以通过碰撞器或触发器进行碰撞或触发检测。Unity还为广大开发者提供了一种射线的检测方式,射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射 。此功能通过物理类中的raycast函数来实现。射线应用范围比较广, 多用于碰撞检测(如:子弹飞行是否击中目标)、角色移动等 等。Unity...转载 2018-03-03 17:01:35 · 1428 阅读 · 0 评论 -
NGUI-位图字体及图文混排
图文混排介绍图文混排通常用于聊天模块,在文字中夹杂表情图片。位图字体制作1)图文混排的制作,首先要制作位图字体。首先得下载一个位图制作工具Bitmap font generator,可以点击这里下载2) 将要作为位图的文字写入到一个文本文件中,以UTF-8编码格式保存或在BMFont中进行选择。亮色的字是制作位图的文字。3)通过Edit菜单,选择Select Chars form File选中之前...转载 2018-03-03 17:02:03 · 838 阅读 · 1 评论 -
NGUI-跟随
UI跟随实现原理1)通过NGUITools中的FindCameraForLayer(layer) 渲染跟随目标的摄像机。以及渲染当前UI的摄像机。 //这里是通过物体的层获得相应层上的相机worldcamera = NGUITools.FindCameraForLayer(TargetObject.layer); //通过脚本所在物体的层获得相应层上的相机 uiCamera = NGUI...转载 2018-03-03 16:59:12 · 432 阅读 · 0 评论 -
Unity-导航寻路-OffMeshLink
在3D游戏中,有时,场景中的静态几何体的导航网格不是全部相连在一起的,从而使代理不能从世界场景的这一部分移动到另外的部分,此时需要运用到Off-MeshLink来解决此类问题。案例Off-MeshLink组件用于手动指定路径线路。可以实现跨越鸿沟或者往高处跳跃而上的效果。1.创建场景。如图 所示。inv对象中有2个Cube,分别代表地板和大方块高墙。再创建2个Cube,分别命名为:start po...转载 2018-03-03 16:58:41 · 2799 阅读 · 0 评论 -
Unity-导航网络寻路-基础寻路
能够利用NavMesh寻路系统完成角色的自动寻路引语寻路是游戏中经常使用到的一项技术,3D游戏世界中用于实现物体能够自动寻找一条路径到达目的位置的一项技术。,它将游戏场景中复杂的结构组织关系简化为带有一定信息的网格 ,在这些网格的基础上通过一系列相应的计算来实现自动寻路。自动寻路就是AI中的一个十分重要的分支,其算法异常复杂。Unity中提供的这套非常成熟的组件来为我们解决这一难题。在Unity中...转载 2018-03-03 16:58:30 · 1481 阅读 · 0 评论 -
Unity中常见的设计模式
1. 单例模式概念很简单,保证一个类仅有一个实例,并提供一个访问它的全局访问点。我就提供两段代码就好了,在游戏当中,有两种类,一种是不继承MonoBehavior,另外一种是继承它的,首先看不继承的,Class Singleton{ Static MySingleton; // 单件对象,全局唯一的。 Static Instan...转载 2018-03-12 17:24:41 · 612 阅读 · 0 评论 -
unity3d 简单的委托模式
1.先写一个委托类,所有的委托都写在这个类里。[csharp] view plain copypublic class MyDelegate { public delegate void LogDelegate(string log); //定义 委托名为LogDelegate,带一个string参数的 委托类型 public static LogDelegate ...转载 2018-03-03 16:58:15 · 389 阅读 · 0 评论 -
Unity协程简单使用
public class Coroutine : MonoBehaviour{ private int Ret = 0; //协程的简单写法 void Start() { //开启Test1协程 StartCoroutine(Test1()); //开启Test协程 StartCor原创 2018-02-04 18:45:01 · 1001 阅读 · 0 评论 -
Unity3D中Layers和LayerMask
Unity中是用int32来表示32个Layer层。int32表示二进制一共有32位(0—31)。在Unity中可编辑的Layer如下图所示:在Unity中每个GameObject都有Layer属性,默认的Layer都是Default。在Unity中可编辑的Layer共有24个(8—31层),官方已使用的是0—7层,默认不可编辑!LayerMask实际上是一个位码操作,在Unity3D中一共有32...转载 2018-03-03 16:57:50 · 469 阅读 · 0 评论 -
Unity-Mathf运算
Unity Mathf 数学运算Mathf.Abs绝对值 计算并返回指定参数 f 绝对值。 Mathf.Acos反余弦 static function Acos (f : float) : float 以弧度为单位计算并返回参数 f 中指定的数字的反余弦值。 Mathf.Approximately近似 static function Approximat转载 2018-02-03 21:44:44 · 399 阅读 · 0 评论 -
Unity-箱子在指定位置随机出现-预设
//总结:预设,刷箱子 进行拾取箱子制作//1,吧脚本挂载摄像机上就可以 刷箱子希望在某一个区域刷所以先建一个立方体Cube 在这个区域内(立方体)随机产生箱子 Cube上的Mesh Collider去掉//2,将平面Cube名字更改为CreateBoxPlanepublic class TestSxeneCtrl : MonoBehaviour { //先定原创 2018-02-03 21:18:27 · 4821 阅读 · 1 评论 -
Unity触发及碰撞
//总结:碰撞所需要的条件// 1. Collidr和Collider 所在的层能够碰撞或触发// 2, 其中一个物体必须有刚体// 3,碰撞组件上Is Trigger是碰撞是否触发的意思//碰撞器:Box Collider 盒碰撞器、Capsule Collider 胶囊碰撞器、Mesh Collider 网格碰撞器、Sphere Collider 球碰撞器 等等这一类组件。原创 2018-02-03 19:54:18 · 627 阅读 · 0 评论 -
控制角色点击屏幕可以前后左右移动及缓慢转身
using System.Collections;using System.Collections.Generic;using UnityEngine;public class jsyidong : MonoBehaviour { /// /// 移动的目标点 /// private Vector3 TargetPos = Vecto原创 2018-02-02 18:51:46 · 4797 阅读 · 0 评论 -
Unity-物理系统-材质
Physic Material物理材质物理材质用来调节碰撞物体的摩擦力和弹力效果。要创建物理材质从Project面板中->Create->Physic Material。然后从Project面板中拖拽物理材质到场景上物体的碰撞器Material属性上。如图 所示。Physic Material属性:1、Dynamic Friction:动态摩擦力 通常值在0到1之间。值为0的效果像冰,...转载 2018-03-03 17:02:26 · 1850 阅读 · 0 评论 -
常用组件及系统资源
熟练掌握游戏对象的创建(3D/2D)掌握四种灯光的特性及使用场景掌握三种贴图的用途TextureRenderTextureMovieTexture摄像机Camera天空盒制作及添加游戏对象创建灯光贴图TextureRenderTextureMovieTexture天空盒引言如何创建一个就基本游戏物体,这些游转载 2018-01-31 18:03:15 · 2641 阅读 · 0 评论 -
Unity介绍空物体及组件
介绍空物体1.创建空物体就是在Hierarchy面板创建CreateEmpty GameObject空物体2.每个物体默认就有Transform组件也可以表示物体3.可以附加各种其他组件,附加不同组件就有不同功能4.不同物体有不同功能,就是它挂载了不同的组件介绍组件Transform组件position 位置坐标 Rotation 旋转坐标 Sc原创 2018-01-31 17:55:12 · 4491 阅读 · 0 评论 -
NGUI拖动DragDrop
拖动的实现如果实现一个UI的可以拖动,只要在需要拖动的UI元素上添加上BoxCollider和UIDragAndDopItem便可以实现拖动。如何处理拖动和释放如果对拖动过程进行操作,那我们就需要新建类,并集成UIDragDropItem类,在新类中通过重写相应的方法来实现。在我们拖动过程中到底发生了什么事情,有哪些方法被调用了呢?下面是拖动过程中调用的方法转载 2018-01-31 17:55:01 · 1241 阅读 · 0 评论 -
Unity Editor编辑模式下的脚本
创建Editor文件下 创建ScriptCreatInt脚本 实现我们自定义模板的功能、原创 2018-01-31 17:26:33 · 4213 阅读 · 0 评论 -
Unity-点击屏幕进行移动
Unity中实现点击屏幕进行移动1,首先获取点击事件 是在void Update里每帧都要监测Input.GetMouseButton(0) 是输入鼠标抬起事件 0鼠标左键 1鼠标右键 2鼠标中键Input.touchCount==1 移动平台 如手指触摸屏幕 1个手指1 2个手指2 3个手指32,点击事件在什么位置 1>首先在Hier原创 2018-02-01 16:43:49 · 8040 阅读 · 0 评论 -
Unity-project结构和Hierarchy结构
Unity项目中Project结构Script 角色目录 Role角色控制器目录 FSM有限状态机目录 UI UI目录 Utils 工具类 辅助类目录plugins/Android/Ios/PC 第三方插件目录 分平台的Resources 预设目录 EffEct原创 2018-01-31 17:26:14 · 1205 阅读 · 0 评论