Unity

Unity 2018.3正式发布 为VR控制器添加新的Prefab工作流程及触觉反馈

在虚拟现实(VR)或增强现实(AR)开发方面,独立工作室倾向于选择两种游戏引擎中的一种,即 Unity Technologies的Epic Games的虚幻引擎或Unity。 今天,后者刚刚将其系统升级到Unity 2018.3,为标准和沉浸式内容创作者带来了无数的功能。

Unity 2018.3正式发布

当提到Unity 2018.3时,最重要的更新就是提供新的Prefab工作流程,允许开发人员将场景和 Prefab分开,目的是提供更大的灵活性和提高生产力。事实上,更新提供了2000多个新特性、修复 和改进,包括视觉效果图(预览)和更新地形系统。

当谈到特定的VR和AR添加时,Unity 2018.3现在包括对Daydream控制器的本机支持,用于VR控制器 的触觉API,以及AR Foundation的更新以及XR性能测试。 该更新还专注于有针对性的多平台支持, 以便应用程序或视频游戏可以覆盖最广泛的受众,包括OpenVR,Oculus,WindowsMR,Daydream和 GearVR等SDK。

Unity 2019.1 Alpha新功能:增量式垃圾回收

我们为Unity 2019.1a10中加入了实验性新功能:Incremental Garbage Collection增量式垃圾回收。本文将介绍增量式垃圾回收功能,如何启用以及未来开发计划。

Unity 2019.1 Alpha新功能:增量式垃圾回收

为什么使用增量式垃圾回收

C#语言使用托管内存和自动垃圾回收,这意味着它使用自动化方法跟踪内存中的对象,然后释放不再使用对象的内存。

这种做法的优点是,开发者不必手动跟踪释放不需要的内存,因为垃圾回收器会自动执行此操作,这样会使开发者的工作更轻松,同时避免出现潜在Bug。缺点是垃圾回收器需要一些时间完成工作,而开发者或许不希望将特定时间用于此处。

Unity光照系统,GI,光线追踪,LightMap,Enlighten,HDR等

GI:全局光照,指的是模拟光线是如何在场景中传播的算法。不仅会考虑直接光照的结果,还会计算光线被不同的物体表面反射产生的间接光照。

Unity使用的是预计算实时全局光照 : 实时(直接光照)+ 预计算(直接光照和间接光照)模拟光照。(这里的实时指的就是物体移动光照效果也会变化。)实时光照没办法模拟光线的多次反射的效果,所以加了预计算光照。预计算光照效果就既有直接光照,也有间接光照。

原理:一旦物体和光源的位置固定,物体对光线的反弹路径及漫反射光照也是固定的,因此可以预计算,把物体之间的这些关系计算出来。这样在实时运行时,只要光源位置不变,这些关系信息就一直有效,不需要实时更新。

Unity Enlighten光照系统提供了两种技术:烘焙GI 和 预计算实时GI。同时使用这两种会有性能问题。

烘焙GI: LightMap,即烘焙GI中的光照贴图,表示静态物体基于光的影响计算出的贴图。把光源对场景中静态物体的光照效果提前烘焙到一张光照纹理中,然后把光照纹理直接贴在物体表面。(有直接光照信息,也有间接光照信息)

Unity资源解决方案之AssetBundle

1、什么是AssetBundle

AssetBundle是Unity pro提供的一种用来存储资源的文件格式,它可以存储任意一种Unity引擎能够识别的资源,如Scene、Mesh、Material、Texture、Audio、noxss等等,同时,AssetBundle也可以包含开发者自定义的二进制文件,只需要将自定义文件的扩展名改为.bytes,Unity就可以把它识别为TextAsset,进而就可以被打包到AssetBundle中。Unity引擎所能识别的资源我们称为Asset,AssetBundle就是Asset的一个集合。

AssetBundle的特点:
压缩(缺省)、动态载入、本地缓存;

2、AssetBundle VS Resource

AssetBundle作为Unity官方推崇的资源更新方案,与传统的Resource差异如下:
a、Resource放在Resources目录下,resources.assets文件,单个文件有2GB限制,首次必须全部下载;
b、AssetBundle创建需要通过Editor脚本创建,支持动态下载,是Unity Web Caching License唯一可以缓存的内容;

【Unity编程】Unity中关于四元数的API详解

Quaternion类

Quaternion(四元数)用于计算Unity旋转。它们计算紧凑高效,不受万向节锁的困扰,并且可以很方便快速地进行球面插值。 Unity内部使用四元数来表示所有的旋转。

Quaternion是基于复数,并不容易直观地理解。 不过你几乎不需要访问或修改单个四元数参数(x,y,z,w); 大多数情况下,你只需要获取和使用现有的旋转(例如来自“Transform”),或者用四元数来构造新的旋转(例如,在两次旋转之间平滑插入)。

大部分情况下,你可能会使用到这些函数:
  •  Quaternion.LookRotation,
  •  Quaternion.Angle
  •  Quaternion.Euler
  •  Quaternion.Slerp
  •  Quaternion.FromToRotation
  •  Quaternion.identity。

Quaternion 是一个结构体,本身成员变量相对简单,可以作为函数参数高效传递。-

