您好我最近做了原子和非原始形狀之間的碰撞檢測組件。我正在使用three.js中提供的邊界框碰撞。它的工作正常,但是當我將它用於自定義對象時,它會減慢整個體驗...請注意我的組件並告訴我最新的問題...碰撞檢測使用邊界框放緩幀向下
AFRAME.registerComponent('manual-body', {
matchingElements: function(attribute){
var matchingElements = [];
var allElements = document.getElementsByTagName('*');
for (var i = 0, n = allElements.length; i < n; i++){
if (allElements[i].getAttribute(attribute) !== null){
// Element exists with attribute. Add to array.
matchingElements.push(allElements[i]);
}
}
return matchingElements;
},
tick: function(){
var elements=this.matchingElements('manual-body');
for(var i=0;i<elements.length;i++){
if(this.el.id==elements[i].id){
continue;
}
firstBB = new THREE.Box3().setFromObject(elements[i].object3D);
secondBB = new THREE.Box3().setFromObject(this.el.object3D);
var collision = firstBB.intersectsBox(secondBB);
if(collision){
this.el.emit('collision', {elSource: this.el,elTarget:elements[i]});
}
}
}
});
您認爲可能是滯後的原因是什麼?是不是蜱函數內部碰撞的邏輯或者是別的東西.....
感謝
通過自定義對象,你的意思是不「四四方方」模式? –
由自定義對象/非原始形狀我的意思是從這裏採取的3D obejcts https://free3d.com/在.obj格式....當與他們連接的組件放慢經驗.... – user287332
它可能是發生,因爲三個調整箱子到你的模型有問題。你可以在模型中創建一個不可見的盒子,並使交叉點檢查它嗎? –