PUN Classic (v1), PUN 2, Bolt는 휴업 모드입니다. Unity2022에 대해서는 PUN 2에서 서포트하지만, 신기능의 추가는 없습니다. 현재 이용중인 고객님의 PUN 및 Bolt 프로젝트는 중단되지 않고, 퍼포먼스나 성능이 떨어지는 일도 없습니다. 앞으로의 새로운 프로젝트에는 Photon Fusion 또는 Quantum을 사용해 주십시오.

v1.2.6의 새로운 사항

주요 변경사항:

전체 변경 내용은, 여기로그를 확인해 주십시오.

새로운 바이너리 채널

Bolt 연결에서 피어 간에 어떤한 원시 데이터라도 전송하는데 사용할 수 있는 새로운 바이너리 Channel이 추가되었습니다. Bolt가 제공하는 메소드가 적당하지 않은 사용자 지정 통신이 필요한 게임 설계일 때 매우 유용합니다.

이 통신 채널은 다른 내부 채널보다 더 높은 우선순위를 가지고 있으므로, 이를 통해 데이터를 전송할 때 모든 기타 정보(이벤트, 상태와 명령)를 패키징 하는데 영향을 줄 수 있다는 것을 명심하세요. 채널 사용방법은 아래를 참고하세요:

C#

// Send an arbitrary byte array to the target BoltConnection
void SendData(BoltConnection conn, byte[] data)
{
    conn.SendData(data);
}

// Try to receive data from the BoltConnection
// If there is no information to receive, the `conn.ReceiveData`
// will return false, and the byte array will be null
byte[] ReceiveData(BoltConnection conn)
{
    byte[] input;

    if (conn.ReceiveData(out input))
    {
        return input;
    }

    return null;
}

이 기능을 사용하는 전체 스크립트는 여기를 확인하세요.

새로운 JSON 프로젝트 시리얼라이저

Bolt 프로젝트(모든 Bolt 자산 정의가 저장된 파일)는 바이너리 또는 XML 형식으로 직렬화됩니다. 이제 모든 이 정보는 JSON 파일로 저장될 것입니다. 먼저, 이 사항이 프로젝트에 큰 영향을 미치는 것은 아닙니다. 또한 프로젝트로 자산을 불러오고/내보내는 기능을 추가할 예정이므로, 게임 샘플을 생성하거나 프로젝트 간에 구성 정보를 공유하는 것은 쉬워질 것입니다.

원격 씬 자동 로드 사용금지하기

게임 호스트가 씬을 변경했을 때, 원격 클라이언트에서 씬을 자동 로드하는 Bolt 기능을 사용 금지할 수 있습니다. 기본적으로, 서버가 새로운 씬을 로드 할 때마다, 게임이 동기화되는 것을 유지하도록 모든 클라이언트들은 메시지를 수신하여 동일한 작업을 하게 됩니다. Bolt 설정윈도우에서 Disable Auto load Scene on Remotes 를 체크하여 이 설정을 변경할 수 있습니다.

disable auto load scene
Disable Auto Load Scene option.

변경된 Bolt 메뉴

Bolt는 유니티 에디터의 탑 레벨상에 통합된 메뉴를 갖고 있습니다. 이 메뉴를 통해, 윈도우간 더 빠른 이동 그리고 Bolt 가 제공하는 옵션에 빠르게 접근할 수 있습니다. Assets 그리고 Window 메뉴를 통해 가는 대신, 모든 항목들이 Bolt 헤더 내에 존재합니다.

new bolt menu
New Bolt Menu.

IPv6 지원 [Bolt 프로]

v1.2.6 버전부터 시작하여 게임 호스트 또는 게임 클라이언트로 시작할 때 피어에 IPv6를 할당할 수 있습니다. 이 지원을 사용하기 위해서는 다음과 같이 BoltLauncher의 메소드를 호출할 때 유효한 IPv6를 전달합니다:

C#

void StartServer(ushort serverPort)
{
    BoltConfig config = BoltRuntimeSettings.instance.GetConfigCopy();
    config.EnableIPv6 = true;

    BoltLauncher.StartServer(new UdpEndPoint(UdpIPv6Address.Any, serverPort), config);
}

void StartClient()
{
    BoltConfig config = BoltRuntimeSettings.instance.GetConfigCopy();
    config.EnableIPv6 = true;

    BoltLauncher.StartClient(UdpEndPoint.AnyIPv6, config);
}

void ConnectToServer(string serverAddress, ushort serverPort)
{
    UdpEndPoint endPoint = new UdpEndPoint(UdpIPv6Address.Parse(serverAddress), serverPort);
    BoltNetwork.Connect(endPoint);
}
Back to top