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

문제해결

Bolt의 기능이 잘 동작하지 않는다면 먼저 다음 사항들을 시도해주세요:

  1. 원시 Bolt 패키지의 모든 파일들을 설치했는지 확인해주세요.
  2. Edit -> Bolt Install -> Yes 에서 Bolt 설치를 수행 해주세요.
  3. Assets -> Bolt Compile (All) 에서 Bolt를 컴파일 해주세요.
  4. Unity를 재기동합니다.

여전히 문제가 해결되지 않았으면, 아래를 확인하여 문제점에 대한 해결책이 있는지 확인해보시기 바랍니다. 해결책이 없으면 Bolt 포럼의 주제를 확인해주시기 바랍니다. 최고의 지원을 받기 위해서 OS, Unity 버전, Bolt 버전, 이슈에 대한 설명과 가능하면 단계별로 문제가 발생하는 단계를 기술해 주시기 바랍니다.

###설치를 하지 않음

에러:

NullReferenceException: 객체 참조가 객체 인스턴스에 설정되지 않음.
BoltEditorGUI.Button( System.String icon)

Bolt 패키지를 설치했으나, 내부 설치를 아직 수행하지 않았습니다.
다음을 해주세요: Edit -> Bolt Install -> Yes

###Bolt UI의 누락된 아이콘

설치에 관련된 일부 Bolt 파일들을 누락한 경우일 것 입니다. 다음을 해주세요: Edit -> Bolt Install -> Yes

###Bolt 에디터 UI(Bolt 0.4+) 내의 삭제 버튼 누락

Bolt 0.4+ 에서는 Bolt 에디터내의 어떤 요소들을 제거하기 위해서는, 컨트롤키를 눌러 삭제 버튼이 나타나게 해야 합니다.

###다른 클라이언트들에게 트랜스폼이 상태와 같이 동기화가 되지 않습니다 (Bolt 0.4+)

Bolt 0.4+ 에서는 Attached() 메소드내에서 트랜스폼을 연결시켜야 합니다:

위 사항은 상태에 있는 트랜스폼 속성을 myTransform 이라고 가정합니다.

내가 구현한 BoltEntity의 X 메소드가 호출되지 않습니다

(필요한 곳에) Bolt 메소드들을 구현을 위해 사용하고 있는지 확인해주세요.

일반적인 "Unity" 방식은 Start, Update와 같은 Unity 메소드들과만 동작합니다:

엔티티가 OnEvent() 메소드를 가지고 있지 않습니다

BoltEntity에서는 OnEvent()가 존재하지 않기 때문에 오버라이드를 할 수 없습니다.

  1. 엔티티 이벤트를 수신하기 위해서는 Bolt.EntityBehaviour 대신 Bolt.EntityEventListener 에서 상속을 받아야 합니다.
  2. 이벤트가 Bolt Editor를 통해 생성되었는지 확인해주세요.
  3. 이벤트의 생성/변경이 발생하면 Bolt 컴파일을 해 주세요.

상세한 내용에 대해서는이벤트 를 참고해주세요.

서버 콜백이 두 번 호출됩니다

또는: 서버/클라이언트 콜백이 한번 이상 호출 됩니다.

씬 내의 게임오브젝트에게 붙여진 콜백 스크립트를 갖고 있을 것 입니다. Bolt가 자동적으로 씬에 붙여주기 때문에 이렇게 할 필요는 없습니다 따라서 두 번 호출되는 것 입니다.

신뢰성 있는 플레이어들을 가진 Unity rigidbody들

네, 하지만 클라이언트측 예측은 아닙니다. 클라이언트측 예측이 가능한 실험적인 Unity 빌드는 있으나, Unity의 정상 릴리즈에는 아직 포함되어 있지 않습니다.

무엇이 최고의 우선순위(가장 먼저 전송)를 가지며, 가장 낮은값 또는 가장 높은값은 무엇인가요

가장 높은 우선순위는 가장 높은 값을 갖고 있는 것 입니다.

오류가 발생했습니다: KeyNotFoundException: 주어진 키가 딕셔너리에 존재하지 않습니다.

날짜가 오래된 빌드로 게임을 테스트 하고 있을 것 같습니다.

Bolt가 셧다운 후에 이벤트 수신을 위해서 GlobalEventListeners 얻기

“persistsBetweenShutdowns” 를 오버라이트 하여 true를 리턴합니다.

SetTransform 종료방법

SetTransform을 null을 가지고 호출합니다

Bolt 콘솔에서 ___ 하고 싶어요. 어떻게 하나요?

Bolt 설정의 콘솔 설정에서 “visible by default” 를 false로 하고 BoltLog.IWriter를 구현하면 BoltLog.Add를 사용하여 구현에 로그를 추가할 수 있습니다. 완전한 제어권을 가지게 됩니다.

계속 오류가 발생합니다: “입력 큐가 가득찼습니다”, 무슨일인가요?

이 뜻은 엔티티의 소유자가 이전의 명령 전송을 처리하지 않아 큐가 가득찬 것 입니다. 일반적으로 호스트가 갑자기 연결이 끊어졌거나 낮은 fps를 가지기 때문입니다. 스크립트내에서 “MissingCommand” 를 구현하여 명령을 사용하는 것이 도움이 될 것 입니다.

SteamVR로 인해 Bolt에 프레임 스톨 메시지가 많이 발생하고 있습니까?

SteamVR_Render 스크립트에는 기본적으로 신뢰성있는 서버 코드인 lockPhysicsUpdateRateToRenderFrequency에 대한 물리 및 클라이언트 예측을 망칠 수 있는 옵션이 있습니다. 이 스크립트로 이 사항이 프리팹에서 "false"로 표시되어 있는지 확인하십시오.

Back to top