ZigSim을 사용하지 않고 스마트폰을 개발하여 Unity를 통해 기울임

3092 단어 Unity원형sigzimtech
스마트폰은 센서 블록이지만 실제로는 잘 사용하지 않는다

이른바 ZigSim


https://zig-project.com/
응용 프로그램 화면
Image from Gyazo
왼쪽 화면에서 보낼 센서 값을 선택하고 가운데 화면에서 실행하고 오른쪽은 IP 또는 Port 설정

스마트폰 센서 값 얻는 방법

  • 웹 브라우저에서 개발
  • JavaScript에서 Websocket을 사용하여 발송하고 서버 측에서 수신하며 Unity가 값을 얻는다
  • 또는 JavaScript에서 Unity
  • 로 직접 전송
  • 스마트폰을 위한 응용 개발
  • Kotlin 또는 Swift
  • Fluter와 같은 도구를 사용하여 교차 형식
  • Unity 개발 응용
  • 보다 못하다

    ZigSim 클립 사용


    아까 말씀드린 건 스마트폰 개발이 전혀 필요 없어요.

    시험해 보다

  • 스마트폰에 ZigSim 앱 설치
  • 유니티 프로젝트(이번 시도 버전: 2019.4.18)제작
  • Unity에서 스크립트 생성, 사본 코드 복사
  • 게임Object의 큐브 추가 스크립트 제작, 큐브 첨부
  • Unity 측 코드를 사용하여 포트 번호(LOCA LPORT)를 ZigSim 응용 프로그램과 일치(기본값은 50000호이기 때문에 특별히 조작할 필요가 없음)
  • PC의 IP 주소를 조사하고 ZigSim 앱의 설정부터 편집
  • 어플리케이션에서 Quaternion을 검사하여 시작
  • Unity 편집에서 시작
  • 소스 코드


    using UnityEngine;
    using System.Net.Sockets;
    using System.Net;
    using System.Text;
    
    public class UDPReceive : MonoBehaviour
    {
        [System.Serializable]
        public class ZigSimData
        {
            public Sensordata sensordata;
            public string timestamp;
        }
        [System.Serializable]
        public class Sensordata
        {
            public Quaternion quaternion;
        }
    
        public GameObject cube;
        public int LOCA_LPORT = 50000;
    
        private UdpClient udp;
    
        private readonly string testText = "{  \"device\": {    \"name\": \"unknown device (iPhone10,1)\",    \"displayheight\": 1334,    \"uuid\": \"zbmjCQARSd9oFVJ8\",    \"os\": \"ios\",    \"osversion\": \"14.7.1\",    \"displaywidth\": 750  },  \"timestamp\": \"2021_10_21_10:43:24.409\",  \"sensordata\": {    \"gyro\": {      \"y\": -0.29756850004196167,      \"x\": -0.014113557524979115,      \"z\": -0.27333009243011475    }}}";
        
        void Start()
        {
            udp = new UdpClient(LOCA_LPORT);
        }
    
        void Update()
        {
            IPEndPoint remoteEP = null;
            byte[] data = udp.Receive(ref remoteEP);
            string text = Encoding.ASCII.GetString(data);
            //Debug.Log(text);
    
            ZigSimData zigSimData = JsonUtility.FromJson<ZigSimData>(text);
            Debug.Log(zigSimData.sensordata.quaternion);
            cube.transform.rotation = zigSimData.sensordata.quaternion;
        }
    }
    
    
    

    감상


    매우 간단하다
    스마트폰 코드는 자바스크립트 같은 말로 기본적으로 간단하지만 전혀 쓰지 않아서 인상이 전혀 달라요!느낌 좋다!
    유사한 애플리케이션tramontana이 있으므로 꼭 확인해 주시기 바랍니다.
    OscJack도 신경쓰이고

    좋은 웹페이지 즐겨찾기