cocos3.x新人学习,想问一下在3.x中init函数应该怎么使用啊,还有在一个组件中调用另一个组件的init函数

这是定义部分


这是另一个组件调用部分

这是看的游戏教程用的js写的部分

(悄咪咪再问一下,这个loader和load在3.x怎么用啊,文档是resources.load,不是很能明白 :sob:

1、init本身不是生命周期函数,你要先获取这个组件再进行调用;
3、3.x应该是已经没有loader了,用assetManaget或者resources,没啥太大的区别吧
https://docs.cocos.com/creator/manual/zh/asset/asset-manager-upgrade-guide.html


是我注释的这两行调用吗

错是没错…大小写要对

啊,是后面getComponent那个吗 :flushed:



我现在这么写的,运行后两秒还是报错 :scream: :sob: :cry:

好吧,获取图片不对 :flushed:

你确定这个节点挂了Block组件嘛?我没看出来有啥问题
获取图片有问题跟block值为null应该没有必然的联系吧…

获取资源要判断err啦,还要打印输出一下,不然error了你只能靠猜了

挂载了的 :sob:谢谢你大佬,还是帮了我很多的 :star_struck:

好的,我再试一下



现在又变成了这样 :sob:

就是说你的这个写了onLoad的这个代码是挂载到哪个Node上的,给这个node添加一个"Block"的代码,这样this.node.getComponent(Block)才能获取到内容,否则就是空的。当然你也可以把getComponent改成addComponent在运行时添加绑定。

还有this.node.getComponent嘛?Block到底是哪个节点上的脚本啊,不会就是这个在执行中的脚本吧,我看你的截图人家写的明明是this.blocknode.getComponent啊

就是一个背景node,一个block node,这个onLoad挂载到的是背景node,Block就是init挂载到了block node,我分别都挂载了的 :sob:

那你写错了呗

嗯,就是不太会写的 :sob:

他那个blocknode之前写到的是properties里,然后声明的blocknode:cc.Node,他用的是2.x和js,我以为是get到这个block节点组件就行,就这样写了,是这样理解的是错着呢是吗 :confounded:

get的是脚本不是节点,节点node的脚本你怕不是都没写blocknode的定义吧,你要不打开一个cocos的示例工程看看ts是怎么写的