百科问答小站 logo
百科问答小站 font logo



为什么unity愿意用c#作为代码语言,而虚幻却使用c++? 第1页

  

user avatar   jenniferta-bob 网友的相关建议: 
      
  • Unity本身引擎是用c++代码开发的,早期官方包装了三种脚本语言JavaScript、C#、Boo供开发者使用,降低使用者开发难度。其中c#使用开源mono,使用最广泛也最流行,也是Unity唯一幸存的脚本语言。又因c#的效率等诸多问题,再后来Unity推荐使用IL2CPP,转c#为c++提升效率。目前又推出Brust编译器(使用LLVM将.Net转化为机器码),使用Dots开发模式更进一步提升效率。
  • Unity引擎c++层是黑盒模式,开发者是接触不到的,当然也可以花钱购买源码。黑盒也许保证开发更可控,避免滥用吧。
  • Unity国内为了热更新方便,第三方开发者引入Xlua,Slua,toLua,ILRutime等框架,基本核心效率逻辑可以采用c++或c#写,lua脚本作为非效率业务逻辑开发。
  • Unreal 核心引擎逻辑也是c++,早期官方也包装了UnrealScript供开发使用,来降低使用者开发难度。后来可能大量开发者觉得脚本层与引擎c++层面交互不够效率,脚本语言特性不够丰富等诸多原因,改为c++模式开发了,但c++开发门槛还是较高的,这可能是它得不到很好推广的一个原因吧,当然Unreal也自己可引入其他更好的脚本语言来做一部分业务逻辑开发。
  • Unreal是开放了源代码,可以更自由的使用引擎层,但读懂也非常的难~~~~~

总结:Unity C#易用顺手,对初学者友好。Unreal c++上手难度大,需要很强的驾驭能力,没有中间层追求效果效率。




  

相关话题

  C#什么情况下用值类型什么时候用引用类型? 
  c# 的 装箱 和 拆箱 成本有多高? 
  网游通信协议如何防止封包篡改? 
  Unity为什么可以做数字孪生仿真模拟?Unity不是做游戏的引擎么? 
  Unity3D和UE4哪个才是未来的方向? 
  用c#开发桌面应用,如何做出漂亮的界面? 
  网游服务器逻辑和传输如何分层/解耦? 
  对于C#里面的协变和逆变的理解的问题? 
  C#泛型(MSIL)的内部是怎么实现的? 
  今年25了,之前一直做cocos棋牌,我该不该降薪去转ue4? 

前一个讨论
中国考古工作者私藏文物现象普遍吗?见过有人拿着从战国随葬战车刮下的雕龙金箔说是考古界朋友送的(非盗古?
下一个讨论
究竟是什么样的东西让林俊德院士需要在弥留之际还在电脑上整理?





© 2025-01-03 - tinynew.org. All Rights Reserved.
© 2025-01-03 - tinynew.org. 保留所有权利