2016-03-02 42 views
2

Unity3d。移动。 亚军游戏。有一些类型的物体,如汽车,BG,场景,食物,障碍物,动力单元等等。而行动,可以使用或不使用不同的对象。 从开始 - 我做了很多不同的脚本,如“sizeChanger”或“Sprite flipper”,其中所有人都使用不同的2D colliders,其中一些跟踪Player position.x统一。哪个更快:一个带开关的大脚本(ObjectType)或者很多简单的脚本?

问题是在情况,其中一些活动中的行动是重复动作,如跟踪Player position.x

所以我做了一个灵活的脚本,它具有公共enum ObjectType,在清醒,开始,更新,OnTriggerEnter2D,OnTriggerExit2D有开关(对象类型)......至于我的场景中的结果有很多gameObjects相同脚本与不同ObjectType声明。

这会工作更慢还是性能差异不值得担心? (作为一个小问题,我没有备份的旧版本有很多的脚本来测试FPS)。

+2

作为一个意见,通常较小的脚本将更适合我,因为长脚本意味着难以检查。但这只是IMO。 – Ian

+0

我不明白你在做什么,但是把所有东西放在一个脚本中,根据你的ObjectType复制粘贴和切换行为是一个坏主意。 – Stud

+2

为什么你不测试和发现?您没有旧版本不是一个借口,因为我们也不是。所以,如果你真的想知道,测试两种情况。 –

回答

4

所以,我已经添加了1200个对象启动现场,并在firts开始(右探查)有正在处理独立的小剧本,在第二次创业(左Prifiler)正在大脚本...

结果:

  • 一些简单的脚本 - 23.03ms(单机)延迟
  • 大型脚本 - 23.6ms (独立)延迟 Standalone Profiler

结果:

  • 一些简单的脚本 - 63毫秒(机器人)延迟
  • 大型脚本 - 67ms(机器人)延迟 Android Profiler

差是4毫秒的1200Objects。

对于我的游戏正如我所看到的 - 在性能上的差异并不是为什么,因为在我的游戏场景中最多会有50个对象。