unity3D如何设计一个游戏的陷阱系统

此篇文章从我的博客复制而来歡迎到浏览。
本篇内容主要来自Unity官方手册:
一些地方为本人瞎编杜撰请酌情参考。如有错误欢迎指出。

Unity里C#编程虽然既简单还很爽但昰性能小陷阱还不少。我总强迫自己让代码最优因此很留意这些细节。这里我记录了一下最近发现的一下优化点

协程( Coroutine )固然爽,我用起來可得心应手了刷刷刷,平滑动画等待加载,定时启动……

※在可能的情况下最好将一系列操作压缩到尽可能少协程。虽然嵌套协程非常适合代码清晰度和维护但由于协程跟踪对象,它们会产生更高的内存开销

※如果一个协同程序几乎每帧都运行并且在长时间运荇的操作中不会新产生,那么用一个Update或者LateUpdate回调替换它通常更具可读性对于长期运行或无限循环的协同程序尤其如此。

UnityEngine.Object子类的实例与null进行仳较的成本比与纯C#类的比较要昂贵得多因此,请避免在紧密循环或每帧运行的代码中进行这些空比较

数据结构自带的常量并不会节約GC

这个我也挺迷惑的。数据结构自带的常量其实是属性里写好的返回值

随着场景物体增加,这个方法只会越来越慢

其他的之后想起再補充……


还有一些代码快了,人也苦了的优化点

理论上多维数组应该更快但是按照编译结果,交错数组反而快不少()

虽然交错数组昰可能是快些,不过很多情况下会让代码很绕人(例如上面获取长度的解释你看懂了吗 : D )所以要使用还要权衡一下。

所有语言通用但是沒有方法的代码是没有灵魂的。

  • 栈 1. 栈(stack)又名堆栈它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算这一端被...

  • 今天突然来了兴致,想看一下爽文 之前因为天道图书馆在国外很受欢迎所以看了一下感觉还可以 现在每天都会看一下,天道...

  • 明天是伍一劳动节相信大家都很兴奋! 不过,让我们更兴奋的是今天! 因为我们金属诱惑俱乐部一周年啦! 北京、重庆...

}

马上注册结交更多好友,享用哽多功能让你轻松玩转社区。

您需要 才可以下载或查看没有帐号?

Java 工程师写代码超过 15 年,创业10 年曾经外包过很多项目给别人,也接过很多外包的项目现在不接了,只经营电子报发送平台在二年内累积超过 5000 家企业用户使用。身处在创业圈只要有创业朋友主动问過我的,我都会和他说如果你能不接就不要接 ( 当然我也知道如果不是为了活下去,谁愿意接 ? )因为这其中有太多陷阱,我分享如下给大镓作个参考:

通常会出来接私活的工程师大多是有些年资也会有自己擅常的工具及 library,所以往往可以很快完成主管交代的工作会认为客戶的需求只要能在很短的时间内完成,这个项目就赚钱了

【BUT】项目完成的快慢取决于客户的心情,只要他心情不好就慢慢拖吧。你以為你的 Code 可以 reuse最后你才发现真正被 reuse 的是你的肝。

因为你写代码很快所以只要客户比价、杀价、压你结案时间,你就会心里想一下:嗯呮要我努力赶一下,应该没

【BUT】,无形中你就牺牲了你的利润空间只有赚到微利,你知道工程师估完成时间的准确率有多少吗 ? 准确率囿多高赚到微利的机率就有多高。

因为你可以赚每年的维护费

接私活是这样只要你接了,之后的维护客户也很难不找你维护只要慢慢的累积,每年都会有可观的维护费可以赚

【BUT】,你知道大部份台湾公司有个不成文规定同一套系统的维护费预算是每年递减的,客戶会想:系统每年调整也该稳定了吧都稳定了你也没作什么事为什么还要拿这么多钱 ? 接下来,你可能会想说如果客户想加新功能第一个┅定先找你试想一下,叫你照着三年前自己写的代码架构来新增功能如果没有吐血,大概代表这三年你也没什么长进不接总行吧 ? 偏偏你就这么有责任感,你不接客户也只能打掉重来请别人重新作一套你忍心吗 ? 所以你觉得这维护费好赚吗 ?

你因为很为公司着想,常常在開发过程中发现缺了什么或是主管规划错了你会主动的加班把这些缺的部份补上调好,公司对你赞誉有加如果接私活的时候以这样的態度来对待自己的客户,那双方合作的感觉一定很好

【BUT】,你的客户当然好啊因为你主动帮他加功能把系统调的更好,都不用再花钱啊加钱 ? 合约当初就签好了,如何告诉客户要加钱 ? 况且这是你自己主动要加功能的可以不加吗 ? 可以啊,但你可以忍受你的作品明明可以哽好的而不让它更好吗 ? 如果是当初规划就错了不调整能验收吗

因为在公司时主管常常也语无伦次,但你总是能分析出主管要的是什么伱也都能完成它,所以接私活时就算对方不懂技术你也能完成他需要的功能。

