C# 团结。哪个更快:一个带开关的大脚本(ObjectType)还是很多简单脚本?

C# 团结。哪个更快:一个带开关的大脚本(ObjectType)还是很多简单脚本?,c#,performance,optimization,unity3d,C#,Performance,Optimization,Unity3d,Unity3d。可移动的 跑步者游戏。有一些类型的对象,如汽车、背景、场景、食物、障碍物、电源等。和动作,不同对象可以使用或不使用。 从一开始-我就在做很多不同的脚本,比如“sizeChanger”或“Sprite flipper”,几乎所有的脚本都使用不同的2D碰撞器,其中一些脚本正在跟踪Player position.x 问题出现在这样的情况下,活动中的某些操作是重复的操作,如跟踪玩家位置.x 因此,我制作了一个灵活的脚本,它具有publicenum ObjectType,在Awake、St

Unity3d。可移动的 跑步者游戏。有一些类型的对象,如汽车、背景、场景、食物、障碍物、电源等。和动作,不同对象可以使用或不使用。 从一开始-我就在做很多不同的脚本,比如“
sizeChanger
”或“
Sprite flipper
”,几乎所有的脚本都使用不同的
2D碰撞器,其中一些脚本正在跟踪
Player position.x

问题出现在这样的情况下,活动中的某些操作是重复的操作,如跟踪
玩家位置.x

因此,我制作了一个灵活的脚本,它具有public
enum ObjectType
,在Awake、Start、Update、OnTriggerEnter2D、OnTriggerExit2D中有开关(ObjectType)。。。因此,在我的场景中,许多
游戏对象
使用相同的脚本,使用不同的
对象类型
语句


这是否会降低工作速度,或者性能上的差异不值得担心?(作为一个小问题,我没有备份,无法在一个有很多脚本的旧版本中测试FPS。)

因此,我在一个开始场景中添加了1200个对象,在第一个开始(右探查器)有单独的小脚本,在第二个开始(左Prifiler)有大脚本

结果:

  • 一些简单脚本-23.03ms(独立)延迟
  • 大型脚本-23.6ms(独立)延迟
结果:

  • 一些简单的脚本-63ms(android)延迟
  • 大脚本-67毫秒(android)延迟
在1200个对象上的差异为4ms


正如我所见,对于我的游戏-性能的差异并不是值得担心的原因,因为在我的游戏场景中最多会有50个对象。

作为一种观点,通常较小的脚本更适合我,因为较长的脚本意味着更难检查。但这只是我的想法。我不明白你想做什么,但是把所有东西都放在一个脚本中,根据你的对象类型复制粘贴和在行为之间切换是个坏主意。你为什么不测试并找出答案呢?你没有旧版本不是借口,我们也不是。所以,如果你真的想知道,测试两种情况。嗨,Dmitry。。。没有区别。(或者只是一个很小的差别。)建议你“勾选”你自己的答案(这样做没关系),以帮助保持黑板整洁,谢谢