간단한 클라우드 스크립팅 프로젝트 만들기
이 문서에서는 Mesh Cloud Scripting을 사용하여 간단한 프로젝트를 만들고 게시합니다. 이 문서에서는 시스템에 클라우드 스크립팅을 이미 설정했음을 가정합니다. Mesh Cloud Scripting으로 개발을 시작하기 전에 메시 도구 키트의 현재 알려진 문제 목록을 숙지하는 것이 좋습니다.
Mesh Cloud Scripting 인프라 및 관리에 대해 자세히 알아봅니다.
Mesh Cloud Scripting을 사용하여 장면 만들기
다음 지침에서는 사용자가 클릭할 때 회전하는 큐브를 사용하여 간단한 환경을 만드는 방법을 보여 줍니다.
새로 만들기 또는 기존 프로젝트 업데이트라는 문서로 이동합니다. 새 프로젝트를 만드는 경우 새 프로젝트 만들기 섹션의 모든 단계를 수행해야 합니다. 기존 프로젝트를 업데이트하는 경우 기존 프로젝트 업데이트라는 섹션에 대해 동일한 작업을 수행합니다.
새 장면을 만듭니다.
장면에 이동 지점을 추가합니다.
장면을 저장하고 이름을 지정합니다. 이 예제에서는 MyFirstCloudScripting이라는 이름을 사용합니다.
메뉴 모음에서 GameObject Mesh 도구 키트>설정 클라우드 스크립팅을 선택합니다.>
메시 클라우드 스크립팅이라는 게임 개체가 계층 구조에 나타나고 선택됩니다. 검사기에서 응용 프로그램 폴더 열기 단추를 클릭하면 ...
... Windows 파일 탐색기 자산에 MyFirstCloudScripting.csproj라는 새 ASP.NET Core 프로젝트도 만들어집니다 > . MeshCloudScripting > MyFirstCloudScripting 폴더입니다.
장면 수정
메시 에뮬레이션을 사용하여 재생 모드를 설정합니다. 바닥 역할을 할 수 있는 장면에 GameObject를 추가하고 GroundCollision 계층으로 설정해야 합니다.
메시 에뮬레이션을 사용하여 재생 모드를 설정하면 이 시점부터 사용할 카메라가 포함된 장면에 프리팹 MeshEmulatorSetup[NoUpoload] 가 추가됩니다. 기본 카메라 GameObject가 더 이상 필요하지 않습니다. 삭제합니다.
메뉴 모음에서 GameObject 3D 개체>큐브를 선택합니다.>
계층 구조에서 Cube를 Mesh Cloud Scripting 개체로 끌어 큐브를 해당 개체의 자식으로 만듭니다.
큐브를 선택한 상태에서 검사기에서 변환 구성 요소로 이동한 다음 큐브의 위치 및 회전 값을 다음으로 변경합니다.
위치: X = 0.1, Y = 1.5, Z = 3.3.
회전: X = -15, Y = 0.8, Z = 0.1
팁: MeshEmulatorSetup[NoUpload] 프리팹의 카메라 는 AvatarHead의 자식 개체입니다.
검사기에서 구성 요소 추가를 클릭한 다음 메시 상호 작용 가능 설정을 선택합니다.
장면을 저장합니다.
C# 프로젝트 수정
계층 구조에서 Mesh Cloud Scripting 개체를 선택합니다.
검사기에서 메시 클라우드 스크립팅 구성 요소로 이동한 다음 애플리케이션 폴더 열기 단추를 클릭합니다. 그러면 파일 탐색기 열리고 프로젝트 내용의 보기가 표시됩니다.
코드 편집기
App.cs
에서 스크립트를 엽니다.App 클래스에는 두 가지 변수가 있습니다.
private readonly ILogger<App> _logger; private readonly ICloudApplication _app;
다음을 세 번째 변수로 추가합니다.
private float _angle = 0;
StartAsync 메서드에는 "여기에 앱 시작 코드 추가"라는 단일 주석이 포함되어 있습니다. StartAsync 메서드가 다음과 같이 보이도록 아래 코드로 바꿉다.
public Task StartAsync(CancellationToken token) { // First we find the TransformNode that corresponds to our Cube gameobject var transform = _app.Scene.FindFirstChild<TransformNode>(); // Then we find the InteractableNode child of that TransformNode var sensor = transform.FindFirstChild<InteractableNode>(); // Handle a button click sensor.Selected += (_, _) => { // Update the angle on each click _angle += MathF.PI / 8; transform.Rotation = new Rotation { X = 1, Y = 0, Z = 0, Angle = _angle }; }; return Task.CompletedTask; }
작업 내용을 저장합니다.
로컬로 응용 프로그램 실행
- Unity에서 Unity 편집기 재생 단추를 클릭합니다.
- 게임 창에서 큐브를 클릭합니다. 클릭할 때마다 큐브는 "X" 축에서 회전합니다.
- 완료되면 재생 모드를 종료합니다.
Visual Studio를 사용하여 애플리케이션 디버그(선택 사항)
계층 구조에서 Mesh Cloud Scripting 개체가 선택되어 있는지 확인합니다.
검사기에서 Mesh Cloud Scripting 구성 요소로 이동한 다음 애플리케이션 디버깅 사용을 선택합니다.
재생 모드를 입력하고 디버거를 선택합니다.
App.cs 파일을 연 다음 중단점을 추가한 다음 실행을 계속합니다.
Unity에서 큐브를 클릭합니다.
참고 항목
기본적으로 애플리케이션은 2분 동안 비활성 상태인 후 시간이 초과됩니다. 이 창을 늘리려면 매니페스트 파일(예: "debugTimeoutSecs": "240"
)에서 값을 설정합니다"debugTimeoutSecs"
.
환경 빌드 및 게시
환경을 빌드하고 게시하려면 빌드 및 환경 게시 문서의 지침을 따릅니다.
Unity에서 클라우드 스크립팅 서비스에 연결
참고 항목
ServiceMode가 Dev로 설정된 경우에만 사용할 수 있습니다.
- 계층 구조에서 Mesh Cloud Scripting 개체가 선택되어 있는지 확인합니다.
- 검사기에서 메시 클라우드 스크립팅 구성 요소로 이동한 다음 개발자 설정 드롭다운을 엽니다.
- 로컬 클라우드 스크립팅 서버 실행 선택을 취소합니다.
- Unity 편집기 재생 단추를 클릭합니다.
메시 앱에서 이벤트 만들기 및 참가
- 방금 빌드하고 게시한 환경을 사용하여 이벤트를 만듭니다. 지침이 필요한 경우 Mesh 포털에서 이벤트를 만드는 방법을 참조하세요.
- Mesh 앱에서 이벤트에 참가합니다.
Microsoft Mesh 애플리케이션에서 Mesh Cloud Scripting Service 오류 표시(선택 사항)
클라우드 스크립팅 서비스의 오류 메시지는 기본적으로 사용자 중단을 최소화하기 위해 Mesh 앱에 표시되지 않습니다. 디버그 목적으로 이러한 메시지를 표시해야 하는 경우 다음 단계를 사용합니다.
Mesh 앱을 엽니다.
메뉴 단추를 클릭한 다음 설정을 선택합니다.
왼쪽 메뉴 모음에서 개발자용을 선택합니다.
메시 스크립팅 오류 표시 단추를 "켜기"로 전환합니다.