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




  

相关话题

  VS2013如何在不使用插件的情况下显示引用数量? 
  如何看待视频《Unity模拟病毒传播校园版》,学校开学会面临哪些情况? 
  C# 一个类型转化的问题,求解? 
  C#中的引用类型在堆栈(内存)中是怎么工作的? 
  C# 大数据量如何高效率读取解析数据库大字段? 
  c#的接口到底实际中如何使用? 
  作为Unity3D的脚本而言,c#中for是否真的比foreach效率更高? 
  C#泛型(MSIL)的内部是怎么实现的? 
  C#的Delegate 为什么没在其他主流语言中普及? 
  请问游戏编程中的精灵(sprite)是什么意思呢?有什么作用呢?老外命名它的意图又是什么呢? 

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





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