-
Creator 版本:
-
目标平台:
-
详细报错信息,包含调用堆栈:
-
重现方式:
-
之前哪个版本是正常的 :
-
手机型号 :
-
手机浏览器 :
-
编辑器操作系统 :
-
编辑器之前是否有其它报错 :
-
出现概率:
-
额外线索:
Creator 版本:
目标平台:
详细报错信息,包含调用堆栈:
重现方式:
之前哪个版本是正常的 :
手机型号 :
手机浏览器 :
编辑器操作系统 :
编辑器之前是否有其它报错 :
出现概率:
额外线索:
来大佬啊,打印出来的polygonCollider组件信息展开后可以看到world属性,但是直接打印world属性却显示undifine,一查api文档,发现没有world属性了,请问是被吃掉了吗
这里打印有world属性,直接访问却显示undifine
你怎么直接访问的,代码贴一下看看
console.log(this.good.getChildByName(“frame0”).getComponent(cc.PolygonCollider).world.points)我的目标是获取这个,结果打印为undifine
console.log(this.good.getChildByName(“frame0”).getComponent(cc.PolygonCollider).world)
然后就试了一下这个,打印结果undifine
console.log(this.good.getChildByName(“frame0”).getComponent(cc.PolygonCollider))接着试了下这个,打印出一个collder组件,点击三角号展开可以看到world属性,如上图所示,很奇怪。
cc.director.getCollisionManager().enabled = true;这个已经开启了,写在上述代码前面
你在哪里打印的,是碰撞时打印么,这个world属性是实时计算出来的
我并不需要碰撞,我只是想做个判断区域,上面的代码都是在onLoad时执行的,我想在onLoad时储存世界坐标points数组而已。我的需求中,这里的不规则组件的位置是由始至终不会改变的,而且说白了我只是想要这些点来进行其他判断,结果就是获取不到。
即使world是实时计算的,但它应该有个初始值吧,我要的就是这个初始值。
如果直接访问外面那个points,获取的是节点坐标而不是世界坐标。
没有那个初始值的,你不碰撞它就是undefined,只有碰撞时它才会计算,world才会有值
怎么个碰法啊,我这不是物理组件那个,只是一个不规则组件PolygonCollider啊,与物理没有任何关系的,不需要碰撞的,我刚刚打开以前做好的工程都没有问题,一样的代码。就是新建的工程有问题,刚刚下载了个1.8.2写了个简单的demo,没有任何改动的空白工程。也请团队的大佬来看看吧。
colliderTest.zip (205.2 KB)
是的,就是你说的这个组件,以前不需要发生碰撞的,我用了很久了。我从来不知道要怎么碰撞啊,就算要碰撞,请问是什么样的碰撞方式?而且同样的creator版本,我打开以前的工程,都没有问题。这个真的很奇怪。
你换到start里面就有值了,你是对的,不用碰撞也行,这个属性是运行时才实时计算出来的,不是碰撞时实时计算出来的,我搞错了
嗯,谢谢大佬,这都让你想出来了。我刚刚设了一个定时器延迟了万分之一秒执行这段代码也解决了,其实我试过延迟10^-200秒执行也可以(小数点后面200个零,不可思议,远超普朗克时间的尺度,我无法想象),感觉是一些比较底层的原因。比如涉及到计算机处理问题的最小时间单位(还是无法想象,计算机怎么可能触摸到超过普朗克时间尺度范围),或者是引擎的底层代码的某个设定。
感觉比一秒钟穿越整个宇宙还要扯,这可是上帝的禁区啊,所以,这个定时器的底层代码肯定也有点问题,团队大佬来看看觉得我说的有没有道理