Skip to content

Null Reference Exception on RPC #3937

@Magman3000

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

Image Image

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, ]

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions