PUN Classic (v1)、PUN 2 和 Bolt 處於維護模式。 PUN 2 將支援 Unity 2019 至 2022,但不會添加新功能。 當然,您所有的 PUN & Bolt 專案可以用已知性能繼續運行使用。 對於任何即將開始或新的專案:請切換到 Photon Fusion 或 Quantum。


If Bolt seems to be functioning incorrectly the first steps to try would be to:

  1. Ensure you've installed all files from the original Bolt package.
  2. Perform a Bolt install: Edit -> Bolt Install -> Yes
  3. Perform a Bolt compile: Assets -> Bolt Compile (All)
  4. Restart Unity

If you're still having issues then have a look below if any of it describes your problem and offers a solution. If not then feel free to open a topic in the Bolt Forums. For the best support it's recommended to include your OS, version of Unity, version of Bolt, a brief description of the issue and if possible the steps to reproduce the problem.

###Forgot to install


NullReferenceException: Object reference not set to an instance of object. BoltEditorGUI.Button( System.String icon)

You've probably installed the Bolt package but didn't perform its internal installation yet.
Try: Edit -> Bolt Install -> Yes

###Missing icons in Bolt UI

This is likely a case where you're missing some Bolt files related to its installation.
Try: Edit -> Bolt Install -> Yes

###Missing delete button in Bolt Editor UI (Bolt 0.4+)

With Bolt 0.4+ to remove any of the elements in the Bolt Editor you need to hold control to have the delete button show up.

###The transform is not syncing with the State to other Clients (Bolt 0.4+)

With Bolt 0.4+ ensure to link up the transform in Attached():

Note that this assumes the transform property on your State is called myTransform.

My implemented method X on BoltEntity is not being called

Ensure (where required) you're using for implementing Bolt methods:

The normal "Unity" way only works with Unity methods like Start and Update:

My Entity doesn't have the OnEvent() method

Can't override OnEvent() on BoltEntity since it doesn't exist

  1. To receive Entity Events you need to inherit from Bolt.EntityEventListener instead of Bolt.EntityBehaviour.
  2. Ensure your Event has been created through the Bolt Editor.
  3. Perform a Bolt Compile upon creation/changes in your Event.

For more information see Events

My Server callback is getting called twice

Or: Server/Client callback is getting called more than once.

You likely have the Callbacks script attached to a gameObject in the scene.
There is no need to do this as Bolt automatically attaches it to the scene for you.
Therefore it's calling twice.

Unity rigidbodies with authoritative players

Yes, but not with client side prediction. There is an experimental build of Unity that makes client side prediction possible, but not in a normal release of Unity yet.

For priority what is highest priority (sent first), the lowest value or highest value

The highest priority is the one with the highest value.

I got an error: KeyNotFoundException: The given key was not present in the dictionary.

You are probably testing your game with an out of date build.

Getting GlobalEventListeners to receive events after Bolt shuts down

Override “persistsBetweenShutdowns” to return true.

How to end SetTransform

Call SetTransform with null

I want to do ___ to the Bolt console, how do I do that?

By turning the console setting in Bolt Settings “visible by default” to false and implementing BoltLog.IWriter, you can use BoltLog.Add to add logs to your implementation. You then have full control.

I keep getting error: “Input queue is full”, what is happening?

This means the owner of the entity has not processed the previous commands send, so the queue is full. This is usually because the host has abruptly disconnected or is having low fps. Implementing “MissingCommand” in your script using commands may help.

SteamVR is causing Bolt to have lots of Frame Stall messages?

On the SteamVR_Render script there is an option on by default that messes up physics and client prediction for the authoritative server code: lockPhysicsUpdateRateToRenderFrequency. Make sure this is marked “false” in the prefab with this script.

Back to top