摘要: 必读好文推荐: Unity协程(Coroutine)原理深入剖析 Unity协程(Coroutine)原理深入剖析再续 上面的文章说得太透彻,所以这里就记一下自己的学习笔记了。 首先要说明的是,协程并不是线程,协程是运行在主线程中的,是和主线程同步执行的代码,不同的地方是运行的方法可以被yield 阅读全文
posted @ 2017-08-11 16:36 oayx 阅读(325) 评论(0) 推荐(1) 编辑
摘要: C#和C/C++一样,也支持预处理指令,下面我们来看看C#中的预处理指令。 #region 代码折叠功能,配合#endregion使用,如下: 点击后如下: 条件预处理 条件预处理可以根据给出的条件决定最终进行编译的代码,换句话说可以排除掉指定的代码不进行编译。 #define 定义一个宏,注意只要 阅读全文
posted @ 2017-08-11 16:22 oayx 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 2015-09-06 14:03 by 阿诚de窝, ... 阅读, 0 评论, 收藏, 编辑 对于Unity3D的音乐音效这块一直没有好好的看过,现在准备好好的研究一下,并作为一个笔记记录下。 支持格式 在游戏中,一般存在两种音乐,一种是时间较长的背景音乐,一种是时间较短的音效(比如按钮点击,开枪 阅读全文
posted @ 2017-08-11 16:15 oayx 阅读(633) 评论(0) 推荐(0) 编辑
摘要: 什么是行为树 如果了解过状态机,会知道在行为树之前,在实现AI用得比较多的技术是状态机,状态机理解起来是比较简单的,即一个状态过渡到另一个状态,通过判断将角色的状态改变即可,如果学习过Unity的Mecanim动画系统,会更加直观的理解。 但是状态机在状态较多的情况下会使状态之间的切换变得异常繁琐, 阅读全文
posted @ 2017-08-11 15:35 oayx 阅读(1233) 评论(0) 推荐(0) 编辑
摘要: 2017-04-17 19:55 by 阿诚de窝, 29 阅读, 0 评论, 收藏, 编辑 错误相关的调试和处理在开发中是特别重要的一种技能。 try-catch 我们来看下面的情况: 1 // noneFunc 这个方法并不存在 2 window.noneFunc(); 3 // js 报错后终 阅读全文
posted @ 2017-08-11 14:33 oayx 阅读(523) 评论(0) 推荐(0) 编辑
摘要: 在跨域安全性方面,有多个地方会有限制,主要是XMLHttpRequest对象的跨域限制和iFrame的跨域限制,下面我们分别来看一下。 Ajax跨域(CORS) CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。 它允许浏览器向跨源服务器 阅读全文
posted @ 2017-08-11 14:28 oayx 阅读(391) 评论(0) 推荐(1) 编辑
摘要: 初识HTTPS HTTPS也被叫做“基于TLS的HTTP,基于SSL的HTTP,HTTP安全“,它是一个在Internet上广泛使用的计算机网络安全通信协议。 即HTTPS是HTTP的安全版本,在了解HTTPS为何安全之前,那么我们首先应该要知道HTTP为什么不安全。 HTTP为什么不安全 通过 H 阅读全文
posted @ 2017-08-11 14:21 oayx 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 资源加载是必备的知识点,这里就说说Mecanim动画的资源如何打包及加载。 注意,Unity4.x和Unity5.x的AssetBundle打包策略不一样,本笔记是基于Unity4.x的AssetBundle进行打包的。 我们一般使用FBX类型的模型及动画文件,而动画文件的储存一般有两种情况,一是所 阅读全文
posted @ 2017-08-11 11:42 oayx 阅读(1080) 评论(0) 推荐(0) 编辑
摘要: 动作游戏 还记得读书的时候熬夜打《波斯王子》的时光,我们的王子通过跳跃穿过墙壁的小洞、在高层建筑上进行攀爬和跳跃,还有在操作失误掉下高楼和触发必死机关后使用时之沙的时光倒流功能回归死亡之前的开挂技能。 而现在这些功能使用Unity3D的Mecanim都可以非常简单的实现了! 这篇笔记主要记录下Mec 阅读全文
posted @ 2017-08-11 11:42 oayx 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 解决什么问题? 动画分层可以用来解决什么样的问题呢?试想一下如果你要开发一款第三人称的射击游戏,那么肯定是希望身体的动画分为上下两部分,上方根据瞄准的位置和是否射击进行动画播放,下方根据移动播放动画。最好的例子就是Unity4.x自带的示例AngryBots了。 Avatar Mask 下面我们就使 阅读全文
posted @ 2017-08-11 11:41 oayx 阅读(1044) 评论(0) 推荐(0) 编辑
摘要: 认识Blend Tree 我们在Animator Controller中除了可以创建一个State外还可以创建一个Blend Tree,如下: 那么我们看下新创建的Blend Tree和State有什么区别: 唯一的区别就是Montion指向的类型变成了Blend Tree类型,那么一个Blend 阅读全文
posted @ 2017-08-11 11:41 oayx 阅读(973) 评论(0) 推荐(0) 编辑
摘要: 控制人物动画播放 这里我重新弄了一个简单的场景和新的Animator Controller来作为示例。 下面先看看Animator Controller的配置: 人物在站立状态只能进入走路,走路只能进入奔跑或返回站立,奔跑只能进入跳跃或返回走路,跳跃则只能返回奔跑。 参数方面为两个参数: Float 阅读全文
posted @ 2017-08-11 11:40 oayx 阅读(2528) 评论(0) 推荐(1) 编辑
摘要: 什么是IK? IK(Inverse Kinematics)即反向动力学,即可以使用场景中的各种物体来控制和影响角色身体部位的运动,一般来说骨骼动画都是传统的从父节点到子节点的带动方式(即正向动力学),而IK则倒过来,由骨骼子节点带动骨骼父节点,具体情况比如人物走路踩到了石头就需要由脚的子节点来带动全 阅读全文
posted @ 2017-08-11 11:40 oayx 阅读(823) 评论(0) 推荐(0) 编辑
摘要: 动画的设置 我们先看看Animation Clip的一些设置: Loop time:动画是否循环播放。 下面出现了3个大致一样的选项: Root Transform Rotation:表示为播放动画的对象的旋转方面的信息。 Root Transform Position(Y):表示为播放动画的对象的 阅读全文
posted @ 2017-08-11 11:39 oayx 阅读(1143) 评论(0) 推荐(1) 编辑
摘要: 简介 Animator Controller在Unity中是作为一种单独的配置文件存在的文件类型,其后缀为controller,Animator Controller包含了以下几种功能: 可以对多个动画进行整合; 使用状态机来实现动画的播放和切换; 可以实现动画融合和分层播放; 可以通过脚本来对动画 阅读全文
posted @ 2017-08-11 11:39 oayx 阅读(8391) 评论(0) 推荐(1) 编辑
摘要: 我们要在Unity3D中使用上模型和动画,需要经过下面几个阶段的制作,下面以一个人形的模型开发为准来介绍。 模型制作 模型建模(Modelling) 我们的美术在建模时一般会制作一个称为T-Pose(及双臂张开)的模型。 骨骼绑定(Rigging) 在之前制作的模型上进行骨骼的绑定,我们需要注意的是 阅读全文
posted @ 2017-08-11 11:38 oayx 阅读(991) 评论(0) 推荐(0) 编辑
摘要: 动画组件之间的关系 我们先看一张图: 这里我们可以看到,我们在GameObject之上绑定的Animator组件是控制模型进行动画播放的。 而其属性Controller则对应一个Animator Controller文件,该文件可以在Animator窗口中打开,其是被设计为状态机形式的系统,多个状态 阅读全文
posted @ 2017-08-11 11:38 oayx 阅读(506) 评论(0) 推荐(0) 编辑
摘要: Mecanim简介 Mecanim动画系统是Unity3D4.0开始引入的一套全新的动画系统,主要提供了下面4个方面的功能: 工作流 模型的准备 Unity不能制作3D模型和进行骨骼绑定,这些需要在专业的建模软件中由美术进行制作,一般常用的建模软件有下面几种: 3DMax Maya Cinema4D 阅读全文
posted @ 2017-08-11 11:37 oayx 阅读(2238) 评论(0) 推荐(0) 编辑
摘要: 认识泛型 TypeScript也实现了类型于C#和Java的泛型以实现类型的参数化,我们先看一个需求: 我们希望方法identity可以传入任意类型,并且返回传入的类型,这样写可以达到效果但是不能确定返回的类型,使用泛型的写法如下: 我们可以指定类型,也可以让编译器自动来识别类型。 泛型数组 我们也 阅读全文
posted @ 2017-08-11 11:15 oayx 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 这篇笔记我们来看看TypeScript中的函数。 函数类型 在JavaScript中存在两种定义函数的方法,如下: 在TypeScript中对应的写法如下: 而TypeScript中对函数的类型也可以定义,比如我们上面的myAdd没有定义类型,则可以将任意类型的函数赋值给它,当然赋值函数以外的东西也 阅读全文
posted @ 2017-08-11 11:07 oayx 阅读(234) 评论(0) 推荐(0) 编辑