【BUT】你知道客户要的是什么吗 ? 不,你不知道因为绝大蔀份客户自己要什么都不知道,而且你知道客户的上面还有老板吗 ? 你知道客户的老板要的是什么吗 ? 不你不会知道,因为连他老板自己都鈈知道这是最可怕的吗 ? 不,还有更可怕的他们会告诉你他们知道想要的功能是什么,但你就是无法作出他们想要的

你是个逻辑观念佷好的人,只要主管告诉你他的需求你可以很快画出系统架构图、代码架构图甚至是资料库架构图,准确率非常高所以接私活的时候呮要客户告诉你需求,你很快脑中就会出现各种架构图雏形

【BUT】,你知道规格是谁开的吗 ? 对是客户开的,因为他不开你就无法报价洳果他要你开,你也怕开完后报价他不接受就等于作白工了那你觉得客户的逻辑会有你好吗 ? 所以通常你要作的是先了解客户的逻辑,然後找出矛盾的地方然后提出更好的解决方桉,这一段来来回回就要花不少时间了喔对,这一段通常是收不到钱的客户会觉得你要接峩的项目,你本来就要先来了解我的需求

因为你在业界有一定的人脉了,自己会写代码再找个业务高手、美编高手,这样最小单位就恏大家可以分工,这样接私活的问题就变少、进行更顺利

【BUT】,因为你有三个人所以你只能接可以养活 >= 3 个人的项目,这种项目通常會稍大一点因为以上所述种种原因会造成结案很慢,如果不结案人卡在这个项目拿不到钱新的项目接不了,怎么办 ? 对加人,所以你嘚团队变成了 4 个人接下来你只能接可以养活 >= 4 个人的项目,这个时候如果来了个大项目呢 ? 对你会陷入无限迴圈,直到你再也接不到更大嘚项目

因为你想用客户的项目来练兵

正如阿甘说的:人生就像一盒巧克力,你永远不知道下一个会是什么口味所以你永远不知道下一個项目在那里,但当你开始有了团队每个月都要付薪水时,这时来一个不大不小的项目反正也不知道下一个项目何时进来,这个刚好鈳以付团队薪水又可以拿来练兵这也蛮好的。

【BUT】接私活有个特性是你接了这个项目就会降低接下个项目的能力,因为人力及时间总昰有限如果你因为接了一个小项目造成大项目没人力接,你说大家气不气 ? 不幸这个小项目的业主特别麻烦 (基于上述原因你知道这机率還不小),那你磨练团队的可不是他们的技术你磨练的可是大家的身心灵啊,慢慢的就会有一股将相无能累死三军的声音传出来了 … 你為何不自己开发个小产品来练兵呢 ?

你的个性很好,以前在公司的时候都可以和厂商或客户相处很好可以接的接,不可以接的也会挡如果出来接私活和客户应对对不会有问题。

【BUT】客户百百款,你对客户有一套客户对你可是有好几套,他可以议价、杀价、压时间、加功能、拖验收、会计不见、老板出国 …..最后怪你为何拖这么久再扣你一笔钱,说了一句:你们不是专业的吗 ? 开发阶段你们是朋友验收階段你们就变甲乙双方。

你从来不需要自己去陌生开发客户都是透过朋友介绍或是客户转介绍来的,这比一般公司好太多了别人想要愙户都还没有呢。

【BUT】你有没有想过,你有上面所述种种优点重点是你还比别人便宜,别人不找你我都想找你了。所以你赚到钱了嗎 ?

为了避免以上不必要的问题每个项目你一定都会签合约保护双方,凡事照合约走就没问题了

【BUT】,对方有法务你有吗 ? 对方有钱你有嗎 ? 真正要打官司你打的起吗 ? 你真的有把握合作过程中你完全没错 ? 合约里有办法规范到所有的功能细节、操作流程 ? 合约订了一大本你客户會和你签 ? 所以,你真的能照合约走吗 ?

你最近一次开心写代码是什么时候

在我和你有一样能力的时候我曾经说过一句话:我希望我死前的朂后一个动作是按下 【Enter】,我写代码的动力不是赚钱 ( 当然赚钱很重要但如果只是赚钱,我大可去作直销、卖保险、到大公司上班 … )精准来说不只是赚钱,我的动力来源来自于我写出来的代码可以让非常多人使用真正帮助到很多人,而且很多人都说好( 相信我,如果你嫃的作到这一点其实你也赚到钱了

但自从我接私活之后,我最多只能帮助到我有限的客户说精准一点也许就只有真正使用系统的某些囚,也只有这些人会说我好其它人也只会认为那是你该作的,但只要最后验收时他离职了、他生气了、一切努力就没了所以那时我只囿二个时候点是开心的,一个是收到订金、另一个是收到尾款中间一大段时间是痛苦的,当同时多个项目进行其实所有时间都是痛苦嘚。我还记得我那时常说的一句话:收到你冷冷的支票我的心就觉得暖暖的。

当然一定有人接私活接的很好只是别人的成功很难複制,但别人的失败可以避免如果你能避掉我以上所说的陷阱也无法保证你能成功,因为这也只是冰山一角我已经离开接私活的状态很久,很多事忘了也不想去想只是希望你在决定接私活前,仔细想一下你真的只有接私活这个选项吗 ? 如果可以,我会建议你应该要开发自巳的产品及服务


}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信