Kerry 发表于 2015-10-28 23:29:06

令人难以置信。

这里有一个警示性的故事,不要认为发布的代码是正确的、经济的,甚至是有意义的。这个片段来自几个月前出版的一本书(Unity3D代码的CookBook)(而且不便宜)我已经注释掉了违规代码并替换了Update()方法,该代码旨在更新覆盖在游戏视觉效果上的GUI上的文本。每个GameObject所附加的每个类脚本中的每个Update()方法都针对显示的每一帧运行......大约每秒1580帧,正如您可以想象的那样,节省代码来完成工作是一种好处;特别是当游戏屏幕变得繁忙时...需要做出很多决定才能让该帧显示“我死了吗”“这个珠光宝气吗”“僵尸在哪里”“玩家想在这里转弯、加速、减速、跳跃、逃跑、战斗等吗”有些人会接受这个代码并在他们从现在到获得“真正的工作”之间构建的每个游戏中使用它,这让我有点害怕。我更担心的是AutoCAD插件代码也发生了类似的情况,保持健康并繁荣!使用UnityEngine;。
使用UnityEngine.UI;。
使用系统;。
使用System.Collections;。

公共类ClockDigital:MonoBeAct{。

私有文本文本时钟;。

//将其用于初始化。
启动 () {。
文本时钟=GetComponent();。
}。

//每帧调用一次更新(nom 60 FPS,)。
更新 () {。
textClock.text=DateTime.Now.ToString("HH: mm: ss");。
}。

//一堆废话!!。
//无效更新(){。
//DateTime时间=DateTime.Now;。
//字符串小时=领先零(time.Hour);。
//字符串分钟=领先零(time.Minute);。
//字符串秒=领导零(time.Second);。
//textClock.text=小时 + ":" + 分钟 + ":" + 秒;。
//}。
//string领导零(int n){。
//返回n.ToString(),Pad左侧(2,'0');。
//}。
}。




**** Hidden Message *****

JohnK 发表于 2015-10-29 08:37:49

哈哈
我想我会把这个留在这里(我知道这不是正确的语言,但偶尔看看专业人士是如何做到的总是很好的)。
Doom3源代码审查。
http://fabiensanglard.net/doom3/index.php

Kerry 发表于 2015-11-2 11:34:35

这里只是一个想法,没有时间检查对tostring的调用是如何增加的,但是您可能在那里引入了额外的堆栈操作,通过使代码读起来非常漂亮来减慢速度。

Kerry 发表于 2015-11-2 17:10:56


你好,威尔,
你的评论提醒我,我还没有真正测试代码效率
我想我的替代方案将减少75%的加工时间
…并且满足我的审美品味。
页: [1]
查看完整版本: 令人难以置信。