Open shafqatjamil opened 1 day ago
아래와 같은 이벤트를 추가하여 이동 및 회전을 할 수 있습니다.
window.addEventListener("keydown", function (e) {
if(gTraceTarget !=null)
{
if(e.key == 'w' ) GLOBAL.TRACE_TARGET.move(1.0, 0.0, true);
else if(e.key == 's' ) GLOBAL.TRACE_TARGET.move(-1.0, 0.0, true);
else if(e.key == 'a' ) GLOBAL.TRACE_TARGET.move(0.0, -1.0, true);
else if(e.key == 'd' ) GLOBAL.TRACE_TARGET.move(0.0, 1.0, true);
}
});
_canvas.addEventListener("mousemove", function (e) {
if (g_bMouseDown) {
// Mouse left button
if (e.buttons == 2 && gTraceTarget!=null) {
GLOBAL.TRACE_TARGET.direction += e.movementX * 0.5;
GLOBAL.TRACE_TARGET.tilt += e.movementY * 0.5;
}
}
});
귀하의 빠른 답변에 감사드립니다. 하지만 제 문제는 조금 다릅니다. 현재 3D 모델과 애니메이션을 사용하고 있으며, 귀하의 버퍼 크기 수정 이후 애니메이션은 정상 작동하고 있지만, 모델의 방향이 올바르지 않습니다. 모델을 폴리곤에 할당했을 때 방향을 수정할 방법이 있을까요? 스크린샷을 확인해 주시면 감사하겠습니다. 모델이 표면 위에 서 있는 대신 표면과 평행하게 정렬되어 있는 상태입니다. 모델의 방향을 x축 기준으로 90도 회전시켜야 할 것 같습니다. 현재 폴리곤에서 사용할 수 있는 회전은 y축 기준으로만 가능한 것으로 보입니다.
제 스크립트를 참고용으로 첨부하였습니다. 답변해 주시면 감사하겠습니다.
https://drive.google.com/file/d/1Q8XIrPU2yab2j1u_U4ZQVtG0UoZNEob-/view?usp=sharing
` function renewObjectMoving() { if (GLOBAL.TRACE_TARGET == null) { return; } let anim = -1; var move_front = 0.0; var move_right = 0.0;
if (GLOBAL["KEY_PRESS_w"]) {
move_front = 1.0;
anim = 7;
} else if (GLOBAL["KEY_PRESS_s"]) {
move_front = -1.0;
anim = 0;
}
if (GLOBAL["KEY_PRESS_a"]) {
move_right = -1.0;
anim = 4;
} else if (GLOBAL["KEY_PRESS_d"]) {
move_right = 1.0;
anim = 6;
}
GLOBAL.TRACE_TARGET.move(move_front, move_right, true);
setAnimation(anim);
Module.XDRenderData();
} function TraceTarget(target) {
var layerList = new Module.JSLayerList(true);
var layer = layerList.createLayer("glTF_Test", Module.ELT_POLYHEDRON);
var polygon = Module.createGLTF("GLTF_Object");
polygon.loadFile({
url: GLOBAL.model_url,
type: "glb",
position: target,
rotate: 180,
rebuild: true,
callback: function (e) {
// polygon.setAnimationByID(0);
// polygon.setScale(new Module.JSSize3D(1.0, 1.0, 1.0));
GLOBAL.TRACE_TARGET = Module.createTraceTarget(polygon.getId());
GLOBAL.TRACE_TARGET.set({
object: polygon,
tilt: 160.0,
direction: 0.0,
distance: 7.0
});
layer.addObject(polygon, 0);
var camera = Module.getViewCamera();
camera.setPermitUnderGround(false);
camera.setTraceTarget(GLOBAL.TRACE_TARGET);
camera.setTraceActive(true);
}
});
} `
네~ 현재는 Y축 기준으로만 회전이됩니다. 다음 업데이트 예정일인 12월 6일에 hotfix로 기능을 추가하여 업데이트 하겠습니다.
엔진 버전 :2.8.4
문의 내용 :다각형을 서로 다른 축을 중심으로 회전시킬 수 있나요? `function TraceTarget(target) {
}`