【Unity优化】Unity优化技巧进阶

做游戏好多年了,关于游戏优化一直是另开发者头疼的一个问题。因为优化牵扯的内容很多,要求掌握的知识点比较全面。在接下来的系列文章中,我想分享一下自己的一些经验。一些有误或者不完善之处请小伙伴们给我意见,加入一起探讨和学习。

程序消耗

所谓的优化,目的应该是尽可能减弱某种消耗,而在Unity上来说,大概可以分为以下几种:
  •   程序的运行速度
  •   程序的资源消耗
  •   程序的功耗消耗

程序的运行速度,一般是指运行帧率,也包括加载速度。是我们首要考虑的重点,也是将会花最多的精力去探讨的话题,运行帧率是游戏类项目的一个非常重要的性能指标,帧率的下降将直接导致游戏体验的下降。

程序的资源消耗,一般是指包体大小,占据用户客户端的存储空间大小,也包括网络消耗,占据多少带宽。这些虽然不那么影响用户当下的体验,不过指标太高也会降用户接受度。

程序的功耗消耗,一般是指应用程序的耗电量,一款程序做的很好,但是功耗太高,使用后短时间内发热太厉害,也会导致玩家无法使用。这种优化跟显卡直接关联,显卡厂商也有很多优化测试和评估程序帮助我们实现降低功能。

【Unity编程】Unity中的欧拉旋转

莱昂哈德·欧拉用欧拉角来描述刚体在三维欧几里得空间的取向。对于任何参考系,一个刚体的取向,是依照顺序,从这参考系,做三个欧拉角的旋转而设定的。所以,刚体的取向可以用三个基本旋转矩阵来决定。换句话说,任何关于刚体旋转的旋转矩阵是由三个基本旋转矩阵复合而成的。

对于在三维空间里的一个参考系,任何坐标系的取向,都可以用三个欧拉角来表现。参考系又称为实验室参考系,是静止不动的。而坐标系则固定于刚体,随着刚体的旋转而旋转。参阅下图。设定xyz-轴为参考系的参考轴。三个欧拉角: (αβγ),蓝色的轴是xyz-轴,红色的轴是XYZ-坐标轴。称xy-平面与XY-平面的相交为交点线(绿色),用英文字母(N)代表。

zxz顺规的欧拉角可以静态地这样定义:
  •   α是x-轴与交点线的夹角,
  •   β是z-轴与Z-轴的夹角,
  •   γ是交点线与X-轴的夹角。

【Unity编程】Unity中的欧拉旋转

全面理解Unity加载和内存管理

Unity里有两种动态加载机制:一是Resources.Load,一是通过AssetBundle,其实两者本质上我理解没有什么区别。Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时动态加载,可以指定路径和来源的。

其实场景里所有静态的对象也有这么一个加载过程,只是Unity后台替你自动完成了。

详细说一下细节概念:

AssetBundle运行时加载:

来自文件就用CreateFromFile(注意这种方法只能用于standalone程序)这是最快的加载方法
也可以来自Memory,用CreateFromMemory(byte[]),这个byte[]可以来自文件读取的缓冲,www的下载或者其他可能的方式。

其实WWW的assetBundle就是内部数据读取完后自动创建了一个assetBundle而已
Create完以后,等于把硬盘或者网络的一个文件读到内存一个区域,这时候只是个AssetBundle内存镜像数据块,还没有Assets的概念。

Assets加载:

Unity 2018.2正式推出,带来一系列3D内容优化

Unity刚刚更新了他们的3D引擎,为今年年初推出的Scriptable Render Pipeline带来了一系列的优化。

Scriptable Render Pipeline(SRP)最初以预览功能的方式来到了Unity 2018.1,其可以帮助开发者根据硬件配置文件来优化应用程序的性能。Unity的Lightweight Render Pipeline(LWRP)专为在智能手机和平板电脑上运行高质量沉浸式内容而设计,而High Definition Render Pipeline(HDRP)则允许开发者利用高性能的游戏主机和PC。

Unity的高级产品市场营销经理Thomas Krogh-Jacobsen在博文中写道:“Unity 2018.2的目标之一是,在Scriptable Render Pipelines(SRP)的基础上进一步优化,从而实现新水平的渲染。我们的另一个重点是开发一系列的功能和优化,从而帮助你在移动领域取得成功。”

关于unity的各种贴图

贴图的英语 Map 其实包含了另一层含义就是“映射”。其功能就是把纹理通过 UV 坐标映射到3D 物体表面。贴图包含了除了纹理以外其他很多信息,比方说 UV 坐标、贴图输入输出控制等等。材质是一个数据集,主要功能就是给渲染器提供数据和光照算法。

关于unity的各种贴图

漫反射贴图diffuse map :漫反射贴图在游戏中表现出物体表面的反射和表面颜色。换句话说,它可以表现出物体被光照射到而显出的颜色和强度。我们通过颜色和明暗来绘制一幅漫反射贴图,在这张贴图中,吸收了比较多的光线的部分比较暗,而表面反射比较强的部分,吸收的光线比较少。

同步内容
--电子创新网--
粤ICP备12070055号