소개
최신 응용 프로그램에서 실시간 위치 추적은 많은 프로젝트의 핵심 부분이되었습니다. 예를 들어, 실시간 포지셔닝, 내비게이션, 멀티 플레이어 게임 등은 모두이 기능에 의존합니다. 이 기사는 PHP 및 Unity3D를 통해 단계별로 이동하여 현장에서 실시간 위치 추적 기능을 실현하여 개발자 가이 기술을 이해하고 구현할 수 있도록 도와줍니다.
전제 조건 준비
시작하기 전에 다음 준비를 완료했는지 확인하십시오 .- ** Unity3d ** 설치 Unity 공식 웹 사이트를 방문하여 최신 버전의 Unity3d를 다운로드하여 설치하십시오. - ** PHP 및 Workerman 설치 ** : 서버에 PHP를 설치하고 Composer를 통해 Workerman 프레임 워크를 설치하십시오.
구현 프로세스
1. Unity3d 프로젝트를 만듭니다
먼저 Unity3d를 개방하고 새 프로젝트를 만듭니다. 장면에 3D 모델을 추적 객체로 배치하십시오.
2. Unity3d 스크립트를 쓰십시오
`trackingscript.cs`라는 Unity3d에서 C# 스크립트를 작성하고 다음 코드를 입력하십시오.
UnityEngine 사용;
공개 클래스 추적 스크립트 : Monobehaviour
{
개인 소켓 소켓;
개인 void start ()
{
// 서버 소켓에 연결 = 새 소켓 (wasshefamily.internetwork, sockettype.stream, protocoltype.tcp);
socket.connect ( "서버 IP 주소", 2345);
debug.log ( "성공적으로 연결");
}
개인 void update ()
{
// 현재 위치를 가져옵니다 vector3 position = transform.Position;
// 소켓 문자열 메시지를 통해 위치 정보를 서버로 전송합니다.
바이트 [] buffer = encoding.default.getBytes (메시지);
Socket.send (버퍼);
}
개인 void ondestroy ()
{
// 게임이 끝날 때 연결 Socket.close ()를 닫습니다.
}
}
3. 서버 측 PHP 파일을 만듭니다
서버에서`tracking_server.php`라는 PHP 파일을 작성하고 다음 코드를 추가하십시오.
요구_once __dir__. '/vendor/autoload.php';
Workerman \ Worker를 사용하십시오.
$ Worker = New Worker ( "WebSocket : //0.0.0.0 : 2345");
$ worker-> onmessage = function ($ connection, $ data) {
// 위치 정보를 수신 한 후, 모든 연결된 클라이언트에게 방송 ($ connection-> worker-> 연결로 $ client_connection) {
$ client_connection-> send ($ data);
}
};
작업자 :: runall ();
4. 서버를 시작하십시오
서버 측을 시작하려면 명령 줄에서 다음 명령을 실행하십시오.
php tracking_server.php start
5. Unity3d에서 게임을 실행하십시오
Unity3d에서 실행 버튼을 클릭하면 게임이 시작됩니다. 3D 모델이 이동하면 위치 정보가 소켓을 통해 서버로 전송됩니다.
6. Unity3d 장면에 스크립트를 추가하십시오
Unity3d 장면의`trackingscript.cs '스크립트를 빈 개체에 첨부하고 스크립트에 설정된 서버 IP 주소가 올바른지 확인하십시오.
7. 실시간 위치 추적
이 시점에서 Unity3D에서 3D 모델의 위치를 실시간으로 추적하는 기능을 성공적으로 구현했습니다. 모델이 이동할 때마다 위치 정보는 소켓을 통해 실시간으로 PHP 서버로 전송되며 서버는이 정보를 모든 연결된 클라이언트에 방송합니다.
요약
PHP의 Workerman 프레임 워크를 Unity3D와 결합하여 간단한 실시간 위치 추적 기능을 성공적으로 구현했습니다. 개발자는 실시간 멀티 플레이어 게임에서 위치 동기화, 내비게이션 기능 등과 같은 실제 요구에 따라 기능을 확장 할 수 있습니다. 이 기사가 도움이되기를 바랍니다.