Unity 3D 游戏引擎-程序员宅基地

技术标签: Unity 3D  

简介

Unity 3D 也称 Unity,是由 Unity Technologies 公司开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具。

Unity 3D 可以运行在 Windows 和MacOS X 下,可发布游戏至 Windows、Mac、Wii、iPhone、WebGL(需要 HTML5)、Windows Phone 8 和 Android 平台。也可以利用 Unity Web Player 插件发布网页游戏,支持 Mac 和 Windows 平台的网页浏览,是一个全面整合的专业游戏引擎。


业界现有的商用游戏引擎和免费游戏引擎数不胜数,其中最具代表性的商用游戏引擎有 UnReal、CryENGINE、Havok Physics、Game Bryo、Source Engine 等,但是这些游戏引擎价格昂贵,使得游戏开发成本大大增加。而 Unity 公司提出了“大众游戏开发”(Democratizing Development)的口号,提供了任何人都可以轻松开发的优秀游戏引擎,使开发人员不再顾虑价格。

Unity 的中文意思为“团结”。Unity 的核心含义是想告诉大家,游戏开发需要在团队合作基础上相互配合完成。


时至今日,游戏市场上出现了众多种类的游戏,它们是由不同的游戏引擎开发的,Unity 3D 以其强大的跨平台特性与绚丽的 3D 渲染效果而闻名于世,现在很多商业游戏及虚拟现实产品都采用 Unity 3D 引擎来开发。

Unity 3D 的特色

Unity 3D 游戏开发引擎目前之所以炙手可热,与其完善的技术以及丰富的个性化功能密不可分。
Unity 3D 游戏开发引擎易于上手,降低了对游戏开发人员的要求。下面对 Unity 3D 游戏开发引擎的特色进行阐述。

1) 跨平台

游戏开发者可以通过不同的平台进行开发。游戏制作完成后,游戏无需任何修改即可直接一键发布到常用的主流平台上。
Unity 3D 游戏可发布的平台包括 Windows、Linux、MacOS X、iOS、Android、Xbox360、PS3 以及 Web 等。跨平台开发可以为游戏开发者节省大量时间。
以往游戏开发中,开发者要考虑平台之间的差异,比如屏幕尺寸、操作方式、硬件条件等,这样会直接影响到开发进度,给开发者造成巨大的麻烦,Unity 3D 几乎为开发者完美地解决了这一难题,将大幅度减少移植过程中不必要的麻烦。

2) 综合编辑

Unity 3D 的用户界面具备视觉化编辑、详细的属性编辑器和动态游戏预览特性。Unity 3D 创新的可视化模式让游戏开发者能够轻松构建互动体验,当游戏运行时可以实时修改参数值,方便开发,为游戏开发节省大量时间。

3) 资源导入

项目可以自动导入资源,并根据资源的改动自动更新。Unity 3D 支持几乎所有主流的三维格式,如 3ds Max、Maya、Blender 等,贴图材质自动转换为 U3D 格式,并能和大部分相关应用程序协调工作。

4) 一键部署

Unity 3D 只需一键即可完成作品的多平台开发和部署,让开发者的作品在多平台呈现。

5) 脚本语言

Unity 3D 集成了 MonoDeveloper 编译平台,支持 C#JavaScript 和 Boo 3 种脚本语言,其中 C# 和 JavaScript 是在游戏开发中最常用的脚本语言。

6) 联网

Unity 3D 支持从单机应用到大型多人联网游戏的开发。

7) 着色器

Unity 3D 着色器系统整合了易用性、灵活性、高性能。

8) 地形编辑器

Unity 3D 内置强大的地形编辑系统,该系统可使游戏开发者实现游戏中任何复杂的地形,支持地形创建和树木与植被贴片,支持自动的地形 LOD、水面特效,尤其是低端硬件亦可流畅运行广阔茂盛的植被景观,能够方便地创建游戏场景中所用到的各种地形。

9) 物理特效

物理引擎是模拟牛顿力学模型的计算机程序,其中使用了质量、速度、摩擦力和空气阻力等变量。Unity 3D 内置 NVIDIA 的 PhysX 物理引擎,游戏开发者可以用高效、逼真、生动的方式复原和模拟真实世界中的物理效果,例如碰撞检测、弹簧效果、布料效果、重力效果等。

10) 光影

Unity 3D 提供了具有柔和阴影以及高度完善的烘焙效果的光影渲染系统。

Unity 3D 的发展

