漫话Unity3D(一)

前言

使用Unity已经有将近半年时间了,尽管项目还仅仅是个半成品,可是Unity差点儿相同玩熟了。这里把使用过程中碰到的问题梳理一遍。不会涉及到太过详细的功能和代码,可是假设开发一个网游又都会涉及到这些知识点,而这样的直击“本质”的“答案”是非常多教学书籍所不具备的。

一、背景介绍:什么是Unity

2013年手游如火如荼,开发了端游页游之外的第三战场。而随着手游品质的逐渐提高(越来越多的大公司開始介入手游领域,手游不管从画面还是内容都直逼端游),Unity開始为越来越多的人所熟悉和认可。  而越来也多的使用Unity开发的游戏创造了收入传奇,Unity 的身价也不断提高。就像Cocos2d-x一样,既是Cocos2d-x成就了大批畅销游戏,也是畅销游戏成就了Cocos2d-x,这是双赢。

Unity是一个3D游戏引擎。在几年之前,人们提到3D游戏引擎基本上是三个阵营:

第一阵营以Unreal、CryEngine、BigWorld为代表,是最高端的商业游戏引擎,特征是高品质、高授权费和高门槛,这样的游戏引擎一般人买不起,买了(或者是下载了破解版本号)也不会用。网上的教程少之又少,除非你在买了这样的游戏引擎的公司,跟着牛x的主程学习一段时间,否则入门都是一件很困难的事情,更不要说玩转它用来做游戏了。

第二阵营是以Ogre、Irrlicht为代表的开源3D引擎。特征是免费、开源、良莠不齐。他们是免费的,这意味着能够省掉相当大一部分投资,他们是开源的,这意味着你哪里看着不爽就能够直接改。开源3D引擎中Ogre应该算是最出名的,由于造就了搜狐畅游的天龙八部。可是不得不说,开源游戏引擎的地位相当尴尬。能够这么说假设你是武林高手的话,那么草木皆可为剑,仅仅要你足够牛x,那么哪个开源引擎你都能够拿来做一个相同牛x的游戏,可是假设你不够牛,或者你的公司里没有足够牛的人(这在创业团队里并不少见),那么还是不要想着拿它们来做游戏了,甚至不要想着做3D游戏。

第三阵营是个大公司自主研发的游戏引擎。游戏引擎决定了游戏公司的生产方式。大公司有钱有时间,能够花费大量的时间和金钱来等待一个必定失败的结果。小公司和创业团队不要想着凑热闹了。

Unity是不同于上面三个阵营的独立阵营。它具备商业引擎的品质,可是授权费相当低廉,个人都能够买的起,更不要说公司了(并且网上还有大把破解资源,你甚至在赚到足够多的钱之前都不须要购买)。它的入门门槛非常低,常常有新闻说8岁的孩子拿这个引擎来写了一个游戏,还赚了不少钱,尽管是噱头,可是也能够说明一些问题。 网上教程和书籍都有非常多,能够非常方便的获取到学习资料。 Unity还创新的创建了Assets Store(资源商店),你能够花费非常廉价的价格(相对国外收入来说,动不动100美元的价格对国人来说还是贵了些,假设DF
GUI的价格是90人民币,那我肯定购买,可是90美元我就望而却步了),购买到丰富的插件和资源(比方GUI插件、AI插件、特效集合、动画、模型等等)。

二、引擎的争论,为什么要选择Unity

常常看到有人问我该用Cocos2d-x还是Unity?或者我该学习Cocosd-x还是Unity?  这些问题并没有一个统一的答案,而我有我自己的看法。

诚然,关于引擎的争论是幼稚而可笑的。牛x 的人用什么引擎都能够做出好游戏,菜鸟用什么引擎都仅仅能写个“Hello world”。可是游戏引擎决定了部门的生成方式,决定了资源和创意的限制,决定开发语言的选择,决定了后面要招什么样的人,它决定了太多的东西,所以一些思考还是很有必要的。我一直有这种看法,游戏开发的方向走对了,即便一開始走的慢些,可是会越走越快,而且能够避免走弯路、走死路。

