working on multiplayer - still delay with more actors :/
This commit is contained in:
@@ -21,8 +21,10 @@ namespace RebootReality.jelycho {
|
||||
base.OnActorCommandServer(actorCommand);
|
||||
|
||||
if (actorCommand.CommandID == (ushort) ActorSpawnerCommands.SpawnActor) {
|
||||
(Vector3 spawnPoint, Quaternion spawnRotation) = GetSpawnPoint();
|
||||
RR.SpawnActor(m_ActorPrefabReference, spawnPoint, spawnRotation);
|
||||
for (int i = 0; i < 200; ++i) {
|
||||
(Vector3 spawnPoint, Quaternion spawnRotation) = GetSpawnPoint();
|
||||
RR.SpawnActor(m_ActorPrefabReference, spawnPoint, spawnRotation);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using RebootKit.Engine.Main;
|
||||
using RebootKit.Engine.Network;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using Unity.Netcode;
|
||||
using UnityEngine;
|
||||
@@ -6,10 +7,14 @@ using UnityEngine.AddressableAssets;
|
||||
|
||||
namespace RebootReality.jelycho.Beacons {
|
||||
public class BaseManagerActorData : IActorData {
|
||||
public void Serialize(FastBufferWriter writer) {
|
||||
public void Serialize(NetworkBufferWriter writer) {
|
||||
}
|
||||
|
||||
public void Deserialize(FastBufferReader reader) {
|
||||
public void Deserialize(NetworkBufferReader reader) {
|
||||
}
|
||||
|
||||
public int GetMaxBytes() {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,12 +26,16 @@ namespace RebootReality.jelycho.Beacons {
|
||||
public struct SpawnBeaconCommandData : ISerializableEntity {
|
||||
public Vector3 Position;
|
||||
|
||||
public void Serialize(FastBufferWriter writer) {
|
||||
writer.WriteValue(Position);
|
||||
public void Serialize(NetworkBufferWriter writer) {
|
||||
writer.Write(Position);
|
||||
}
|
||||
|
||||
public void Deserialize(FastBufferReader reader) {
|
||||
reader.ReadValue(out Position);
|
||||
public void Deserialize(NetworkBufferReader reader) {
|
||||
reader.Read(out Position);
|
||||
}
|
||||
|
||||
public int GetMaxBytes() {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
using RebootKit.Engine.Simulation;
|
||||
using Unity.Netcode;
|
||||
using RebootKit.Engine.Network;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using UnityEngine;
|
||||
|
||||
namespace RebootReality.jelycho.Enemies {
|
||||
public class ZombieActorData : IActorData {
|
||||
public void Serialize(FastBufferWriter writer) {
|
||||
public void Serialize(NetworkBufferWriter writer) {
|
||||
}
|
||||
|
||||
public void Deserialize(FastBufferReader reader) {
|
||||
public void Deserialize(NetworkBufferReader reader) {
|
||||
}
|
||||
|
||||
public int GetMaxBytes() {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using HighlightPlus;
|
||||
using RebootKit.Engine.Network;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using Unity.Netcode;
|
||||
using UnityEngine;
|
||||
@@ -11,8 +12,12 @@ namespace RebootReality.jelycho.Items {
|
||||
class ItemActorData : IActorData {
|
||||
public ItemConfig Config;
|
||||
|
||||
public void Serialize(FastBufferWriter writer) { }
|
||||
public void Deserialize(FastBufferReader reader) { }
|
||||
public void Serialize(NetworkBufferWriter writer) { }
|
||||
public void Deserialize(NetworkBufferReader reader) { }
|
||||
|
||||
public int GetMaxBytes() {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
[field: SerializeField] public ItemConfig Config { get; private set; }
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Globalization;
|
||||
using RebootKit.Engine.Main;
|
||||
using RebootKit.Engine.Network;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using TMPro;
|
||||
using Unity.Netcode;
|
||||
@@ -11,12 +12,16 @@ namespace RebootReality.jelycho.Items {
|
||||
class WorkbenchActorData : IActorData {
|
||||
public int SelectedRecipeIndex;
|
||||
|
||||
public void Serialize(FastBufferWriter writer) {
|
||||
writer.WriteValue(SelectedRecipeIndex);
|
||||
public void Serialize(NetworkBufferWriter writer) {
|
||||
writer.Write(SelectedRecipeIndex);
|
||||
}
|
||||
|
||||
public void Deserialize(FastBufferReader reader) {
|
||||
reader.ReadValue(out SelectedRecipeIndex);
|
||||
public void Deserialize(NetworkBufferReader reader) {
|
||||
reader.Read(out SelectedRecipeIndex);
|
||||
}
|
||||
|
||||
public int GetMaxBytes() {
|
||||
return sizeof(int);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using RebootKit.Engine.Extensions;
|
||||
using RebootKit.Engine.Foundation;
|
||||
using RebootKit.Engine.Main;
|
||||
using RebootKit.Engine.Network;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using RebootKit.Engine.Simulation.Sensors;
|
||||
using RebootReality.jelycho.Items;
|
||||
@@ -145,7 +146,7 @@ namespace RebootReality.jelycho.Player {
|
||||
|
||||
m_SyncRemoteStateTimer -= deltaTime;
|
||||
if (m_SyncRemoteStateTimer <= 0.0f) {
|
||||
m_SyncRemoteStateTimer = 1.0f / RR.TickRate.IndexValue;
|
||||
m_SyncRemoteStateTimer = 1.0f / NetworkSystem.TickRate.IndexValue;
|
||||
|
||||
RemotePlayerActorState remoteState = new RemotePlayerActorState {
|
||||
Position = transform.position,
|
||||
@@ -672,9 +673,13 @@ namespace RebootReality.jelycho.Player {
|
||||
}
|
||||
|
||||
public class PlayerActorData : IActorData {
|
||||
public void Serialize(FastBufferWriter writer) { }
|
||||
public void Serialize(NetworkBufferWriter writer) { }
|
||||
|
||||
public void Deserialize(FastBufferReader reader) { }
|
||||
public void Deserialize(NetworkBufferReader reader) { }
|
||||
|
||||
public int GetMaxBytes() {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public struct RemotePlayerActorState : IActorData {
|
||||
@@ -684,20 +689,27 @@ namespace RebootReality.jelycho.Player {
|
||||
public float LookYaw;
|
||||
public bool IsGrounded;
|
||||
|
||||
public void Serialize(FastBufferWriter writer) {
|
||||
writer.WriteValue(Position);
|
||||
writer.WriteValue(Velocity);
|
||||
writer.WriteValue(LookPitch);
|
||||
writer.WriteValue(LookYaw);
|
||||
writer.WriteValue(IsGrounded);
|
||||
public void Serialize(NetworkBufferWriter writer) {
|
||||
writer.Write(Position);
|
||||
writer.Write(Velocity);
|
||||
writer.Write(LookPitch);
|
||||
writer.Write(LookYaw);
|
||||
writer.Write(IsGrounded);
|
||||
}
|
||||
|
||||
public void Deserialize(FastBufferReader reader) {
|
||||
reader.ReadValue(out Position);
|
||||
reader.ReadValue(out Velocity);
|
||||
reader.ReadValue(out LookPitch);
|
||||
reader.ReadValue(out LookYaw);
|
||||
reader.ReadValue(out IsGrounded);
|
||||
public void Deserialize(NetworkBufferReader reader) {
|
||||
reader.Read(out Position);
|
||||
reader.Read(out Velocity);
|
||||
reader.Read(out LookPitch);
|
||||
reader.Read(out LookYaw);
|
||||
reader.Read(out IsGrounded);
|
||||
}
|
||||
|
||||
public int GetMaxBytes() {
|
||||
return sizeof(float) * 3 + // Position;
|
||||
sizeof(float) * 3 + // Velocity
|
||||
sizeof(float) * 2 + // LookPitch, LookYaw
|
||||
sizeof(bool); // IsGrounded
|
||||
}
|
||||
}
|
||||
|
||||
@@ -714,12 +726,16 @@ namespace RebootReality.jelycho.Player {
|
||||
struct PlayerActorPickupItemCommand : IActorData {
|
||||
public ulong ItemActorID;
|
||||
|
||||
public void Serialize(FastBufferWriter writer) {
|
||||
writer.WriteValue(ItemActorID);
|
||||
public void Serialize(NetworkBufferWriter writer) {
|
||||
writer.Write(ItemActorID);
|
||||
}
|
||||
|
||||
public void Deserialize(FastBufferReader reader) {
|
||||
reader.ReadValue(out ItemActorID);
|
||||
public void Deserialize(NetworkBufferReader reader) {
|
||||
reader.Read(out ItemActorID);
|
||||
}
|
||||
|
||||
public int GetMaxBytes() {
|
||||
return sizeof(ulong); // ItemActorID
|
||||
}
|
||||
}
|
||||
|
||||
@@ -727,38 +743,50 @@ namespace RebootReality.jelycho.Player {
|
||||
public int InventorySlotIndex;
|
||||
public int Count;
|
||||
|
||||
public void Serialize(FastBufferWriter writer) {
|
||||
writer.WriteValue(InventorySlotIndex);
|
||||
writer.WriteValue(Count);
|
||||
public void Serialize(NetworkBufferWriter writer) {
|
||||
writer.Write(InventorySlotIndex);
|
||||
writer.Write(Count);
|
||||
}
|
||||
|
||||
public void Deserialize(FastBufferReader reader) {
|
||||
reader.ReadValue(out InventorySlotIndex);
|
||||
reader.ReadValue(out Count);
|
||||
public void Deserialize(NetworkBufferReader reader) {
|
||||
reader.Read(out InventorySlotIndex);
|
||||
reader.Read(out Count);
|
||||
}
|
||||
|
||||
public int GetMaxBytes() {
|
||||
return sizeof(int) * 2; // InventorySlotIndex, Count
|
||||
}
|
||||
}
|
||||
|
||||
struct PlayerActorEquipItemCommand : IActorData {
|
||||
public int InventorySlotIndex;
|
||||
|
||||
public void Serialize(FastBufferWriter writer) {
|
||||
writer.WriteValue(InventorySlotIndex);
|
||||
public void Serialize(NetworkBufferWriter writer) {
|
||||
writer.Write(InventorySlotIndex);
|
||||
}
|
||||
|
||||
public void Deserialize(FastBufferReader reader) {
|
||||
reader.ReadValue(out InventorySlotIndex);
|
||||
public void Deserialize(NetworkBufferReader reader) {
|
||||
reader.Read(out InventorySlotIndex);
|
||||
}
|
||||
|
||||
public int GetMaxBytes() {
|
||||
return sizeof(int); // InventorySlotIndex
|
||||
}
|
||||
}
|
||||
|
||||
struct PlayerActorSelectItemSlotCommand : IActorData {
|
||||
public int SlotIndex;
|
||||
|
||||
public void Serialize(FastBufferWriter writer) {
|
||||
writer.WriteValue(SlotIndex);
|
||||
public void Serialize(NetworkBufferWriter writer) {
|
||||
writer.Write(SlotIndex);
|
||||
}
|
||||
|
||||
public void Deserialize(FastBufferReader reader) {
|
||||
reader.ReadValue(out SlotIndex);
|
||||
public void Deserialize(NetworkBufferReader reader) {
|
||||
reader.Read(out SlotIndex);
|
||||
}
|
||||
|
||||
public int GetMaxBytes() {
|
||||
return sizeof(int); // SlotIndex
|
||||
}
|
||||
}
|
||||
|
||||
@@ -772,12 +800,16 @@ namespace RebootReality.jelycho.Player {
|
||||
struct PlayerActorPrimaryEquippedItemChangedEvent : IActorData {
|
||||
public ulong ItemActorID;
|
||||
|
||||
public void Serialize(FastBufferWriter writer) {
|
||||
writer.WriteValue(ItemActorID);
|
||||
public void Serialize(NetworkBufferWriter writer) {
|
||||
writer.Write(ItemActorID);
|
||||
}
|
||||
|
||||
public void Deserialize(FastBufferReader reader) {
|
||||
reader.ReadValue(out ItemActorID);
|
||||
public void Deserialize(NetworkBufferReader reader) {
|
||||
reader.Read(out ItemActorID);
|
||||
}
|
||||
|
||||
public int GetMaxBytes() {
|
||||
return sizeof(ulong); // ItemActorID
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
using R3;
|
||||
using RebootKit.Engine.Foundation;
|
||||
using RebootKit.Engine.Main;
|
||||
using RebootKit.Engine.Network;
|
||||
using RebootKit.Engine.Simulation;
|
||||
using RebootReality.jelycho.Player.HUD;
|
||||
using Unity.Mathematics;
|
||||
|
||||
Reference in New Issue
Block a user