这样写打印出来的结果是不同的贴图,但用目测来看,怎么看都没有改变效果,那么又该怎么写呢?
大写虽然没有改变贴图,但是打印信息是对的,小写是会会直接报错
想来想去应该是我传的参数不对,我传的是cc.SpriteFrame,是不是应该有另外的写法?我看API传的是cc.Texture2D对象,貌似还要在该cc.Texture2D对象加入url属性,但是文档没有示例,我不知道怎么写。
particle.getComponent(cc.ParticleSystem).texture = this.particle_icons[random].getTexture();
并没有大写的 Texutre,这个是你自己定义的
对,但是这句
particle.getComponent(cc.ParticleSystem).texture = this.particle_icons[random].getTexture();
这样写,打印信息显示打印的是texture2D对象了,后面我画红线的url也没错,可实际上还是没有改变成功啊
真机没测过,但是浏览器和模拟器都是这样。我想了想,我可以通过创建多个预制体来解决我的问题,虽然会增加一点点麻烦也无大碍。但是粒子系统这个问题还是继续存在的啊。刚刚试了1.7.2beta.1也是不行的,
那你给我一下 demo 吧,我帮你看看
这里应该是有 bug,你先用下面的传入 url 来进行修改 texture
particle.getComponent(cc.ParticleSystem).texture = this.particle_icons[random].getTexture().url;
这样写可以了,但是好长好复杂了,希望以后能改得简单些,不然开发者第一次这样弄的话都会卡住在这里。如果能改成只需传入spriteFrame类型的参数好了,就像改变节点贴图一样
其实

你可以直接 type 写 cc.Texture2D 然后直接赋值就行了

然后编辑器重新赋值一遍数组就可以了
对,是这样。
还有,这两种写法都是一样有效,但是打印出来的粒子组件的texture属性类型为什么是url了,文档说是texture2D类型的嘛。我一开始就是在这点上钻牛角尖的,就是只想找个texture2D的参数传进去赋值。
这个是历史遗留的问题,后面会进行统一,目前下个新版本会先支持 2 个类型的赋值,造成麻烦非常抱歉…
2.0以后不能用url定义类型了,改成type