2004 年,Unity 3D 诞生于丹麦的阿姆斯特丹。
2005 年,发布了 Unity 1.0 版本,此版本只能应用于 Mac 平台,主要针对 Web 项目和 VR(虚拟现实)的开发。
2008 年,推出 Windows 版本,并开始支持 iOS 和 Wii,从众多的游戏引擎中脱颖而出。
2009 年,荣登 2009 年游戏引擎的前五,此时 Unity 的注册人数已经达到了 3.5 万。
2010 年,Unity 3D 开始支持 Android,继续扩大影响力。
2011 年,开始支持 PS3 和 XBox360,此时全平台的构建完成。
2012 年,Unity Technologies 公司正式推出 Unity 4.0 版本,新加入对于 DirectX 11 的支持和 Mecanim 动画工具,以及为用户提供 Linux 及 Adobe Flash Player 的部署预览功能。
2013 年,Unity 3D 引擎覆盖了越来越多的国家,全球用户已经超过 150 万,Unity 4.0 引擎已经能够支持在包括 MacOS X、Android、iOS、Windows 等在内的 10 个平台上发布游戏。同时,Unity Technologies 公司 CEO David Helgason 发布消息称,游戏引擎 Unity 3D 今后将不再支持 Flash 平台,且不再销售针对 Flash 开发者的软件授权。
2014 年,发布 Unity 4.6 版本,更新了屏幕自动旋转等功能。
2016 年,发布 Unity 5.4 版本,专注于新的视觉功能,为开发人员提供了最新的理想实验和原型功能模式,极大地提高了其在 VR 画面展现上的性能。

Unity 3D 是目前主流的游戏开发引擎,有数据显示,全球最赚钱的 1000 款手机游戏中,有 30% 是使用 Unity 3D 开发出来的。尤其在 VR 设备中,Unity 3D 游戏开发引擎具有统治地位。

Unity 3D 能够创建实时、可视化的 2D 和 3D 动画、游戏,被誉为 3D 手游的传奇,孕育了成千上万款高质、超酷炫的神作,如《炉石传说》《神庙逃亡2》《我叫 MT2》等。

Unity 3D 行业前景广泛,在游戏开发、虚拟仿真、动漫、教育、建筑、电影等多个行业中得到广泛运用。

Unity 3D 在游戏中的应用

3D 游戏是 Unity 游戏引擎重要的应用方向之一,从最初的文字游戏到二维游戏、三维游戏,再到网络三维游戏,游戏在其保持实时性和交互性的同时,其逼真度和沉浸感在不断地提高和加强。

下图为 Unity 官方发布的 3D 游戏 AngryBots 的试玩版(demo)。随着三维技术的快速发展和软硬件技术的不断进步,在不远的将来,3D 虚拟现实游戏必将成为主流游戏市场应用方向。
 

Angrybots游戏试玩版效果

Unity 3D 在虚拟仿真教育中的应用

Unity 3D 应用于虚拟仿真教育是教育技术发展的一个飞跃,如下图所示。它营造了自主学习的环境,由传统的“以教促学”的学习方式变为学习者通过自身与信息环境的相互作用来得到知识、技能的新型学习方式。
 

Unity 3D在虚拟仿真教育中的应用

Unity 3D 在军事与航天工业中的应用

模拟训练一直是军事与航天工业中的一个重要课题,这为 Unity 3D 提供了广阔的应用前景,如下图所示。

美国国防部高级研究计划局(DARPA)自 20 世纪 80 年代起一直致力于 SIMNET 的虚拟战场系统的研究,以提供坦克协同训练,该系统可连接 200 多台模拟器。

另外,该系统利用 VR 技术,可模拟零重力环境,以代替现在非标准的水下训练宇航员的方法。
 

Unity 3D在军事领域中的应用

Unity 3D 在室内设计中的应用

Unity 3D 引擎可以实现虚拟室内设计效果,它不仅仅是一个演示媒体,而且还是一个设计工具。它以视觉形式反映了设计者的思想。

在装修房屋之前,首先要做的事是对房屋的结构、外形做细致的构思。为了使之定量化,还需设计许多图纸,当然这些图纸只有内行人能读懂。

虚拟室内设计可以把这种构思变成看得见的虚拟物体和环境,使以往传统的设计模式提升到数字化的所见即所得的完美境界,大大提高了设计和规划的质量与效率。

