웹에서 디지털 트윈 기능을 개발할 때 활용할 수 있는 함수를 설명합니다. 사용자는 InsighTwin 화면을 활용하여 대시보드나 웹 페이지를 만들 때, 또는 웹에서 InsighTwin의 내부 레이아웃 혹은 카메라 등의 기능을 제어해야 할 필요가 있는 경우 다음의 함수를 활용할 수 있습니다.
HTML 버튼을 생성하고 클릭 이벤트를 통해 Unity 함수를 호출하는 기본 예시입니다.
<button id="camera-button" class="ui blue button">
카메라
</button>
<script>
let cameraButton = document.getElementById('camera-button');
cameraButton.addEventListener('click', function () {
// Canvas 오브젝트에 SetCameraMachineView 함수를 호출하며 파라미터로 "491" 전달
unityInstance.SendMessage('Canvas', 'SetCameraMachineView', "491");
});
</script>
설명: 위 예시는 "카메라"라는 버튼을 클릭하면
MchId가 "491"인 장비로 카메라를 이동시키는 코드입니다.
unityInstance.SendMessage("Canvas", "SetFloorVisible", "각 층별 바닥 표시 여부 값")
0: 비표시 / 1: 표시 / 2: 반투명 처리00112 (1,2층 표시 / 3,4층 비표시 / 5층 반투명)unityInstance.SendMessage("Canvas", "SetGroupVisible", "각 그룹별 표시 여부 값")
0: 비표시 / 1: 표시 / 2: 반투명 처리001122 (0,1그룹 표시 / 2,3그룹 비표시 / 4,5그룹 반투명)// 장비 표시 제어
unityInstance.SendMessage("Canvas", "SetObjVisible", "M" + "장비ID")
unityInstance.SendMessage("Canvas", "SetObjInvisible", "M" + "장비ID")
// 액세서리 표시 제어
unityInstance.SendMessage("Canvas", "SetObjVisible", "A" + "액세서리ID")
unityInstance.SendMessage("Canvas", "SetObjInvisible", "A" + "액세서리ID")
unityInstance.SendMessage("Canvas", "SetInformationVisible", "말풍선 표시 여부 값")
0 (표시) / 1 (비표시)공통 파라미터 설명:
대부분의 카메라 이동 함수는 아래의 포맷을 따릅니다.
"ID, 거리(1~3, Default:2), 좌우각도(0~360, Default:0), 상하각도(0~90, Default:45)"
- ID를 제외한 나머지 값은 생략 시 Default 값으로 설정됩니다.
unityInstance.SendMessage("Canvas", "SetCameraMachineView", "장비ID 및 카메라 설정 값")
"8, 3, 180, 45" (장비ID 8, 거리 3, 뒤쪽(180도)에서, 상하 30도 각도)unityInstance.SendMessage("Canvas", "SetCameraAccessoryView", "액세서리ID 및 카메라 설정 값")
unityInstance.SendMessage("Canvas", "SetCameraDangerAreaView", "구역ID 및 카메라 설정 값")
unityInstance.SendMessage("Canvas", "SetCameraAnythingView", "No 값 및 카메라 설정 값")
unityInstance.SendMessage("Canvas", "SetCameraNumberView", "카메라 번호")
0 ~ 20 (카메라 1 ~ 21에 해당)unityInstance.SendMessage("Canvas", "SetCameraCarrierView", "물류ID 및 카메라 설정" + ", 0")
, "0"을 추가하면 카메라 이동 대신 해당 물류를 핀으로 하이라이트합니다.unityInstance.SendMessage("Canvas", "SetViewMoving", "숫자")
1(↑), 2(↓), 3(←), 4(→)5(In), 6(Out)11(↑), 12(↓), 13(←), 14(→)SetPropertyValue 함수를 통해 다양한 속성을 제어합니다.
| 기능 | 키(Key) | 값(Value) 설명 | 예시 |
|---|---|---|---|
| Picking 활성화 | PickingEnable |
true/false (좌클릭 상세정보 활성화) |
PickingEnable:true |
| 개발자 모드 | DeveloperMode |
true/false |
DeveloperMode:true |
| 정보창 크기 | InformationScale |
0.2 ~ 2 (float) |
InformationScale:1.5 |
| 정보창 높이 | InformationHeight |
-2 ~ 5 (float) |
InformationHeight:1.0 |
| 정보창 투명도 | InformationAlpha |
0 ~ 1 (float) |
InformationAlpha:0.5 |
| 카메라 속도 | CameraSpeed |
1 ~ 30 (float) |
CameraSpeed:10 |
| 텍스트 표시 거리 | TextColorBorder |
0.5 ~ 20 (float) |
TextColorBorder:10 |
| 키보드 이동 속도 | KeyBMovingSpeed |
1 ~ 5 (int) |
KeyBMovingSpeed:3 |
| 키보드 회전 속도 | KeyBRotationSpeed |
1 ~ 5 (int) |
KeyBRotationSpeed:3 |
| 언어 설정 | Language |
kor, jpn, eng |
Language:eng |
| 모드 변경 | InsighTwinMode |
0 (Default), 1~ (Custom) |
InsighTwinMode:1 |
unityInstance.SendMessage("Canvas", "SetCaptureAllKeyboardInput", "true/false")
true: Unity가 입력 받음 / false: 웹 페이지가 입력 받음unityInstance.SendMessage("Canvas", "RequestDataReinitialization")
unityInstance.SendMessage("Canvas", "SetRequestInterval", "시간(초)")
machinestatus, carrierposition 등의 데이터 갱신 주기를 설정합니다. (최소 0.5초)InsighTwin(Unity) 내부에서 특정 이벤트가 발생했을 때 웹 페이지의 JavaScript 함수를 호출합니다.
Picking 모드 활성화 혹은 Ctrl + 클릭 시 호출됩니다.
mchId: 클릭한 장비의 IDpickingData: 3D 오브젝트 타입활용: 장비 클릭 시 웹 페이지에 팝업창을 띄워 상세 정보를 보여줄 때 사용합니다.
InsighTwin 로딩 상태를 반환합니다.
msg:
"Initialization start": 초기화 시작"Initialization done": 초기화 완료현재 상태 값을 반환합니다.
type: 현재는 "Mode" 값만 반환 (확장 예정)status: 선택한 모드 값 (예: No=0, No=3)