抱歉,能提供一个demo给我们么?
就新建个工程,随便加了一个 label,然后加了 shadow 组件
上面的是模拟器效果,下面的是浏览器效果
能不能把Shift+H 弹出帮助的这个快捷键改一下,每次在给节点输入name时,需要输入大写H的时候,就弹出这个帮助了。
文件夹勾选bundle后,在网页预览模式下,cc.assetManager.loadBundle找不到对应的资源,现在还不支持预览吗?
我现在分不清,cc.assetManager与cc.resource里面重合API的区别了, resource是一个bundle,是将Resource文件夹做为一个bundle,而且是默认的。那么cc.assetManager里面的release和 cc.resource.release是否是等价的呢?
cc.assetManager 里面没有 release 啊,只有 releaseAsset,两个参数不一样的
抱歉,现在只支持使用 ttf 字体加上char模式,才能在原生上用 outline 和 shadow
V2.4.0-pre 版本安装一直解压失败
现在是需要开发者在动态加载资源的时候主动调用addRef么
那比如场景的某个SpriteFrame节点显示1号英雄,游戏里需要动态的更换为2号英雄,那我就会动态加载2号英雄的资源,过一会儿又需要显示1号英雄,那动态加载的时候还需要调用addRef么
每次设置英雄资源的时候,都是走动态加载的流程,那每次都需要调用addRef么
如果英雄有100个,更换资源的时候都是动态加载,在游戏各个场景都有使用到,之前完全可以不释放内存,因为JavaScript 的垃圾回收是延迟的,搞不好会出现俩份同样的拷贝,所以干脆不做内存回收
那么现在的我依然不关心内存释放,不调用addRef,会出问题吗
如果新版本需要更改之前的加载相关代码,且不是简单的改改函数名,调用方式的话,这怎么敢升级
你们这个bundle的概念又和unity的很多不一样,现在一下子搞不清,详细请教下:
- 内置的4种bundle,都是啥作用哦,文档提到这块的比较少。这几个bundle要手工loadBunle吗
- 文档的升级指南里,说将cc.loader换成cc.resource就可以,实际上我这边换了以后效果不一样,比如cc.loader.loadResDir和cc.resource.loadDir的效果就不一样。
3.cc.assetManger与cc.resource的分工是啥, cc.assetManager似乎是包含了cc.resources
问题场景:
线上游戏版本1,有一张图片,开启md5 cache打包后名字是md5_1.png
开发版本2,这张图片被修改了,打包后名字是md5_2.png
这个时候版本2提交上线,资源上传cdn,玩家陆续更新,不会影响线上版本1的玩家,因为线上版本找的是md5_1.png
换成现在Bundle的方式,加载Bundle用的是Bundle的名字,那么上面的例子中,Bundle上传cdn会覆盖旧的Bundle,版本2陆续有玩家更新,会有新注册玩家因为cdn延迟的原因,下载的是版本1的包,加载Bundle的时候,有俩种结果,一种是尝试加载旧Bundle,肯定会失败,另一种是加载到了新的Bundle,资源会错乱
我们看一下,应该是windows下路径太长的问题
只要你持有对象,就需要,当你不需要持有对象的时候,就 decRef。
不做内存回收的话,可以不用 addRef 的,你以前的写法可以了,你这个应用场景下不要在场景上勾选自动释放
CCEffect %{
techniques:
- name: fog
passes:
- vert: fog-vs:vert
frag: fog-fs:frag
depthStencilState:
depthTest: true
depthWrite: true
properties: &props
mainTexture: { value: grey }
color: { value: [1, 1, 1, 1], editor: { type: color } }
amt: { value: 0.0 }
}%
CCProgram fog-vs %{
precision highp float;
#include <cc-local>
#include <cc-global>
#include <input-standard>
in vec2 a_texCoord;
out vec2 v_uv;
highp vec4 vert () {
StandardVertInput In;
CCVertInput(In);
highp mat4 matWorld;
matWorld = cc_matWorld;
// CCGetWorldMatrix(matWorld);
highp vec4 vpos = cc_matView * matWorld * In.position;
highp vec4 pos = cc_matProj * vpos;
v_uv = a_texCoord;
return pos;
}
}%
CCProgram fog-fs %{
precision highp float;
#include <output>
in vec2 v_uv;
uniform sampler2D mainTexture;
uniform allColor {
vec4 color;
float amt;
};
vec4 frag () {
vec4 o = vec4(1, 1, 1, 1);
o *= texture(mainTexture, v_uv);
// o.rgb = mix(color.rgb,o.rgb,amt);
return CCFragOutput(o);
}
}%
材质问题,该effect在C3D 1.1.0表现正常,在CC2.4.0-rc2表现不正常
如下图
- 内置的4种bundle,都是啥作用哦,文档提到这块的比较少。这几个bundle要手工loadBunle吗
如果你没有特殊需求的话,是不用手动load的,这几个内置bundle是在启动游戏的时候加载的,相关代码请查阅构建之后的main.js文件,里面有加载内置bundle的代码。当然,如果你有特殊需求,比如说:你觉得一开始用不着resources bundle,不用加载,你也可以将 main.js 中的加载resources 的部分移除,在你想要加载的地方加载。也是可以的
- 文档的升级指南里,说将cc.loader换成cc.resource就可以,实际上我这边换了以后效果不一样,比如cc.loader.loadResDir和cc.resource.loadDir的效果就不一样。
参数可能有特别细小的差别,不过一般正常使用的话,是可以直接替换的,你那边遇到什么效果上的不同了呢?
3.cc.assetManger与cc.resource的分工是啥, cc.assetManager似乎是包含了cc.resources
cc.resouces 是属于 cc.assetManager 的一部分,cc.resources 是完全等价于 cc.assetManager.getBundle(‘resources’) 的. cc.resources 是一个 bundle。cc.assetManager 是所有 bundle 的集合,以及一些公共的方法
Bundle上传cdn会覆盖旧的Bundle
也可以不覆盖的呀,可以在服务器上合并文件夹啊。
方式一都可以不覆盖,方式二没理由要覆盖啊