背景      我们都知道,最初是作为3d游戏引擎而设计的,在4.3版本后才推出的UGUI和Sprite来实现2d游戏设计。在UGUI中使用的屏幕坐标系(以像素单位),但是在中依然使用的是3d坐标系中的(Unit浮点单位),在导入Texture2d时可以做像素到单位(unit)的转换设置。而世界坐标...
在使用引擎开发产品时,我们经常会使用环境光作为游戏场景的太阳光使用,环境光照是我们加入场景总体光照中的一个固定光照常量,它被用来模拟光的散射(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,然后为每个子弹写上运动逻辑就可以了。这本该是很简单的事情...