百科问答小站 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++上手难度大,需要很强的驾驭能力,没有中间层追求效果效率。




  

相关话题

  为什么听说过 JVM 调优,却没听说过 CLR 调优? 
  c#里的属性是不是鸡肋? 
  如何编写能够监听特定程序或全系统所有Http请求的.Net程序? 
  为什么Flutter写的界面比Unity3D流畅? 
  C# 虽然在语言层面上更胜 Java 一筹,但是这对于占有率真的很重要吗? 
  C♯的反射要怎么给Type使用泛型? 
  《奥日与黑暗森林》这样的游戏主要需要哪些技术,几个人的小团队能实现吗? 
  C#为什么非要把函数叫方法? 
  C#的async和await底层是怎么做到的? 
  你遇到过哪些代码优雅的C#项目? 

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





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