2012年初,我第一个公司(网龙)的MMO RPG游戏《征服》就移植到iPad版本号,这得力于公司牛b的引擎开发者,他们在非常短的时间内就把C3引擎移植到iOS、android甚至是WP8、html5、flash上了。那个时候就算联网的手游都非常少见,更不要说mmo了。尽管收入还惬意,可是没有大红大紫。手机版本号和中文版本号一直没有放出来。2012年底的时候,我到了第二家公司(天盟),进来没多久我就跟总监说,我们能够把公司的3D MMO移植到手机和平板上面,不会花非常多人力,无论能不能赚钱,我们就算赚吆喝也不亏,把手游mmo
rpg的市场先给占了。可是得到的答复是,我们引擎不支持手机,3D MMO对手机性能要求太高,所以这个不是当下须要考虑的。2014年的今天,mmo rpg和arpg如火如荼......

回过头来再说方向的选择,举个样例,假设一開始选择的是Unity,那么就不会碰到移植的困难。假设一開始开发语言选择的是lua,那么你要招募一个合格的小弟要easy非常多。我们写c++写的熟悉了,感觉哪个语言都差点儿相同,甚至lua由于没有编译报错,反而会碰到非常多不爽的问题。可是不得不说,c++须要注意的细节非常多,写好一个lua 的逻辑要比写好相同的c++逻辑easy太多了。

对于初出茅庐的人来说,应该学习哪个游戏引擎能够更好的找到工作?我个人的观点是学习cocos2d-x,由于如今大多数国内公司还是使用cocos2d-x来开发2d或者2.5d游戏。Unity3D是着眼于不久的将来。 第二个原因是,相比于Unity,cocos2d-x实在是太简单的,学习cocos2d-x你能够更加easy的了解到什么是游戏引擎,游戏引擎在做什么,这样的学习提高是大大优于Unity中的托托拽拽的。

开发游戏跟学习游戏引擎又有点不太一样。如今通常的观点是,开发2D游戏使用cocos2d-x+lua的方式,开发3D游戏使用Unity。大多数情况下,这么说是合理的。这两种组合都有非常多的成功案例。我如今已经熟悉Unity了,而且我想做的游戏是一个3D ARPG,那么毫无疑问我会使用Unity来开发。这个时候即便公司突然说要开发一个2D游戏,我也会使用Unity,由于Unity有非常多专业水准的2d插件,它的资源管理和编辑器功能无比强大。

(第一部分结束了,废话超乎想象的多。之所以在这里结束第一部分是由于第一部分有太多“口水”的东西,尽管我个人挺喜欢看这样的八卦的东西,可是不得不说,缺少料啊,好了第二部分,猛料来了)

漫话Unity3D(一),布布扣,bubuko.com

时间: 2024-11-04 18:30:56

漫话Unity3D(一)的相关文章

漫话Unity3D(三)

八.预制(Prefab) 这个单独提出来,是因为它太常用了.也是Unity 的核心要素之一.原本Unity中的一个物体是你拖拽一个模型到场景中,或者创建一个几何体,或者灯光地形等,然后设置这个物体的偏移.旋转和缩放.然后绑定好脚本,设置好参数.如果想要第二个相同物体的话,复制一份.但是问题来了,如果有一个问题需要这n个物体都进行修改,那么就要操作n遍.这个时候预制就体现出威力了,你可以拖拽场景中的物体到下方的资源浏览窗口中,这样一个新的预制居创建出来了.场景中的n个物体都是通过预制创建的,那么直

漫话Unity3D(四)

十三.MMO的GUI应该如何实现 之前说过Unity自带的GUI系统低效,繁琐. 所以对于MMO来说使用一个GUI插件是必然的选择.如果你的游戏UI比较少,比如切水果.愤怒的小鸟,那么选择什么UI插件差别不大.但是一个MMO的UI非常多,甚至有可能有几百个界面,那么一个好用的GUI插件可以极大的提高生产效率. 我选择的是Daikon Forge GUI,之所以选择这个而不是更有名的NGUI,是因为NGUI细节更多,bug更多,操作起来总是会碰到一些恶心的问题.更不要说早期NGUI恶心的界面层级管