虚拟室内设计方案应用 Unity 3D 引擎进行开发,设计者可以完全按照自己的构思去构建和装饰虚拟的房间,并可以任意变换自己在房间中的位置,去观察设计的效果,直到满意为止,既节约了时间,又节省了做模型的费用,如下图所示:
 

Unity 3D在室内设计中的应用

Unity 3D 在城市规划中的应用

城市规划一直是对全新的可视化技术需求最为迫切的领域之一,利用 Unity 3D 引擎可以进行虚拟城市规划,并带来切实且可观的利益。

展现规划方案时,虚拟现实系统的沉浸感和互动性不但能够给用户带来强烈、逼真的感官冲击,使用户获得身临其境的体验,还可以通过其数据接口在实时的虚拟环境中随时获取项目的数据资料,方便大型复杂工程项目的规划、设计、投标、报批、管理,有利于设计与管理人员对各种规划设计方案进行辅助设计与方案评审,如下图所示:
 

Unity 3D在城市规划中的应用

Unity 3D 在工业仿真中的应用

当今世界工业已经发生了巨大的变化,先进科学技术的应用显现出巨大的威力。

Unity 3D 引擎已经被世界上一些大型企业广泛地应用到工业仿真的各个环节,对企业提高开发效率,加强数据采集、分析、处理能力,减少决策失误,降低企业风险起到了重要的作用,如下图所示:
 

Unity 3D在工业仿真中的应用

Unity 3D 在文物古迹展示、保护中的应用

利用 Unity 3D 引擎,结合网络技术,可以将文物古迹的展示、保护提高到一个崭新的阶段。

首先表现在将文物古迹实体通过影像数据采集手段建立三维实物或模型数据库,保存文物古迹原有的各种形式的数据和空间关系等重要资源,实现濒危文物古迹资源的科学、高精度和永久的保存。

其次,利用这些技术来提高文物修复的精度,预先判断、选取将要采用的保护手段,同时可以缩短修复工期。

通过计算机网络来整合统一大范围内的文物古迹资源,并且通过网络在大范围内利用虚拟技术更加全面、生动、逼真地展示文物古迹,从而使文物古迹脱离地域限制,实现资源共享,真正成为全人类可以拥有的文化遗产。

如下图所示:

利用 Unity 3D 引擎实现虚拟文物古迹仿真可以推动文博行业更快地进入信息时代,实现文物古迹展示和保护的现代化。

Unity 3D在文物古迹展示和保护中的应用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011086209/article/details/116524487

智能推荐

log4qt-程序员宅基地

文章浏览阅读1.2k次。12.4-在Qt中使用Log4Qt输出Log文件,看这一篇就足够了一、为啥要使用第三方Log库,而不用平台自带的Log库二、Log4j系列库的功能介绍与基本概念三、Log4Qt库的基本介绍四、将Log4qt组装成为一个单独模块五、使用配置文件的方式配置Log4Qt六、使用代码的方式配置Log4Qt七、在Qt工程中引入Log4Qt库模块的方法八、获取示例中的源代码一、为啥要使用第三方Log库,而不用平台自带的Log库首先要说明的是,在平时开发和调试中开发平台自带的“打印输出”已经足够了。但_log4qt

第一次参加Android项目(BLE模块开发)_android保存ble设备实体类-程序员宅基地

文章浏览阅读482次。关于xUtils框架导入xUtils包在build.gradle(Module:app)下的"dependencies"加入以下代码:implementation 'org.xutils:xutils:3.5.0'添加权限在AndroidManifest.xml中添加以下代码:<!-- xutils3 需要的存储和联网权限 --><uses-permission ..._android保存ble设备实体类

数据分析之数据预处理、分析建模、可视化_针对实训中某一问题,采用数据分析工具应包含且不限于问题建模、数据处理、数据分-程序员宅基地

文章浏览阅读9.3w次,点赞627次,收藏5k次。概述:简介、思路、发展历程、应用领域、开发流程;数据类型:结构化与非结构化、定性与定量、截面数据与时间序列数据;数据来源:外部来源、内部来源;数据预处理:数据清洗、数据集成、数据规约、数据变换;数据分析模型:对比分析、漏斗分析、留存分析、A/B测试、用户行为路径分析、用户分群、用户画像分析等;数据分析方法:描述统计、假设检验、信度分析、相关分析、方差分析、回归分析、聚类分析、判别分析、主成分分析、因子分析、时间序列分析等;数据可视化:Excel、PowerBI、Tableau、Python;_针对实训中某一问题,采用数据分析工具应包含且不限于问题建模、数据处理、数据分

