在使用引擎开发产品时,我们经常会使用环境光作为游戏场景的太阳光使用,环境光照是我们加入场景总体光照中的一个固定光照常量,它被用来模拟光的散射(Scattering)。在现实中,光线会以任意方向散射,它的强度是会一直改变的,所以间接被照到的那部分场景也应该有变化的强度,而不是一成不变的环境光。其中一种...
实时阴影技术的实现,不论在PC端还是在移动端,都显的非常重要,它也是衡量一个3D引擎渲染能力的一个指标,很多开发者或者是引擎开发者对于如何实现实时阴影的原理并不是很清楚,大部分人使用引擎都是在前人做好的基础上去调用接口,对于它的内部实现一无所知,在面试引擎的工作时就被暴露出来了。作为开发者要知其然知...
3.1组件 Component组件是Unity中最核心的一个概念,它是一切编程的基础。没有组件,也就没有了Unity编程。打开一个新Unity工程,我们在Project面板中右键可以直接创建出一个C#脚本。脚本的内容如下:using UnityEngine;using System.Collecti...
UE4的版本迭代Unreal Engine 在确保Editor以及cooked内容可以在多个不同的引擎版本之间通用这一块有很不错的表现。而且为了让程序员能够在这些不同的版本之间很方便的更改数据结构,Unreal Engine也提供了一些机制。这篇博客将通过GetLinkerUE4Version()及...
HTC Vive 是由HTC与Valve联合开发的一款VR头显(虚拟现实头戴式显示器)产品,想必大家都玩到很多VIVE上的VR游戏了,那么如何使用Unity来进行VIVE上的VR游戏开发呢?第一步: 导入SDK:SteamVR Plugin和Vive Input Utility第二步: 删除场景中的...
最近在做项目的优化工作,测试发现UI的开销占到了一半以上,所以先从他下手。 源码分析 NGUI有几个重要的类,UIPanel,UIWidget,UIDrawCall。其中UIPanel用一个静态链表保存游戏里的所有UIPanel,每个UIPanel在列表里的顺序是由depth决定的,注意这里是静...
引言在服务器中,数据库是必不可少的部分,作为数据存取中心,有时候的系统的操作涉及到数据的快速读写,在这种情况下,我们通常不会中规中矩地直接读写像MySQL的持久性数据库的数据,因为像MySQL这一类关系型的数据库不管是查询或者是修改数据库的内容都需要通过冗长的检索过程,势必影响效率,所以我们通常会选...
前言 在我们进行游戏战斗场景开发时,常常为了加强临场感,会在有爆炸或者撞击的时候加入震屏的效果,原理其实很简单,就是对场景主相机进行坐标和角度的变化。设计 在开始进行代码实操之前,我们先考虑一下大致的思路,主要操作的参数有震动的幅度(Transform的各项参数,通常只改变localPosi...
Unity编程标准导引-3.4 Unity中的对象池  本节通过一个简单的射击子弹的示例来介绍Transform的用法。子弹射击本身很容易制作,只要制作一个子弹Prefab,再做一个发生器,使用发生器控制按频率产生子弹,即克隆子弹Prefab,然后为每个子弹写上运动逻辑就可以了。这本该是很简单的事情...
在不同的Unity版本上,发现了泛型List无论使用foreach还是GetEnumerator均会产生GC的情况,这就有点尴尬了。由于它本身就是Mono编译器和相应.net库才能决定的原因,这就使得在使用系统提供的List时,又能最终摆脱GC的纠缠变得很困难。于是抓耳挠腮,翻出差不多六七年为Jav...
关于这个话题,网络上讨论的很多,我也收集了一些资料,都不是很齐全,所以自己亲自测试,这里把结果分享给大家。锚点foreach究竟怎么了?研究过这个问题的人都应该知道,就是它会引起频繁的GC Alloc。也就是说,使用它之后,尤其在Update方法中频繁调用时,会快速产生小块垃圾内存,造成垃圾回收操作...
欧拉角的定义在写这篇文章之前,我搜索了网上很多关于欧拉角的定义,发现大部分引用自维基百科的定义,我这里也引述一下:维基百科定义莱昂哈德·欧拉用欧拉角来描述刚体在三维欧几里得空间的取向。对于任何参考系,一个刚体的取向,是依照顺序,从这参考系,做三个欧拉角的旋转而设定的。所以,刚体的取向可...
音源组件(AudioSource)音源是场景中在某个位置的发声装置,好像一个喇叭。它播放着音频片段 (Audio Clip)。发出的声音将输出到声音监听器(audio listener),或者声音混淆器(audio mixer)。稍后再说混淆器,一般相机会默认自带一个AudioListener组件,...
01 产品经理绘制流程图给什么样的用户群设计的?用户想在你的VR 应用中获得怎样的目标(满足怎样的需求)?在最下面的结尾处则为用户将要完成的目标(获得的结果&满足的需求) 02 产品助理&策划 手绘线框图 03 产品设计师制作静态低保真原型把上面的草图在unity中做出来,比如平面上...
下面就一起来看看从2D效果还原至3D场景的具体步骤。2D原画转3D模型为了不耽误游戏主程的开发进度,在早期的草图阶段,我们为每个场景创建了非常简单的灰箱模型以便进行程序开发工作,而且美术设计也可以同时进行。早期的灰箱模型与最终模型的对比虽然最终的2D原画被用作3D场景建模的参考,但是在这个阶段需要注...
作为一个完全的新手,尝试去学习一个新的游戏引擎看起来会很可怕。你拥有了许多的学习教程、文件和建议,但是你却不明白怎样去开始或是以一个什么样的步骤去学习虚幻引擎4。你在不同的方向间摇摆不定,最终你会越来越迷惑和受打击。我花费了许多的时间去重构那些从零开始学习游戏引擎的方法。那些方法就是你最初需要关注什...
AOI(Area Of Interest)在MMOPRG游戏服务器上是不可或缺的技术,广义上,AOI系统支持任何游戏世界中的物体个体对一定半径范围内发生的事件进行处理;但MMOPRG上绝大多数需求只是对半径范围内发生的物体离开/进入事件进行处理。当你进入一个游戏场景时,如果你能看到其他玩家,那背后A...
不得不说,虚幻的蓝图系统还是非常方便强大的,大大的提高了开发效率。蓝图是一个很成熟的系统,也就有很多隐藏的小技巧,这些技巧谈不上多高深,却可以使人们在使用蓝图时更加得心应手,更加喜爱这个“可视化编程“。 发现一个更黑科技的技巧…见动图 : 直接把变量拉到节点上,...
对于有志从事VR游戏开发的人而言,这篇文章或有借鉴之处。我将谈及诸多相关经验,包括在Kickstarter和Greenlight上的宣传,参加VR竞赛,准备免费的 demo,发布抢先体验版以及最终在Steam和Oculus主页推出正式版。这些日子以来学到的东西不少,我会谈谈什么样的错误会阻碍游戏的销...
xLua是Unity3D下Lua编程解决方案,自2016年初推广以来,已经应用于十多款腾讯自研游戏,因其良好性能、易用性、扩展性而广受好评。现在,腾讯已经将xLua开源到GitHub。2016年12月末,xLua刚刚实现新的突破:全平台支持用Lua修复C#代码bug。目前Unity下的Lua热更新方...