Skip to content

Null Reference Exception on RPC #3937

Description

@Magman3000

Description

A clear and concise description of what the bug is.

Reproduce Steps

Scene Control
Gets called when players join.

[Rpc(SendTo.Server, InvokePermission = RpcInvokePermission.Everyone)]
public void AddPlayer_ServerRpc(NetworkBehaviourReference playRef)
{
Debug.Log("Add");
if(!active.Value)
{
Debug.Log("Active");
netUI.Init();
active.Value = true;
}
if (playRef.TryGet(out PlayerController player))
{
player.FinishSetup_ServerRpc(playerScores.Value.Count);
}
netUI.AddName_ServerRpc(chat.GetName(playerScores.Value.Count));
Debug.Log("Net");
playerScores.Value.Add(0);
}
[Rpc(SendTo.Server, InvokePermission = RpcInvokePermission.Everyone)]
public void ChangeScore_ServerRpc(int score, int index)
{
playerScores.Value[index] = score;
netUI.UpdateScore_ClientRpc(index, score);
}

Damage
gets called when a bullet hits.

[Rpc(SendTo.Server, InvokePermission = RpcInvokePermission.Everyone)]
public void Damage_ServerRpc(float damage, int attacker)
{
HP.Value -= damage;
if (HP.Value <= 0 && IsOwner) {
sceneControl.Death(attacker);
HP.Value = maxHP;
}
Vector3 temp = healthBar.transform.localScale;
temp.x = HP.Value/maxHP;
healthBar.transform.localScale = temp;
if (temp.x > 0.5) healthBar.GetComponent<Renderer>().material.color = Color.green;
else if (temp.x < 0.5 && temp.x > 0.25) healthBar.GetComponent<Renderer>().material.color = Color.yellow;
else healthBar.GetComponent<Renderer>().material.color = Color.red;
}

Actual Outcome

RPC Called on Client

Scene Control

NullReferenceException: Object reference not set to an instance of an object
Unity.Netcode.NetworkBehaviour.__endSendRpc (Unity.Netcode.FastBufferWriter& bufferWriter, System.UInt32 rpcMethodId, Unity.Netcode.RpcParams rpcParams, Unity.Netcode.RpcAttribute+RpcAttributeParams attributeParams, Unity.Netcode.SendTo defaultTarget, Unity.Netcode.RpcDelivery rpcDelivery) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Core/NetworkBehaviour.cs:354)
SceneControl.AddPlayer_ServerRpc (Unity.Netcode.NetworkBehaviourReference playRef) (at Assets/Scripts/GameState/SceneControl.cs:28)
SceneControl.AddPlayer (PlayerController player) (at Assets/Scripts/GameState/SceneControl.cs:22)
PlayerController.OnEnable () (at Assets/Scripts/Player/PlayerController.cs:38)
UnityEngine.Behaviour:set_enabled(Boolean)
Enabler:Enable(Int32) (at Assets/Scripts/Player/Enabler.cs:40)
Enabler:OnNetworkSessionSynchronized() (at Assets/Scripts/Player/Enabler.cs:31)
Unity.Netcode.NetworkBehaviour:NetworkSessionSynchronized() (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Core/NetworkBehaviour.cs:853)
Unity.Netcode.NetworkObject:InternalNetworkSessionSynchronized() (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Core/NetworkObject.cs:2574)
Unity.Netcode.NetworkSpawnManager:NotifyNetworkObjectsSynchronized() (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Spawning/NetworkSpawnManager.cs:2182)
Unity.Netcode.NetworkSceneManager:HandleClientSceneEvent(UInt32) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/SceneManagement/NetworkSceneManager.cs:2396)
Unity.Netcode.NetworkSceneManager:ClientLoadedSynchronization(UInt32) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/SceneManagement/NetworkSceneManager.cs:2224)
Unity.Netcode.NetworkSceneManager:OnClientBeginSync(UInt32) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/SceneManagement/NetworkSceneManager.cs:2155)
Unity.Netcode.NetworkSceneManager:HandleClientSceneEvent(UInt32) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/SceneManagement/NetworkSceneManager.cs:2311)
Unity.Netcode.NetworkSceneManager:HandleSceneEvent(UInt64, FastBufferReader) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/SceneManagement/NetworkSceneManager.cs:2656)
Unity.Netcode.SceneEventMessage:Handle(NetworkContext&) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Messaging/Messages/SceneEventMessage.cs:29)
Unity.Netcode.NetworkMessageManager:ReceiveMessage(FastBufferReader, NetworkContext&, NetworkMessageManager) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Messaging/NetworkMessageManager.cs:568)
Unity.Netcode.NetworkMessageManager:HandleMessage(NetworkMessageHeader&, FastBufferReader, UInt64, Single, Int32) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Messaging/NetworkMessageManager.cs:422)
Unity.Netcode.NetworkMessageManager:ProcessIncomingMessageQueue() (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Messaging/NetworkMessageManager.cs:448)
Unity.Netcode.NetworkManager:NetworkUpdate(NetworkUpdateStage) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Core/NetworkManager.cs:349)
Unity.Netcode.NetworkUpdateLoop:RunNetworkUpdateStage(NetworkUpdateStage) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Core/NetworkUpdateLoop.cs:191)
Unity.Netcode.<>c:b__0_0() (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Core/NetworkUpdateLoop.cs:214)

