내 AFrame 응용 프로그램에서 물리 엔진을 사용 중이며 사용자가 버튼을 클릭 할 때 카메라를 이동 시키려고합니다.물리 엔진이있는 프레임에서 카메라 이동
물리 엔진 속성을 유지하여 모션의 메소드로 applyImpulse를 사용하고 싶습니다.
<script src="https://aframe.io/releases/0.3.0/aframe.min.js"></script>
<script src="//cdn.rawgit.com/donmccurdy/aframe-extras/v2.3.0/dist/aframe-extras.min.js"></script>
<a-scene physics>
<!-- Camera -->
<a-entity id="cameraWrapper" geometry="box" dynamic-body="mass:1" position="0 1 0" width="2" height="1" depth="2" listener>
<a-entity id="camera" camera universal-controls position="0 1 0" rotation="0 0 0">
</a-entity>
</a-entity>
<a-grid static-body position="0 0 0"></a-grid>
</a-scene>
<div>
<a id="impulseButton">Move</a>
</div>
카메라를 이동하도록되어 자바 스크립트 방법은 다음과 같습니다 : 여기
내 예를 들어 장면$(document).ready(function(){
$("#impulseButton").on("click",function(){
applyImpulse();
});
function applyImpulse(){
var x = 0;
var y = 0;
var z = 1;
var el = $('#cameraWrapper')[0];
el.body.applyImpulse(
new CANNON.Vec3(x,y,z),
new CANNON.Vec3().copy(el.body.position)
);
}
});
그러나, 움직임이 매우 원활하지 것, 그리고 때 사용자가 WASD 컨트롤을 사용하면 cameraWrapper 엔티티는 이전 위치에 남아 있습니다. applyImpulse로 카메라를 부드럽게 움직이게하려면 어떻게해야합니까?
이것은 여전히 물리 엔진에서 작동하지 않습니다 – bear
[live demonsto here] (https://sandbox.donmccurdy.com/walls/)에서 작동합니다. 해당 데모의 소스 코드는 대답과 연결되어 있습니다. –
kinematic-body가 충돌을 감지했음을 이해합니다. 그러나 이것을 applyImpulse 또는 카메라를 프로그래밍 방식으로 이동할 때 충돌을 감지하기 위해 카메라를 움직이는 다른 방법과 어떻게 결합 할 수 있는지 이해하지 못합니다. 미안, 내 질문에 명확한 wasnt. – bear