皮皮网

【平台代源码】【java注解源码查看】【个人博客 整站源码】laya 源码

2024-11-21 00:35:15 来源:csharp聊天软件源码

1.最受欢迎的源码3D游戏引擎Unity VS 国内开源 2D 游戏引擎Cocos
2.laya代码编辑器设置错误怎么办?
3.Laya FairyGui系列六 GLoader

laya 源码

最受欢迎的3D游戏引擎Unity VS 国内开源 2D 游戏引擎Cocos

       国内开源2D游戏引擎Cocos的发展与特点

       Cocos2d-x,作为一个轻量、源码高性能、源码跨平台的源码2D游戏开发框架,支持多种开发语言,源码其早期版本在引擎编辑器方面存在一些不足,源码平台代源码如Cocos Builder/Cocos Studio功能有限,源码难以使用。源码当前版本Cocos2d-x停留在3..2,源码不再更新,源码其发展重点转向Cocos Creator,源码分为2.x和3.x两条路线,源码前者专注于2D游戏开发,源码java注解源码查看后者计划向3D游戏发展,源码同时兼容2D游戏功能。源码Cocos Creator 2.x版本已非常成熟稳定,是国内2D游戏市场占有率最高的游戏引擎之一,受到中小企业欢迎,市场份额约为国内2D游戏市场的%左右。TS和C++为主要编程语言,性能在V8引擎的加持下已经非常不错,V8默认开启jit,对于大多数休闲和轻中度手游来说性能已经足够。Cocos Creator引擎源码为MIT许可开源,编辑器部分则不开源,个人博客 整站源码与Unreal引擎相似。

       Cocos Creator作为国内开源2D游戏引擎的后起之秀,与Laya、Eget并称国产引擎三剑客,目前已成为行业领头羊,使用Cocos Creator开发的游戏非常广泛,包括《刀塔传奇》、《剑与家园》、《天天爱消除》等。

       Unity:全球最受欢迎的3D游戏引擎

       Unity是由美国Unity Technologies公司开发的跨平台2D/3D游戏引擎。尽管受到了最近的收费许可协议争议影响,Unity仍然是免费漫画源码全球游戏开发者中最受欢迎的3D游戏引擎。据The Info报道,年Unity在全球游戏引擎市场占有率超过%,在Steam上更是超过了%。Unity拥有出色的跨平台性能、较低的开发难度、强大的社区生态,是各类3D游戏项目,尤其是移动游戏的首选引擎。Unity的一个显著特点是“干净”的引擎设计,除了通用基础设施外,它没有提供太多Gameplay模块,这使得开发者可以高度自由地定制游戏逻辑,西游妖精录源码学习成本较低。Unity在写实渲染技术和动画技术方面略有落后于Unreal Engine,动画控制仍然较为基础,尽管新推出的Playable API试图解决该问题,但仍存在一些问题。在更换渲染管道方面,Unity相对容易一些。在移动端适配方面,Unity在中低端设备上表现更好。Unity的写实渲染技术和动画技术虽不及Unreal Engine,但在更换渲染管道的便利性和移动端适配方面具有优势。Unity的收费模式包括个人版、Pro或企业版,以及基于开发者收入和客户端安装量的新型收费模式。C#是Unity引擎的主要编程语言,性能在IL2CPP的加持下已经接近C++,在TIOBE编程语言排行榜上常年位于前5名。Unity使得开发者有机会接触微软的C#语言,这是很多开发者可能未曾接触过的偏向桌面开发的语言。Unity支持的游戏应用商店数量众多,包括《原神》、《崩坏3》、《王者荣耀》等。

       总结:Cocos与Unity是游戏开发领域中的两个重要选择,它们在2D与3D游戏开发方面各有优势与特点。Cocos Creator以其成熟稳定的性能和相对较低的开发成本,在国内2D游戏市场占据领先地位,而Unity则以其出色的技术支持、广泛的应用场景以及丰富的社区资源,成为全球游戏开发者首选的3D游戏引擎。开发者在选择引擎时应根据项目需求、团队技术水平以及成本预算等因素综合考虑。

laya代码编辑器设置错误怎么办?

       重装完系统后,打开Laya IDE,当我切换到场景编辑器的时候,弹出错误框让我备受煎熬。

       我一遍心里骂娘一遍给Laya社区BBS发帖求助,也没有人回音。怎么办,总不能再重装一遍系统吧,这不是我的风格,那就只好硬着头皮去解决这个问题了。

       从弹窗中大致看到源码位置,打开源码文件夹全局搜索webGL!找到弹窗位置了!

       在文件LayaAirIDE\resources\app\out\vs\layaEditor\h5\renders\uiviewer\editor.max.js

       的行

        if (!WebGL.enable()){

       alert("Laya3D init error,must support webGL!");

       return;

       }

       嗯,是因为IDE需要用到WebGL功能,打开开发者工具,创建一个canvas,然后调用getContext('webgl')返回null,确实不支持。奇怪,为什么不支持呢?原来是好好的啊。

       经过1天的思考,没啥思路,上网搜索一把,终于发现了重要线索:

       electron webgl初始化失败blog.csdn.net

       原来如此,可以尝试一下这个骚操作,问题是这个代码放哪儿呢?文章没有说。我把代码放到一个页面里面,失败,很显然这个貌似是electron的代码,于是我根据package.json中的入口js找到resources/app/out/main.js,把代码插入其中

          init() {

        let idepath = this.path.joim.scxhdzs.com#his.app.getPath("appData"), "LayaAirIDE");

              this.fs.exists(idepath, function (exists) {

                  if (!exists) {

       require("fs").mkdir(idepath);

       }

       });

       this.app.commandLine.appendSwitch('ignore-gpu-blacklist');

       this.app.once("ready", () => {

       this.start();

       });

       this.ipcMain.on("openFile", () => {

       console.log("----------------------------收到消息")

       console.log(process.argv, "-------------------------")

       })

       }

       重启Laya,不弹窗了,成功!

       基于Electron开发的软件会有想不到的坑,也因为可以修改软件代码来解决,js真是好用!

Laya FairyGui系列六 GLoader

       FGUI规定需要切换图片的Texture时就需要使用装载器,所以装载器在FGUI中的使用也非常广泛,例如前面说到的GButton的图形标题。

       è£…载器的属性:

        装载器时继承自GObject,但是自身并不会处理图片的显示过程,自身只处理指定的显示内容的加载:

        通过源码可以看到,在设置装载器的url属性时会判断如果设置的值是"ui://"开头则同FGUI资源包中寻找指定的资源,或者则通过Laya.loader加载指定的资源。加载完成后将加载的内容赋值给MovieClip,由MovieClip来负责内容的显示。

        这里不说MovieClip如何处理内容显示的,如果有兴趣可以点击 这里 。

        设置装载器的url是本地资源时会先去内存里面查找资源是否已经加载,如果未加载则会执行Laya.loader的加载过程,如果指定的是图集那么加载整个图集。

        注: