Cc.find的一个问题,附出错源码。

这个错误很莫名其妙,错误在mahjong.js的start函数里面。
common.log(111);
cc.find(‘GameNode/Panel/layHand0’).getComponent(cc.Layout);
common.log(222);
cc.find(‘GameNode/Panel/layOut01’).getComponent(cc.Layout);
common.log(333);

这句能通过:cc.find(‘GameNode/Panel/layHand0’).getComponent(cc.Layout);
这句能通不过:cc.find(‘GameNode/Panel/layOut01’’).getComponent(cc.Layout);
但是两个节点都是有的,名字也绝对没搞错,各种办法都试过了,还是不行。
creator.rar (1.3 MB)

您好,我测试了一下你的范例在:

GameNode/Panel 这个节点中并没有 layOut01 这个节点,所以你才会报错

下方是我打印 GameNode/Panel 这个节点的所有子控件的名称

刚刚看了下找到问题所在了,我是在GameCsmj的prefab里引用了
GameMahjong的prefab,然后我每次修改GameMahjong之后,GameCsmj里的不会跟着改动,所以出现了这个问题。
感觉这个还是有点问题,我觉得prefab这东西应该就跟得控件一样,只是一个引用,只保存修改的部分,源头应该只是一个链接。不然我每次改动prefab的时候还得到项目里把所有引用的部分都要重新放。而且这种改动用prefab的回退没有效果。

点了回退后,就是保存到prefab以前那个版本的样子。

你是最新版本吗?如果是 1.2 的话需要自己手动修改,1.3 测试版本已经添加了自动 prefab 更新的功能。

而且这应该不是 cc.find 的问题,如果有问题的话,2 个都应该是报错的

确实还没用到1.3测试版,请问1.3正式版啥时候出来?想等正式版出来一次性更新算了。

可能还需要等一段时间,目前是测试版本,具体的关注一下官方论坛,或者网站