Android:drawable汇总_android drawable.setlevel-程序员宅基地

文章浏览阅读473次。drawable类型,除了前几篇详细讲解的shape、selector、layer-list,还有上一篇提到的color、bitmap、clip、scale、inset、transition、rotate、animated-rotate、lever-list等等,本_android drawable.setlevel

Java调优—Btrace监控Java线程/方法执行参数、执行时间(Windows)_java有没有可以监控整个调用栈的调用时间-程序员宅基地

文章浏览阅读5.1k次,点赞5次,收藏6次。Windows环境下jvisualvm+Btrace 监控Java程序一、背景 在项目开发中,想要监控程序,我们可以本地启动项目,然后断点调试,可是对于线上的项目需要监控或者调试的时候,就没什么办法,目前有以下几种监控方式:1、通过日志监控。通过代码中写的日志记录,来跟踪程序的执行,但是无法监控程序执行时间2、通过JConsole跟踪和监控程序:参考3、通过Btrace来跟踪和监控程序今天我们要说_java有没有可以监控整个调用栈的调用时间

编写自己的jQuery提示框(Tip)插件_jquery tip-程序员宅基地

文章浏览阅读477次。这篇文章主要介绍了编写自己的jQuery提示框(Tip)插件的方法,需要的朋友可以参考下对jQuery相信很多同学和我一样平时都是拿来主义,没办法,要怪只能怪jQuery太火了,各种插件基本能满足平时的要求。但是这毕竟不是长久之道,古人云:“授之以鱼,不如授之以渔”。为了方便之前没有接触的同学,先来回顾一下jQuery的插件机制吧。复制代码代码如下:_jquery tip

随便推点

使用tfidf加权的word2vec来计算文本向量_文本向量的加权运算-程序员宅基地

文章浏览阅读4.8k次,点赞4次,收藏14次。使用tfidf加权的word2vec来计算文本向量,可以用来计算文本相似度首先根据训练数据计算出word2vec和tfidf_model然后预测每句时,用tfidf_model计算每个词的tfidf再用每个词的word2vec与tfidf相乘,最后取平均得到文本向量这里面有个问题,希望会的同学能帮忙解答tfidf用到了文档频率,训练数据的文档频率可以获取。当预测每个文档时,其他的文档对tfidf模型不可见,那么是如何计算的呢,是用预测文档的tf与训练数据的idf相乘做计算嘛?..._文本向量的加权运算

Ubuntu Matlab 2014b Setup_安装matlab2014b,出现setup停止工作-程序员宅基地

文章浏览阅读1.3k次。1. 先上材料:http://bbs.feng.com/read-htm-tid-8467093.html2.我安装的时候是先把iso文件解压出来然后把解压目录下的 /java/jar/install.jar 用crack压缩包里的install.jar替换 安装的时候可能会遇到权限的问题,用chmod命令增加权限3.安装的时候断网_安装matlab2014b,出现setup停止工作

android--设置TextView部分文字的颜色和背景(高亮显示)-程序员宅基地

文章浏览阅读2.3k次。转载自:http://bbs.9ria.com/thread-234291-1-1.html设置部分文字背景高亮显示代码:复制到剪贴板 Java代码public class HighLightActivity extends Activity { String strs="我的心太乱了,给我点空白。";

【HTML】3,文字颜色、加粗、倾斜-程序员宅基地

文章浏览阅读3.6k次。文字的颜色,加粗,倾斜,一共3个常用的标记用法。

基于ssm的电子病历系统论文-程序员宅基地

文章浏览阅读454次,点赞6次,收藏9次。1.1 研究背景智慧养老是面向居家老人、社区及养老机构的传感网系统与信息平台,并在此基础上提供实时、快捷、高效、低成本的,物联化、互联化、智能化的养老服务。随着科技进步,新型养老方式日趋流行,社会上也涌现出一系列如只为父母设计的电视盒子等高科技产品,提升老人的晚年生活质量,最大程度的解决空巢老人寂寞的问题,是智慧养老,候鸟式养老,信息化养老,中国式养老的新形式。智慧养老经过一年多的良好运营与快速成长,获得了政府、行业、公众及媒体的广泛关注与认可。让老人充分享受物联网带来的便捷和舒适。

Vue-Cropper头像裁剪插件使用_前端 头像截取插架-程序员宅基地

文章浏览阅读1.1k次,点赞23次,收藏16次。官网地址:[_前端 头像截取插架