Damage

ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
System.Collections.Generic.List`1[T].set_Item (System.Int32 index, T value) (at <59bd7c40c082431db25e1e728ab62789>:0)
NetUI.UpdateScore_ClientRpc (System.Int32 i, System.Int32 score) (at Assets/Scripts/Networking/NetUI.cs:44)
NetUI.__rpc_handler_3041977728 (Unity.Netcode.NetworkBehaviour target, Unity.Netcode.FastBufferReader reader, Unity.Netcode.__RpcParams rpcParams) (at <089320a6870740c387768579c22c6808>:0)
Unity.Netcode.RpcMessageHelpers.Handle (Unity.Netcode.NetworkContext& context, Unity.Netcode.RpcMetadata& metadata, Unity.Netcode.FastBufferReader& payload, Unity.Netcode.__RpcParams& rpcParams) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Messaging/Messages/RpcMessages.cs:79)
Rethrow as Exception: Unhandled RPC exception!
UnityEngine.Debug:LogException(Exception)
Unity.Netcode.RpcMessageHelpers:Handle(NetworkContext&, RpcMetadata&, FastBufferReader&, __RpcParams&) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Messaging/Messages/RpcMessages.cs:83)
Unity.Netcode.RpcMessage:Handle(NetworkContext&) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Messaging/Messages/RpcMessages.cs:223)
Unity.Netcode.NetworkMessageManager:ReceiveMessage(FastBufferReader, NetworkContext&, NetworkMessageManager) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Messaging/NetworkMessageManager.cs:568)
Unity.Netcode.NetworkMessageManager:HandleMessage(NetworkMessageHeader&, FastBufferReader, UInt64, Single, Int32) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Messaging/NetworkMessageManager.cs:422)
Unity.Netcode.NetworkMessageManager:ProcessIncomingMessageQueue() (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Messaging/NetworkMessageManager.cs:448)
Unity.Netcode.NetworkManager:NetworkUpdate(NetworkUpdateStage) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Core/NetworkManager.cs:349)
Unity.Netcode.NetworkUpdateLoop:RunNetworkUpdateStage(NetworkUpdateStage) (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Core/NetworkUpdateLoop.cs:191)
Unity.Netcode.<>c:b__0_0() (at ./Library/PackageCache/com.unity.netcode.gameobjects@c690afa8ab6e/Runtime/Core/NetworkUpdateLoop.cs:214)

Expected Outcome

RPC gets called

Screenshots

ImageImage

Environment

  • OS: [Windows]
  • Unity Version: [e.g. 6000.2.3f1]
  • Netcode Version: [2.10.0 ]
  • Netcode Commit: [e.g. https://github.com/Unity Technologies/com.unity.netcode.gameobjects/commit/ba418fa5b600ad9eb61fab0575f12fbecc2c6520]
  • Netcode Topology: [Default Unity Transport, ]

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions