需求这样的:
1.为了策划编辑方便,在开启编辑器生命周期后,策划在选择不同的文字(枚举)后,上面的Label中的font能够指定不同的.fnt文件,并直接显示结果
同理,无论fnt或者spriteframe,能否按枚举选择后,自动切图呢?
上传中…
2.如何通过代码默认资源的位置
当策划拖动脚本到属性面板中时,希望有个默认值在,例如fnt或spritframe,就好像button有样,上来就有三图片,省得让策划每个脚本都要拖两遍
需求这样的:
1.为了策划编辑方便,在开启编辑器生命周期后,策划在选择不同的文字(枚举)后,上面的Label中的font能够指定不同的.fnt文件,并直接显示结果
同理,无论fnt或者spriteframe,能否按枚举选择后,自动切图呢?
上传中…
2.如何通过代码默认资源的位置
当策划拖动脚本到属性面板中时,希望有个默认值在,例如fnt或spritframe,就好像button有样,上来就有三图片,省得让策划每个脚本都要拖两遍
改那个 .mate文件里的uuid
你好,可以使用自定义组件:
下面是参考参数连接:
https://docs.cocos.com/creator/manual/zh/scripting/reference/class.html#editor-参数
你好大佬,我在ts文件中加入了@executeInEditMode,让组件有了生命周期,就是想某个值改变时,在编辑器中能改变图片,让代码
cc.loader.loadRes(tFile, cc.SpriteFrame, function (error, res)
{
if (error) { cc.log('Error: ’ + error); return; }
self.sprite.spriteFrame=res;
});
能够在编辑器环境中执行
可结果就是找不到地址,但在模拟器就可以,不知道是不是编辑器运行时,不支持cc.loader.loadRes动态加载
你好这个需求现在有下面的方案:
在编辑器环境中,cc.loader.loadRes 无法正常加载资源文件,请使用cc.loader.load();
目前cc.loader.load()只能加载到字体未解析的数据文件,目前引擎中未开放手动构造bitMapFont的接口,所以无法动态切换label字体,目前能做到的是动态切换精灵。
1、编辑器环境动态切换图片
Code:
var texture2DEnum = cc.Enum({
null: 0,
texture_one: 1,
texture_two: 2
});
cc.Class({
extends: cc.Sprite,
editor: {
disallowMultiple: true,
executeInEditMode: true,
menu: "自定义组件/自定义精灵组件",
},
properties: {
defaultSpriteFrameTexture2D: {
default: texture2DEnum.null,
type: texture2DEnum,
displayName: "图片精灵初始贴图枚举",
notify: function() {
this.onLoadTexture2DToSprite();
}
},
_oldDefaultTexture2D: null,
},
// LIFE-CYCLE CALLBACKS:
// onLoad () {},
start () {
this.onLoadTexture2DToSprite();
},
onLoadTexture2DToSprite () {
this.defaultTextureUrl = cc.url.raw(`resources/texture_${this.defaultSpriteFrameTexture2D}.jpg`);
if (this._oldDefaultTexture2D !== this.defaultTextureUrl) {
this._oldDefaultTexture2D = this.defaultTextureUrl;
if (this.defaultSpriteFrameTexture2D !== texture2DEnum.null) {
cc.loader.load(this.defaultTextureUrl, (err, resTexture2D)=> {
this.spriteFrame = null;
this.spriteFrame = new cc.SpriteFrame(resTexture2D);
});
}
else {
this.spriteFrame = null;
}
}
}
});
2、[quote=“guoyiweii, post:1, topic:78766”]
当策划拖动脚本到属性面板中时,希望有个默认值在,例如fnt或spritframe,就好像button有样,上来就有三图片,省得让策划每个脚本都要拖两遍
[/quote]
这个需求可以利用creator的控件库插件解:
将需要用到的prefab拉到控件库,下次使用的时候只要拖出来就行。
大佬,按照你的写法,图片是换过来了,可Sprite组件中的SpriteFrame的路径是空的。找了好些帖子自己也试验去解决,都不行,你这有办法做到吗?
请问.ts语法下怎么设置?
notify: function() {
this.onLoadTexture2DToSprite();
}
这个写法好像不行