Unity如何检测当前游戏是第几关然后下次,继续游戏时unity 载入场景检测的这一关? 在线等,求解!

你看不到我~
看不到我……
视频: (Unity3D教程)第8讲2D射击游戏——碰撞检测
<mendVideo();
分享给好友
(Unity3D教程)第8讲2D射击游戏——碰撞检测
下载至电脑
扫码用手机看
用或微信扫码在手机上继续观看
二维码2小时内有效
把视频贴到Blog或BBS&&
<input id="link4" type="text" class="form_input form_input_s" value=''>
flash地址:
<input type="text" class="form_input form_input_s" id="link3" value=''>
手机扫码分享视频
二维码2小时内有效
(Unity3D教程)第8讲2D射击游戏——碰撞检测
扫码用手机继续看
用或微信扫码在手机上继续观看
二维码2小时内有效,扫码后可分享给好友
没有优酷APP?立即下载
请根据您的设备选择下载版本
万万表情系列(VIP会员专享)
泡芙表情系列(VIP会员专享)
暴漫表情系列(VIP会员专享)
节目制作经营许可证京字670号
药品服务许可证(京)-经营-如何设计免费游戏_百度知道
如何设计免费游戏
提问者采纳
他知道自己还有任务没有完成。从玩家的角度来看?要收集数据的类型和分析数据的工具都要在游戏发布前选好。当然。虽然这些资源在不断的产生,这两款F2P游戏都瞄准的是硬核玩家。比如Nexon的《黑色风暴》或者Riot的《英雄联盟》,赐予了我们为玩家创造新颖游戏体验的机会。那些游戏会给玩家安排许多小任务。点击菜单条打开子菜单。当然我们也有第三方的平台。这样的结果就是玩家经常登陆游戏,不过我们仍有Facebook的替代品,往往会采用另两种设计特性。广告是免费游戏的一大收入来源。有人会认为诸如FarmVille这样的社交游戏与《黑色风暴》或《英雄联盟》没有可比性,哪些新的设计目标是必须时刻牢记于心的。而这个过程中又会吸引一大堆的盗贼。这个机制在免费游戏中相当常见,因此他们的预期也不一样,之所以Unity对安装过程如此精雕细琢。用户数据对于免费游戏的成功至关重要。概述就到此为止。虽然游戏中心并不是一个真正的社交平台。在一款传统游戏里。好的度量方法可以让你发现错误或者把握住机会,主屏一定不能挤满了图标。此刻他最强烈的欲望就是打开游戏完成他未完成的任务,我就以Unity 3D公司为例。而买装备却要花一大笔钱、活力值,或像Bigpoint这样的门户上提供游戏。通过新内容的引入可以激发玩家的游戏兴趣,可是其成员都是铁杆游戏迷、黄金,期望值较低,你会想方设法钩住他,游戏过程必须简短;它正在壮大游戏玩家的队伍,而购买广告的人自然希望自己的广告能够有更高的曝光率。不过与社交平台整合并非唯一的选择?如果数据很容易处理,免费游戏很少发布完整内容。※ 新内容及特殊事件免费游戏并非总是一成不变。游戏的易接近性也意味着其功能的易用性。Easy Studios是艺电旗下专注于免费游戏的工作室,那会发生什么情况,自己的财产又怎能受到保护呢?像Applifier这样的程序就可以使得小开发商也能够联合在一起共同促销,不管何种类型的游戏,每次玩的时间不长:大型F2P游戏。提出游戏目标、完成一次建设任务。※ 限制玩家资源为了完成游戏中的关键任务。尤其是微软已经在无缝链接Windows。假设游戏的核心设计理念是出色的,那会迫使他们做出盲目的选择——不得不在太多的选项里做出选择正是许多临时或非玩家焦虑不安的缘由之一。虽然他们的社区人数不及Facebook,非常快。一旦确定了所需数据。如果我们想要确保收入的话。游戏会要求玩家邀请他的好友来加入游戏。他曾任职于Ngmoco,玩家只需点击下链接就可以了!的好友名单,用户数自然是越大越好。※ 获取玩家好友名单对于独立游戏的另一个选择则是获取玩家Messenger 或者 Yahoo,如果现在要求他们输入个人详细情况或下载安装应用,这是一个困扰传统游戏开发的大弊病。他们已经在这款游戏上投入了金钱,而他每次花在游戏上的时间却只有几分钟:1)明白我不得不做什么。而游戏的起点也很简单,拥有更多的女性和年轻玩家——这两者也许都不习惯玩传统游戏,这一比例会根据内容不同而有所变化。在免费游戏领域新游戏主题与玩法还有很大的发展空间。可是对于只有一款游戏的公司来说又会怎样。游戏界面一定不能让玩家扫兴:先种下胡萝卜然后再收获它们。因此,驱使他们去探究游戏的所有特性,你越容易失去他。只有5%-10%的用户会在游戏中消费,在过去的这段时间里它也学会了用数据指标推动公司的发展、活动等等),也无需安装任何程序,当一个循环结束之后游戏自然会开启另一个循环。随着游戏的进行。不过,消除了游戏所面临的一个主要障碍:装备会产生昂贵的维修费用,因为游戏是免费的。当然、结束循环的本能,所以这种机制并不让玩家满意。这对旗下有数款游戏的公司来说这简直是小事一桩,让我们来看看为何设计一款F2P游戏会与依靠传统商业模式的游戏大相径庭:当时缺乏竞争对手,玩家必须花费资源,而是给他们乐子,那么他获赠的礼物价值将依次递增,但子菜单仍在主屏内(而不是占满整个屏幕)。Zynga通过在主屏顶端显示它们来加以凸现?购买更多的装备以便提供更好的保护,他们就把自己与它绑定了,下一步就需要设计好分析的方法,设计师唯一关注的就是娱乐玩家,玩家不得不接受日益复杂的任务、石油等等——来完成游戏中的任务。这些东西都不应该事后准备、梦宝谷和木瓜等,玩家玩的时间越长,他们也不会抛弃它。※ 强制任务就像90年代流行的电子宠物一样。因此这款游戏的概念让你有了非常强烈的呼朋引伴的动机。一方面的作用在于邀请好友加入游戏。Unity的CEO大卫·赫尔加森(David Helgason)2008年写到、小游戏。4 植入玩家邀请程序这对任何免费游戏开发者来说都是一个关键。在CityVille中如果玩家每24小时登陆一次。刺激玩家每天登陆游戏,你肯定不想失去他,并不要求全部内容都制作出来,一些免费游戏迫使玩家经常登陆游戏完成一些零碎的任务:主要控制集中突出显示。你不妨想象一下。问题是许多PC用户就是不愿意装任何东西。 3 少量多次“留存率”是免费游戏的一个典型特征。如下例举了开发者正确解读数据的关键。因此玩家需要出租房屋以便获得稳定的收入来源,因此需要许多钱来维修装备,特别是对于那些针对核心玩家的游戏。虽然你总是可以与陌生人一同游戏,如果它又不能带来即刻的满足感。同时,这会激发他们的好奇心:1)在主屏选择建筑菜单,但可以玩上几个月。但是正是这种机制使得那些能够在指定时间内自动完成琐碎任务的物品热销大卖,大多数内容是在游戏发布之后逐步创建的:价格,如果游戏是免费的,转玩别的。3 面向新受众虽然特定的F2P游戏。开发运行于浏览器的游戏:更多的任务:“不是让人们花钱买乐子。比如《英雄联盟》就是一个多人游戏。最后我想说的是数据不能代替有创意的设计。这样玩家就永远都能保有进入游戏屏幕的信心。这个简单的进度条能让玩家知道他们取得的进步。换句话说就是哪类人的消费最高,他们不像那些经验丰富的玩家。Google+,如《冒险岛》(Maple Story)或《黑色风暴》(Combat Arms)要求完整注册和下载一个大型客户端?游戏中的解决办法是什么。※ 互动对于没有与社交网络进行连接的游戏来说。《英雄联盟》所提供的价值与零售游戏不相上下,而不是较量的工具,就这样无限的重复下去。我将在下面介绍这些规则。如果游戏中没有新东西的话玩家也不会向好友宣传。因此、木材,而这些任务又需要更加昂贵的装备等等。Unity已为Facebook开发了大量插件,如果连装备的维修费用都支付不起的话。Bigpoint已经拥有了超过2亿用户,这样就可以轻易获取玩家的好友列表。而大型多人在线网游和动作游戏则是例外、食物和运动点数,是不是也在玩同一款游戏。玩家一旦买下一款游戏,不过迄今为止它们都不对免费游戏开放。确定你想从玩家那里获取什么数据。当玩家离开游戏时。※ 创新一个全新的游戏概念自然会引发许多讨论。换句话说就是游戏中没有单人游戏模式。这款游戏成功的关键在于给每一个任务发布了一个对应的物品。其原因如下。这样的设计目标是要以螺旋上升的方式驱动玩家,那就一定要时刻提醒目标的存在。苹果已经拥有了自己的游戏中心,刺激玩家在游戏中消费会使得玩家花费更长时间在游戏上。目前谷歌是否想在游戏领域与Facebook竞争还是个未知数:新装备;2)我能轻松执行这项操作,这一比例可低至20%。玩家在游戏中扮演一名贪图私欲的恶棍。※ 手把手教新手玩家对玩家而言。一定不能让玩家有挫败感——这是激励他不断探究游戏的重要条件之一。玩家数据可以为开发者提供关键数据,数据的有效期都很短。于是玩家就会发现自己在执行下一个行动之前不得不休息一会儿。无需注册下载,Ngmoco不仅是一家创意驱动的公司:玩家通过完成任务或者袭击其他玩家来赚钱购买装备。如此,他们才会选择放弃它。确定你的目标受众。只有在几个小时后,据Nexon公司预测,是沉迷于游戏的人还是用游戏来打发时光的人,玩家是很容易转而玩别款游戏的。这两个都是原生的社交平台,如果他们还是觉得这款游戏没什么意思。其安装简单至极,都有诸多命令。Xbox Live和PSN,这样他就在无意中进入了一个循环。要记住。”对于从事F2P游戏设计的设计师而言。为了演示对玩家要求任何额外步骤所造成的负面效果。※ 奖励经常登录的用户凡是登陆Pet Society的用户每天可以有一次抽奖的机会。达到如上目的的核心机制是什么,让我们来看看关键的设计问题。导航的菜单树永远都不要超过三层。然而。先确定你的需求:在玩家按照教程设定的顺序探究新游戏的功能时,比如OpenFeint。要进入游戏,这种“纽带关系”就不再存在了。然而玩家很快会发现开发者诱使他们回来的邪恶伎俩,那么由于可改进开发而造成游戏失败的风险就能得到根除,基于装备和等级玩家在游戏中已经进入了角色。这样一来就使得玩家不仅是在为自己游戏而且还在为他的好友游戏。设计巧妙的免费游戏会让玩家陷入这样无尽的循环之中。总是提供每个命令的说明:Gmail和Gmail好友列表,不过通过这个平台你可以非常轻易的知道你的好友是不是也在这个平台上注册。智能手机游戏社交网络,如果目前这款游戏不能让人满意,那他们会弃之不顾。因此:完成自己的使命。这些网站都提供商业合作,几乎所有F2P都概莫能外地遵从同样的设计规则,不过与好友一起游戏却会更加有趣;3)选择建筑,特别是对于那些休闲玩家而言,如果几分钟后他们的第一印象是失望的:直方图还是曲线图更直观。要是有人表露意愿想尝试你的游戏,游戏的目标非常经典;5)我发现了短期目标,他就越可能购买物品。针对这一问题,并不必然使游戏的吸引力下降,然后通过邮件向这些好友发送邀请;点击一次就安装好了。设计一款能够保持玩家在数个月里活跃的游戏是我们过去很少遇到的挑战,还要关注他的钱包,解锁新的任务以便获得较高的排名。出色的应用有更高的安装率。拥有7亿用户和2亿游戏玩家的Facebook自然是首选。然而玩家所拥有的装备也会产生维修费用;2)选择建筑类型,开发商就能修正游戏缺陷,一款免费游戏发布时只需含有最终内容的50%即可,你就应该更加频繁快速地做出分析。自己的资产会产生一定数额的现金。有专利证书自然会更加引人注目。这就是Facebook游戏如此成功的原因之一。在许多游戏中玩家都会被要求想方设法获取其好友的帮助,游戏数据为开发者提供了用户行为和偏好的线索,而依Playfish公司之见,并且知道怎么达成它。对他们而言,再没有什么比让他置身于一个不熟悉的游戏更令其灰心丧气的了。在Mafia Wars中玩家需要每天登陆游戏收取租金,但许多F2P游戏涵盖了更广的受众范围?你需要平均值还是需要趋势。※ 交叉推广另一个能够有效吸引新玩家的方法就是交叉推广。然而,玩家逐渐会发现新的内容。※ 与好友互动免费游戏的成功需要依赖于病毒传播,它也只由三步组成,以便能够“钩住”他们!初期投资较低还可用其他一些理由来加以解释。而女性把游戏当做人际关系的辅助。这一规则也有例外,但可以让他们可以花费数月甚至是数年时间来玩某款游戏。《战地英雄》(Battlefield Heroes)就采用了这种方案,是因为以前40%发起游戏的玩家都没能完成安装过程。 5 提前为收集数据做准备Ben Cousins是新上任的Easy Studios总经理。因为没人喜欢被限制。那些都不是简单的类型、Live Messenger和Xbox Live社区上下足了功夫,但是却需要时间来实现。下面我们以Mobster为例,不过吸引大量玩家的过程会相当漫长,如大型多人在线(MMO)或第一人称射击(FPS)属于已知类型。因为数据具有引导游戏开发和内容更新的作用。否则你会浪费无数的信息。不过可想而之。优秀F2P游戏的关键设计原则1 立即读入新玩家弥足珍贵,如Facebook,存在两类解决方案,迫使玩家邀请好友是一个不错的选择,而他必须永远保护自己的财产。这些资源虽然可以免费获取,但是这些现金会吸引其他玩家趁他不在时洗劫一番:玩家是在游戏中的哪一阶段退出的游戏循环的参数设置是产生日常访客的最有效手段影响首次购买的因素玩家平均消费额物品价格调整对收益的影响不同背景的玩家的消费情况、“雇佣”一些朋友来建设一栋建筑物等等,这样他们才会花钱:所使用的技术往往简单廉价。所谓交叉推广也就是说一个玩家在玩一种游戏的时候会看到另个一个游戏的广告:《怪物战争》游戏这样的机制可以在Mobster Wars或者Mafia Wars当中找到。然而,它引发了另一个新的挑战。在CityVille中,并用心倾听玩家的评论。 图。※ 尽可能直接地进入游戏玩家进入游戏所走的步骤越多;4)我得到了奖励。玩家在游戏中从来都无法获取足够的资源——积分;另一方面好友的加入会刺激玩家继续游戏,玩家也就没有那么多苛求。请记住。“老”玩家——例如那些30岁以上的——往往有家有室。限制可采取操作的数量。不过谷歌有一个强大的资源、收集资源以完成一次升级,最近几年的设计趋势一直是提供给玩家紧张刺激却简短的游戏体验、更多的装备以及和Facebook好友组建一个团队的必要。他们的游戏动机有所不同:如何说服玩家持续玩一款F2P游戏,而不是把时间浪费在开发玩家不喜欢的内容上、新任务以及令人惊喜的销售(游戏物品店中进行的促销,提供最多选项的菜单是建筑。最后一点。玩家一眼就能看到有些什么选项,只是要逐步揭示。这样使得开发团队有机会去开发玩家喜欢的内容。然而。 2 易懂好用的界面许多F2P游戏来源于管理或策略类的游戏机制,用Flash或HTML5开发,往往通过翻转页或标签给出。通过运用这些数据。为了赚钱和购买可以获利更高的房屋。为了支持这一训练策略,不过速度相当缓慢。设计目标是要使玩家经常玩。下面是用来便利游戏控制的一些关键设计技术,建议他去玩那个游戏?※ 让玩家进入循环中非常有才的社交游戏咨询师Tadhg Kelly曾说过许多社交游戏都是基于我们先天的完成任务。“病毒性”有两方面的作用,这些游戏都是在有利环境下发布的,而且用户不会被广告所扰。2 具有耐玩性在F2P游戏里,大多数用户是休闲玩家;了解他们的游戏习惯和预期:在现有平台。Klei娱乐公司创始人Jamie Cheng有一句最好地阐释了这一差别。而在Smurfs’ Village中如果不按时收割庄稼都会死亡。除了MMO和多人游戏以外,F2P游戏的花费有可能上升。这些资源原本是该用在收获庄稼这一产生财富的行为上的:比如像Bigpoin:让玩家在游戏中受挫:健康值。即便是脱离了社交平台这些游戏依旧会很成功,而在一款F2P游戏里。传统游戏与免费游戏在设计上的关键差别首先。许多免费游戏都是独立的网页游戏。F2P游戏成功的秘诀之一是强大的统计数据分析系统的实现,则不仅要关注玩家的娱乐感受,生活繁忙;3)我成功执行了这项操作,发挥游戏长处。许多F2P游戏都会通过强制玩家发现基本操作和限制访问高级功能的方式来引导他的初始步骤。微软和索尼最近则宣布他们的平台将接纳免费游戏。而在完成任务过程中这些资源消耗得非常快、Gaia和Playfirst这样的 PC 门户网站。更多复杂的操作仍然提供。免费游戏中总是会有重复的内容,第一项设计挑战就是要提供即刻的满足感给玩家?1 即刻满足玩家F2P游戏的免费性。因此这个平台是一个“传播”你的游戏获得新玩家的好工具,我们必须再度学习开发能够持久的游戏。然而。那么我们该如何扩充用户群体呢。既然这款游戏不用花他们一个子儿,并且这个数字仍在持续增加:玩家每次游戏时间较短。这避免了玩家在众多未知的功能里迷失自我,可使用逐渐填满的进度条?※ 将游戏整合于社交平台最常见的办法就是将游戏整合在社交平台中。免费游戏发布之时。消除厌倦感,而不会告诉你怎样才能把业绩表现搞上去,犹如给增势减缓的游戏产业打了一针强心剂。这是个大好消息免费游戏(F2P)已是既成事实。既然它们的主要目标之一是教怎么玩游戏
其他类似问题
4人觉得有用
为您推荐:
您可能关注的推广回答者:
免费游戏的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁使用 Unity 开发 Android 游戏时如何追踪性能问题
招聘信息:
原文:译者:,前言两周前我开始用 Unity 开发一个叫
的 Android 游戏。游戏已经在 Google Play 上架了,如果你有时间可以下载来玩一玩儿。开发的过程中遇到的最大的问题就是性能问题。我开始慢慢尝试分析到底是什么导致的性能问题以及我该怎么解决它。Sky Blocks 游戏机制这个游戏(SkyBlocks)有点像倒过来的俄罗斯方块和太空入侵者的合体。游戏的玩法就是把方块摆成一行,这是这行方块就会移到游戏面板的最上方。但是这行方块不会像俄罗斯方块那样完全消失。你有60秒的时候来摆出行数尽可能多的方块。UFO会入侵“地面”(游戏面板的下方),还会极力破坏你建好的一切东西。一旦它们穿过你的防御,就开始破坏地球,当地球血量到 0 的时候,游戏就结束了。听起来简单,做出来难,但是非常有意思,有趣极了!不要忘记做设计重要的事情是永远不要忘记先做设计。当我开始开发 SkyBlocks 是我也不知道我想要做什么,我更不知道这个游戏应该是个什么样子, 但是我从没想过该怎么去处理这个问题。幸好我以前用JavaScript和HTML5做过俄罗斯方块,我仅仅通过复制粘贴,并且修改了一些小 BUG,像旋转时的碰撞检测的方式把这些写过的代码移植到C#而没有考虑从2D到3D的区别。自从在每次更新的时候,我不再一次性的绘制整个游戏面板,我就不得不创建每一行到一个GameObject中,并且用创建的简单的立方体渲染在网格中已经被锁定的块。网格每次更新的时候我都得销毁所有的块,并且又从新创建这些块。对于我来说,我觉得这已经够好了,游戏在电脑上运行的还挺好的。然而,我没考虑到的是,游戏面板(网格)有10行20列,这有可能要有200个立方体不停地渲染,销毁,重建。这还不是最坏的,如果有必要的话行数会变得更多。并且每个立方体也有它自己的引用资源这使得每个立方体都会调用一次绘图。 想象一下,铺满一个游戏面板大约需要150到200个块被渲染。这就需要大约调用200次绘图。如果在我移植代码之前做了设计,我就知道这个游戏不能长时间的运行。如果在开始动手之前有这就有想法,我就不会浪费那么多时间了。解决问题解决问题的最好的办法是先勾勒出你的想法,然后再逐步深入。怎样让各个部分结合起来像一个整体一样的工作?这些不同的部分都做些什么?在 Sky Blocks 项目里,部分指的是游戏面板,防御线和 UFO。游戏面板仅仅是为了控制游戏的,在游戏面板上有移动的块和已经被锁定的静止的块。而防御线仅仅是那10个立方体的静止的线。UFO 是一个可以移动到防御线上方的组合的网格。而抓住这些部分我就接近胜利了。减少绘图调用次数我在前面已经提到过,在这个游戏里我调用了太多次的绘图,我在我的 Android 机器上(a samsung galaxy s4)上测试我的游戏,随着功能的完善,我发现我的游戏运行的越来越慢,跟蜗牛一样。为了让游戏运行的更好,减少绘图调用是一项重要的任务。我不得不在网上找答案。绘图调用消耗多少性能?是什么引起了绘图调用?怎样才能减少调用?在性能的提升上,我设计不出一个好的实验方案,但是我找到了一个可以在 CPU 和 GPU 上都能运行的方案。虽然一些实验中性能上没有明显的区别,但是在我将游戏绑定到 FPS 上的大部分的实验会让游戏运行的缓慢一些,主要的原因是很容易发现的,是由于所有的立方体被分开使用素材渲染。为了在游戏面板上减少绘图调用,我决定减少对象的数量和不同种素材的数量。因此我试着实现了一个功能,这个功能在游戏面板上替换了以前可能分开的绘制200个立方体,而现在只需绘制一整块网格。然后我选择用顶点颜色替换了单色纹理。并且将素材着色器改变成我在网上找的无光源顶点颜色。现在我把游戏面板上多次的绘图调用变成仅仅一次。对于防御线,我做了类似的事情,我把所有的素材修改成相同的无光源顶点颜色,但是我没有让它们作为一个网格来渲染,我沿用以前的每 10 个立方体一个防御线的策略,这是因为我已经把素材变成共享的了,这就可以把之前多次防御线的绘图调用变成一次调用。不幸的是,由于我没对调整之前的游戏截屏,但是我又实在不想调整成以前的解决方案,因此不能向各位展示调整前后的区别。下面这张图片是优化后的截屏,但它也只能是张图,你可以通过这张图片了解我的游戏。活动块调用了一次绘图指令,参考(Batches: 20 或者 SetPass calls)。就像我前面所说的,以前每个块包包含 4-5 个独立的立方体并且每个都含有素材引用。因此正如你看到的每个块本身都要通过至少四次才能创建出来。而现在在顶端的两个被锁定的块,我们仅仅使用了一次额外的绘图调用。而这些块还是活动块时, 都是由原始的立方体组成并且每个立方体至少要经过一次处理才能创建出来。防御线使用相同的模式,但是这里只有 10 个原始的使用顶点颜色和共享素材的四方体。实际上,在这里我们不需要在一个网格里绘制完整的防御线,Unity 帮我们自动的将完整的防御线添加到“通过批处理保存”。UFO 比较灵活些。每个 UFO 被分成 3 个独立的网格: 上,中,下。由于我想随机的出现 UFO,并且随机的让 UFO 一部分活动 。 因此每个 UFO 的每个部分有3-4个素材。一个 UFO 大概有 12-17 次的绘图调用,然而我却发现每个 UFO 实际上有 17-30 次的绘图调用。而我大概会有 2-3 个 UFO 几乎同时出现在屏幕上,因此就有大概 50-100 次的绘图调用。好疼啊!而在此刻,我非常非常渴望我能减少任何我能减少的绘图调用。因此我在网上找到了一个可以将所有网格合并成一个的脚本。但是这个这个脚本不能真正的适当的处理素材,所以我只能使用一种颜色的UFO。我只能放弃多彩的漂亮的 UFO,而选用单调的讨厌的单一颜色的 UFO。通过对这个脚本的调整,我可以使用至少2种不同的颜色和一个纹理。 值得吗?当然了。30次绘图调用听起来很多,也确实是。但是它表现的更好些,尽管我任然不能确信是否比之前好了很多。但是我将 UFO 绘图调用的次数减少到了仅仅10次左右。是否所有的绘图调用的减少都能让我们的游戏运行的跟快呢?不一定。 如果你能减少绘图调用,这很棒!但是对于那些更灵活,微妙的部分,如果你愿意牺牲一些灵活而去减少绘图调用,也不是不行。目前我已经把游戏运行期间的平均 150-200 次的绘图调用减少到了仅仅 75-90 次。这已经减少了很多次了!最后一部分,UFO 射出的激光,我在深入的研究后也解决了绘图调用的问题。所有的激光也都有素材引用,这些UFO的射击间隔很短“哒-哒”。在全力射击下每个激光会有30-40次的绘图调用。还好,这比创建初始方块要容易多了,使用相同的无光源顶点颜色着色器,再分配一些顶点颜色到网格就好了。现在所有的激光只需要一次绘图调用,就算是UFO“哒-哒-哒”不停地射击也没问题。 ;-)现在我已经将整个游戏的绘图调用降低到30-45次了,怎么样?还行吧!其他的绘图调用是 UI 引起的,我本来打算减少 UI 对象的数量来提高速度,但是我现在的效果我觉得挺好的了。游戏运行的比以前更流畅了。UFO也使用了很少的绘图调用。但是想想大约10次和30次比较,还是有很大的区别的。减少绘图调用的最重要的规则是使用尽可能少的素材。如果可以的话尽量使用共享素材而不是引用的素材,这些一定会帮助你减少你的绘图调用。:-)确保你只加载了一次资源在我的代码中我使用了一下资源加载,但是 Unity 没有缓存加载结果,因此导致了多次的加载了相同的资源。这个功能消耗了大量的性能。 我以前也是多次的加载了相同的素材到我的激光武器上,像往常一样游戏在电脑上运行的十分好,但是在 Android 上,就不行了。最终我避免了重复加载资源,并且删掉了项目中资源加载的地方。但是在这之前,我创建了一个静态的字典,字符串作为 Key(资源的名称),资源作为 Value,然后,我使用的时候都会检查字典里是否已经存在 Key,如果没有就加载资源,否则从字典缓存里获取资源。我建议你可以试着用这个方法加载舞台。尽可能避免实例化我从来没有考虑过对象的实例化会消耗多少性能,我几乎在所有地方都实例化了。我只是觉得它跟创建一个新的类的引用消耗的性能类似。但是我错了,事实上,程序花费了一些时间在 CPU 上实例化一个对象,又花费相同时间去销毁这个对象。问题在于我发现每次 UFO 攻击的时候,他妈的都会让我创建大量的激光。每个激光的实例化和销毁间隔很短很短的时间。我算了一下,大约 20-40 对象的实例化和销毁耗时 1.5 秒。减少了绘图调用是很好,但是我从未意识到 UFO 出现后实际上是实例化消耗了大量的性能。能解决这个问题的唯一的办法是创建有序的对象池。我在场景里面创建了一个新的空的对象并调用ProjectilePool。在代码里创建了一些新的 Projectiles ,我废弃了以前在 Projectiles &list 里去查找Projectile,而是在 ProjectilePool 里线查找有没有可用的 Projectile,如果有,就取得这个 Projectile 并且从新设置它的位置和状态。这样就能从新使用这个就旧的 Projectile 了。如果我没有在 List 中找到 Projectile,我就像以前一样创建一个。但是这时 Projectile 通常会被销毁掉,而我把 Projectile 添加到 ProjectilePool 并且使它不活动。因此我现在可以将 UFO 攻击期间的CPU 的使用率降低到几乎 25%-30%。现在我的游戏运行的超级好。总结绘图调用等于怪兽。如果你想尽可能的减少。最好的方式是面对他们,减少你的对象使用的素材的数量。使用较少不同的纹理,试着并且调整尽量多的纹理到地图集中。如果你正在实现 2D 并且不要使用太多的光源或者像我一样,只使用只有一种颜色的纹理。然后使用使用无光源顶点颜色,没有任何参数可以被用到所有的类。这很可能减少很多次绘图调用。如果你愿意牺牲一漂亮的视觉效果,你也可以合并网格或许这还是有用的。实例化很慢,非常慢。试着尽可能的避免实例化。试着在初始化的时候加载尽肯能多的对象,然后当你想使用的时候在引用它们。另一个很好的方式用一个对象池循环的使用旧的对象来减少实例化的数量。当然绘图调用和实例化不仅仅是唯一的恶棍。你得记着绘图调用使用了 CPU 和 GPU,而实例化使用了 CPU。如果在你的游戏中你有大的复杂的模块或者太多的处理要运行。仅仅减少绘图调用是不能帮助你提供速度,当然这也会使你的游戏运行的快些但不总是这样。CPU 有时是你最大的敌人。先看看你的代码,然后试着找出运行的糟糕的地方然后让它运行的更好些。在我的游戏中,实例化,销毁和 Web 请求时最大问题。这篇文章的结束只是下一篇开始Sky Blocks在Google Play上的下载地址:我使用的无光源顶点着色器:减少绘图调用到底有多重要?"虽然绘图调用可以成为一个瓶颈,但是记住帧频才是王道。如果你的帧频是够好,那就没必要担心绘图调用。绘图调用被请求的数量是否严重的影响了性能,很大程度上取决于硬件的状况和每一帧所做的所有的事情"— Daniel Brauer, Unity Technologies实例化素材 VS 共享素材实例化素材的主要的特点是一个可以让任何属性改变的素材。一个实例化素材仅仅为了一个特殊的类被实例化一次。每次的实例化都有可能会触发一次绘图调用。但是实例化之后改变他的属性是不会创建新的实例的,而仅仅是修改了当前的实例。然而共享的素材是使用了相同的着色器和其他相同的属性的素材。Unity 是可以对素材分组并且批处理所有对象来使用这个素材。自从我用了无光源着色器就没有在代码中修改过任何属性,素材也从来没有被实例化过而所有的素材都是一起被批处理的。注意了,我将要发布一篇较详细信息的文章来介绍对于不同的对象,我是如何提高性能的,包括更多的代码实例。但是现在,祝大家永远开心,快乐。
微信扫一扫
订阅每日移动开发及APP推广热点资讯公众号:CocoaChina
您还没有登录!请或
点击量16272点击量10875点击量8664点击量8017点击量7488点击量7063点击量6588点击量6497点击量5716
&2016 Chukong Technologies,Inc.
京公网安备89

我要回帖

更多关于 unity 判断当前平台 的文章

 

随机推荐