Событие столкновения физики кадра не обнаружено в угловом контроллере

Я пытаюсь обнаружить событие столкновения между динамическим телом и статическим телом и использую физическую систему Дона Маккарди.

Событие "collide" успешно вызывается при столкновении, но последующая функция завершается с ошибкой "не удается прочитать тело свойства undefined для e"

Мой исходный код HTML

 <div ng-app = "webVrApp">
   <div ng-controller = "trying">

    <a-scene physics = "debug: true">

      <a-entity id='ball' position = "0 1 -4" material = "color:green;" 
       geometry = "primitive:sphere; radius: 0.5;" dynamic-body></a-entity>
      <a-plane color='red' static-body rotation = "-90 0 0" width = "100" 
         height = "100"></a-plane>    
      <a-entity camera look-controls position = "0 1.5 0">
            <a-cursor></a-cursor>
            <a-entity position = "0 0 -3" id = "weapon" static-body>
                <a-box color='blue' width='0.25' height='0.5' depth='3' static- 
                body></a-box>
            </a-entity>
      </a-entity>    
    </a-scene>
      </div>
    </div>

и код контроллера

app.controller('trying', ['$scope', function($scope){

    var $ = function (sel){document.querySelector(sel)};    
      document.querySelector('#weapon').addEventListener('collide', function(e)     {
        const ball = $("#ball");        
      if (e.detail.body.id === ball.body.id) { //error comes for this line unknown 'body'
            alert("collision happened");
        };
    });
}]);

Вот код для этого - кодовый ключ

Пожалуйста помоги.

Насколько я могу судить из своих исследований, детали тела сталкивающегося объекта недоступны, когда я запускаю его из контроллера angular, но, похоже, он работает нормально, когда я использую этот код в настраиваемом компоненте кадра. @donmccurdy

Niraj 08.07.2018 13:09
Знаете ли вы, что директивы являются одной из самых мощных и универсальных функций Angular?
Знаете ли вы, что директивы являются одной из самых мощных и универсальных функций Angular?
Директивы позволяют расширять HTML новыми элементами и атрибутами и даже создавать собственные структурные директивы для манипулирования DOM. С...
Разница между Angular и React
Разница между Angular и React
React и AngularJS - это два самых популярных фреймворка для веб-разработки. Оба фреймворка имеют свои уникальные особенности и преимущества, которые...
0
1
167
1

Ответы 1

Я использую компонент aframe-aabb-collider для обнаружения столкновения между двумя объектами, попробуйте. https://www.npmjs.com/package/aframe-aabb-collider-component

Другие вопросы по теме