如何修改预制资源的纹理

在绑定到预制资源下的脚本 进行了 动态改变精灵纹理的操作 但是不报错也不生效。

var self = this;
cc.loader.loadRes(“fightAnimal”, cc.SpriteAtlas, function (err, atlas) {
var frame = atlas.getSpriteFrame(imgStr);
self.spriteFrame = frame;
cc.log(self);
});

路径 资源 都没问题 也不报错
断点查看 this 上 多了个 spriteFrame的子节点

你的this(self)指向的是执行这个代码的脚本本身啊,你这个脚本哪儿来的spriteFrame属性。
你这样赋值,不过是给脚本添加了一个spriteFrame属性而已,但这个添加操作并不会影响prefab的图片

你需要先拿到目标节点上的目标组件,去修改目标组件的spriteFrame才能达到你要的效果。

示例代码:
cc.find(“目标节点的相对路径”).getComponent(cc.Sprite).spriteFrame = spriteFrame

感谢啦
self.getComponent(cc.Sprite).spriteFrame = frame;
我改成这样就ok了 刚转creator 还不太熟悉 谢谢!:+1: