这个帖子好火,蹭个流量,问个问题。

没用过laya与egret,一直用的是creator2.1.2,当前这个项目资源量如上图。
现在creator编辑器开发起来都是泪,太卡了。
1、换固态硬盘会不会有用?
2、升级到2.4.3会不会有用?
这个帖子好火,蹭个流量,问个问题。

没用过laya与egret,一直用的是creator2.1.2,当前这个项目资源量如上图。
现在creator编辑器开发起来都是泪,太卡了。
1、换固态硬盘会不会有用?
2、升级到2.4.3会不会有用?
1:固态 有用 2:差不多
3.0编辑器,经常会莫名其妙的有缓存问题,经常要删缓存重启编辑器。
之后项目做大了之后,要删一次缓存重新打开又耗费不少时间了
我测试的是2.3.3版本,是原始的一张一张图拖进去,,,,基本不存在不卡死的情况,不需要拖到80张图片,50张之前就能卡死奔溃至少一次
能举个例子么?什么样的缓存问题?
SVN同步后,场景或者组件的代码组件丢失,更新的代码不生效。很多时候有奇怪的报错,也是删缓存重启就好。现在项目开发来说,一天重启个七八次很正常
JARE大佬能帮我喵喵打包的问题嘛
不,2.3.3一天30+次,捂脸
看了一下Laya3d的源码。unity导出的可渲染3d物体一般是MeshSprite3D。
class MeshSprite3D extends RenderableSprite3D
看下RenderableSprite3D的实现。
class RenderableSprite3D extends Sprite3D {
...
_onInActive() {
super._onInActive();
this._scene._removeRenderObject(this._render);
}
_onActive() {
super._onActive();
this._scene._addRenderObject(this._render);
}
}
可以看到设置active为false的时候会从渲染列表中移除的。
Scene3D的_updateScript方法
_updateScript() {
....
var scripts = this._scriptPool;
for (var i = 0, n = scripts.length; i < n; i++) {
var script = scripts[i];
(script && script.enabled) && (script.onUpdate());
}
}
可以看到确实是根据script的enableed属性是否调用脚本周期的。
在gameobject设置active为false的时候确实没有处理脚本的enable属性,但是script设置active为false的时候有处理脚本自身的enable属性。
我觉得也有它设计的道理吧。不过后面我所有的脚本都没有再走Laya.Scrpit3D了,自己定义了生命周期。
我觉得onAwake就对应cocos的onLoad吧。
但是onAwake,是创建组件出来马上执行,不管有没有激活。
这个应该是你创建组件挂到gameobject上面,同时被Add到了一个父物体上。
假如没有add操作的话应该不会立马调用onAwake方法的。这个应该跟unity的一致。
Sprite3D继承自Node,看一下Node的源码:
_onAdded() {
(this._parent.activeInHierarchy && this.active) && this._processActive();
}
_processActive() {
this._activeHierarchy(this._activeChangeScripts);
}
_activeHierarchy(activeChangeScripts) {
this._setBit(Const.ACTIVE_INHIERARCHY, true);
if (this._components) {
for (var i = 0, n = this._components.length; i < n; i++) {
var comp = this._components[i];
comp._setActive(true);
(comp._isScript() && comp._enabled) && (activeChangeScripts.push(comp));
}
}
}
在_activeHierarchy方法中就是会设置activeInHierarchy,同时会执行脚本的_setActive方法,此时onAwake方法就会调用。
_setActive(value) {
...
if (value) {
if (!this._awaked) {
this._awaked = true;
this._onAwake();
}
this._enabled && this._onEnable();
}
}
我觉得Laya要黄。Panda之前来过我们公司,不过年前我被裁了。希望cocos越做越好。
我们也算是大型项目了,现在把动态加载的资源都提到另一个工程,编译后把bundle拷贝出来放在web地址下,按子包的方式远程加载。本地项目主要只有ui和代码。如果放一起的话,项目应该已经没法做了。
我laya也搞过几个项目啦,是什么情况我知道。u3d只导出Sprite3D和MeshSprite3D对象,即空的物体和模型物体,u3d的ui系统无法导给u3d使用。
脚本的onAwake是物体创建出来马上执行,只要Instantiate出来就会执行,不需要要add到父物体里面也不需要激活,或者把组件直接addComponent到一个没激活的对象上也会自动执行,很坑。
active 的显示隐藏对Sprite3d对象有效,渲染和脚本会立即停止,渲染确实移除了,这和u3d一致。但是对普通的Sprite对象,比如ui就没效了,active只屏蔽了脚本,对渲染无效,而visible只是让渲染看不见,但是渲染还在,drawcall还在。要想彻底屏蔽ui,只能destroy。
总之,laya的内存很难管理
?? 为啥你觉得laya会黄? 为啥panda来你妹公司你被裁了? 这些有什么前因后果么
没用。我就是固态+2.4.3 卡的怀疑人生。
你这种方式,可以试试fgui。原理跟你差不多
不错,能够看源码自己分析的一般都是有水平的
laya和cocos的人都来过公司。明显laya团队不如cocos,另外laya寄生于unity,现在已经有技术方案unity直接做小游戏了,那laya一点优势都没有了。但是cocos不一样,cocos有自己的技术方案和沉淀,我觉得这个特别像芯片,cocos就是自研,说cocos是国产引擎之光没问题吧。
laya虽然我用过一段时间,虽然市场占有率高,但是我也不看好。
一个是他们对引擎的资金投入问题,他们一直喊穷,引擎升级一直以稳为主。
每次引擎版本升级都是一大堆"修复了XXX问题","优化XXX功能"的描述,没有什么亮点,平均2-3个月升级一次,而creator能一个月升级一个版本。laya直到现在还没有自己的3d编辑器,2d编辑器还是用flash时代的mornUI,看不到上进心。
让会员升级vip却很有热情,现阶段是收割用户的时候。
他们能占得3d 小游戏市场的先机不是因为自己引擎有多强,主要是缺乏竞争。好的国外h5引擎,由于文档和教程少,在国内无法流行。在国内egret已经黄了,cocos 3d起步晚,这样天时地利的情况下让laya崛起了。
后面很多h5 引擎 都崛起的时候,laya对自己引擎还不提升的话,laya真的会黄。如果后面u3d也能彻底开放h5小游戏平台了,死的第一个就是laya。
用的就是fgui.同2.4.3.