泰课在线的:HTC Vive 基础入门 基于Unity3D引擎

任务1: 关注公众号即可下载本视频教程 任务2: 01-概述 07:08 任务3: 02-HTC Vive设备的安装 08:33 任务4: 03-下载Steam与SteamVR 03:05 任务5: 04-使用Steam VR 调试设备 14:40 任务6: 05-下载Unity3D 03:24 任务7: 06-配置Unity VR开发环境 09:43 任务8: 07-Steam VR插件的基本使用 20:25 任务9: 08-VR开发初体验 07:15 .net大神老师给我扫盲了,从一点没接触

unity3d 项目源码下载链接

2-1 炉石传说 客户端加服务器端 链接:http://pan.baidu.com/s/1dDKY3Fr 密码:c03q 2-2 新仙剑奇侠传 链接:http://pan.baidu.com/s/1b4QVqI 密码:dic5 2-3 unity3d 战斗卡牌<变身吧主公>客户端+服务器源码 链接:http://pan.baidu.com/s/1kUpot51 密码:i02u 2-4 降临OL-U3D全套源码 链接:http://pan.baidu.com/s/1sktLQ5v 密码:we0g

Unity3D 视频教程列表,列表共 91 套

[000001]<Unity3D Platform 中文视频教程>[7课时] [000002]<Unity3D 游戏蛮荒之地教学视频>[15课时] [000003]<Unity3D 坦克克星视频教程>[9课时] [000004]<Unity3D 太空射击游戏中文视频>[17课时] [000005]<Unity3D 切水果视频教程>[9课时] [000006]<Unity3D 精神時光屋>[5课时] [000007]<Unity3

unity3d中的物体,在Scene窗口中可以看到,而在Game窗口中看不到的原因

unity3d中的物体,在Scene窗口中可以看到,而在Game窗口中看不到的原因: 多半是因为物体所属Layer与照相机的culling mask不一致导致的,或者超出照相机的可视范围. 如果游戏中有多个相机,每个相机都有自己的可视范围和culling mask,物体在移动的过程中,进入不同的相机,其可见性可能是变化的,取决与物体所属Layer与当前相机是否一致

unity3d编程日志

2014/4/27 编写脚本的时候,加入了中文凝视,发现console面板有非常多不可思议的bug.查了一下发现是由于monodevelop脚本中文凝视报错,而英文凝视不会受影响. 解决方法:把凝视放在//...//中,bug就消失了. 2014/8/22 unity3d常常会报这种错误:object reference can't add to an instance object.这种情况出现是由于在调用的时候没有找到那个对象,解决方法,加if推断方法推断是否存在.排除异常

Unity3D在Android平台使用嵌入式数据库Sqlite,解决无法找到数据库文件的问题

做一个需要嵌入式数据库Sqlite 的unity3d项目,在pc机上运行良好,需要发布到Android平台上,于是,各种坑爹...会遇到找不到数据库文件的问题.当在pc机上使用sqlite时,当执行SqliteConnection dbConnection = new SqliteConnection("data source = test.db");语句时,如果有这个数据库文件则建立连接,如果没有则创建出这个文件,然后建立连接.当在Android平台上时,扯淡的事情就开始了,总之便不

Unity3D学习笔记之七创建自己的游戏场景

到现在为止我们已经拥有了比较完备的Prefab,已经可以创建宏大的游戏场景,并以第一人称视角在场景中漫游了.这里给大家做个小的示范,建一个小场景大家在创建场景的时候需要自由发挥,做个尽量大的场景出来. 这一系列教程以及素材均参考自人人素材翻译组出品的翻译教程<Unity游戏引擎的基础入门视频教程>,下载链接附在第二篇学习笔记中. 我们以最初的添加了First Person Controller的PFB_Straight为整个场景的中心点来展开.我们先从Project中Prefabs文件夹拖出来