[LayaAirIDE 2.0]有人遇到GetType 的问题吗? laya2.0

TypeError: Cannot read property 'GetType' of null
laya.physics.js:430
    at box2d.b2Fixture.GetType (/Users/kahreman/laya/q3_client/trunk/bin/libs/laya.physics.js:430:206)
    at box2d.b2ContactFactory.Create (/Users/kahreman/laya/q3_client/trunk/bin/libs/laya.physics.js:576:68)
    at box2d.b2ContactManager.AddPair (/Users/kahreman/laya/q3_client/trunk/bin/libs/laya.physics.js:586:141)
    at box2d.b2BroadPhase.UpdatePairs (/Users/kahreman/laya/q3_client/trunk/bin/libs/laya.physics.js:308:194)
    at box2d.b2ContactManager.FindNewContacts (/Users/kahreman/laya/q3_client/trunk/bin/libs/laya.physics.js:584:355)
    at box2d.b2World.Step (/Users/kahreman/laya/q3_client/trunk/bin/libs/laya.physics.js:810:171)
    at Physics.__proto._update (/Users/kahreman/laya/q3_client/trunk/bin/libs/laya.physics.js:1596:15)
    at TimerHandler.__proto.run (/Users/kahreman/laya/q3_client/trunk/bin/libs/laya.core.js:8979:46)
    at Timer.__proto._update (/Users/kahreman/laya/q3_client/trunk/bin/libs/laya.core.js:8717:17)
    at Stage.__proto._updateTimers (/Users/kahreman/laya/q3_client/trunk/bin/libs/laya.core.js:21413:22)
E06AFE7A-2C5C-4D91-B7B8-8AD5E9E7F2F5.png
已邀请:

Laya_XS

赞同来自:

可以尝试一下,打开laya.physics.js
 
搜索
box2d.b2BroadPhase.prototype.UnBufferMove
找到
 
box2d.b2BroadPhase.prototype.UnBufferMove = function(a) {
a = this.m_moveBuffer.indexOf(a);
this.m_moveBuffer[a] = null
}
;
 
替换为:
 
box2d.b2BroadPhase.prototype.UnBufferMove = function(a) {
let ba=0;
while(true){
ba = this.m_moveBuffer.indexOf(a,ba);
if(ba<0)break;
this.m_moveBuffer[ba] = null
}
}
;

Leon

赞同来自:

遇到过,后面直接在'GetType' 那里加了非空判断

与你同在

赞同来自:

遇到过,自己解决了

与你同在

赞同来自:

这个发生的概率很小,原因是你在OnTrigger中执行了remove某个带碰撞器的物体,但是这个物体在本帧结束的时候才会被移除,这个时候物体已经不存在了但是在该帧还在舞台上,也就可以发生碰撞,接下来在该帧中发生碰撞就会触发这个bug。也就是在一帧中发生了碰撞——remove——碰撞,因为执行了remove你就没办法GetType,解决方法就是在OnTrigger中加个布尔值去控制OnTrigger中的代码一帧只去执行一次,问题就解决了,就再也不会出现这个bug。

IM-许

赞同来自:

请问大家这个问题解决了没啊?  如果子弹 上绑定钢体与碰撞器。快速创建子弹 与移除 就可能会有这个问题。
 
Uncaught TypeError: Cannot read property 'GetType' of null
    at box2d.b2Fixture.GetType (libs/laya.physics.js:430)
    at box2d.b2ContactFactory.Create (libs/laya.physics.js:576)
    at box2d.b2ContactManager.AddPair (libs/laya.physics.js:586)
    at box2d.b2BroadPhase.UpdatePairs (libs/laya.physics.js:308)
    at box2d.b2ContactManager.FindNewContacts (libs/laya.physics.js:584)
    at box2d.b2World.Solve (libs/laya.physics.js:799)
    at box2d.b2World.Step (libs/laya.physics.js:811)
    at Physics.1.__proto._update (js/bundle.js:29103)
    at TimerHandler.1.Timer.__init$.__proto.run (js/bundle.js:19371)
    at Timer.1.__proto._update (js/bundle.js:19109)

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作