Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [ExcludeComponent(typeof(NetworkIDComponent))]
- struct AssignNetworkIDJob : IJobForEachWithEntity_EBC<OutgoingRpcDataStreamBufferElement, NetworkStreamConnection>
- {
- public EntityCommandBuffer ECBuffer;
- public NativeArray<int> NumberOfNetworkIDs;
- public NativeQueue<int> FreeNetworkIDs;
- public RpcQueue<RpcSetNetworkID> RpcQueue;
- public void Execute(Entity entity, int index, DynamicBuffer<OutgoingRpcDataStreamBufferElement> buffer, [ReadOnly] ref NetworkStreamConnection connection)
- {
- if (!connection.value.IsCreated)
- {
- return;
- }
- // send the Rpc to assign network ID
- int NetworkID;
- if(!FreeNetworkIDs.TryDequeue(out NetworkID))
- {
- // Avoid using 0
- NetworkID = NumberOfNetworkIDs[0] + 1;
- NumberOfNetworkIDs[0] = NetworkID;
- }
- ECBuffer.AddComponent(entity, new NetworkIDComponent { value = NetworkID });
- RpcQueue.Schedule(buffer, new RpcSetNetworkID { networkID = NetworkID });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement