NetworkManagerTester working
This commit is contained in:
61241
Assets/PacManGame.prefab
Normal file
61241
Assets/PacManGame.prefab
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/PacManGame.prefab.meta
Normal file
7
Assets/PacManGame.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 15ac0ed4c56c7784ea3ae9000fc2af1f
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -123,7 +123,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
private void InitializeNewGame()
|
private void InitializeNewGame()
|
||||||
{
|
{
|
||||||
Debug.Log($"{gameObject} Started new game!");
|
//Debug.Log($"{gameObject} Started new game!");
|
||||||
SetScore(0);
|
SetScore(0);
|
||||||
SetExtraLives(startingExtraLives);
|
SetExtraLives(startingExtraLives);
|
||||||
SetLevel(1);
|
SetLevel(1);
|
||||||
@@ -131,7 +131,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
private void InitializeLevel()
|
private void InitializeLevel()
|
||||||
{
|
{
|
||||||
Debug.Log($"{gameObject} New level started!");
|
//Debug.Log($"{gameObject} New level started!");
|
||||||
|
|
||||||
pelletManager.RestoreAllPellets();
|
pelletManager.RestoreAllPellets();
|
||||||
|
|
||||||
@@ -142,7 +142,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
private void RestartLevel(bool afterLifeLost = false)
|
private void RestartLevel(bool afterLifeLost = false)
|
||||||
{
|
{
|
||||||
Debug.Log($"{gameObject} (Re)started level!");
|
//Debug.Log($"{gameObject} (Re)started level!");
|
||||||
|
|
||||||
// SetInGameComponentVisibility(true);
|
// SetInGameComponentVisibility(true);
|
||||||
|
|
||||||
@@ -186,7 +186,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
public void GotPowerPellet(Pellet pellet)
|
public void GotPowerPellet(Pellet pellet)
|
||||||
{
|
{
|
||||||
Debug.Log($"{gameObject} GotPowerPellet");
|
//Debug.Log($"{gameObject} GotPowerPellet");
|
||||||
|
|
||||||
if (gameState == PacManGameState.AttractMode)
|
if (gameState == PacManGameState.AttractMode)
|
||||||
{
|
{
|
||||||
@@ -215,7 +215,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
public void GhostCaught(int scoreBonus)
|
public void GhostCaught(int scoreBonus)
|
||||||
{
|
{
|
||||||
Debug.Log($"{gameObject} GhostCaught");
|
//Debug.Log($"{gameObject} GhostCaught");
|
||||||
|
|
||||||
if (gameState == PacManGameState.AttractMode)
|
if (gameState == PacManGameState.AttractMode)
|
||||||
{
|
{
|
||||||
@@ -246,7 +246,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
public void Intermission2PoleUpdate()
|
public void Intermission2PoleUpdate()
|
||||||
{
|
{
|
||||||
Debug.Log($"{gameObject} Intermission2PoleUpdate");
|
//Debug.Log($"{gameObject} Intermission2PoleUpdate");
|
||||||
|
|
||||||
TimeSequenceSkipToNextStep();
|
TimeSequenceSkipToNextStep();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -163,13 +163,13 @@ namespace Marro.PacManUdon
|
|||||||
SetPosition(nextPosition);
|
SetPosition(nextPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Vector2 ProcessNextPosition(Vector2 position, Vector2 nextPosition)
|
private Vector2 ProcessNextPosition(Vector2 position, Vector2 nextPosition)
|
||||||
{
|
{
|
||||||
if (turnAroundSoon && ghostState == PacManGhostState.Normal
|
if (turnAroundSoon && ghostState == PacManGhostState.Normal
|
||||||
&& GridMoverTools.CrossesTileBorder(position, nextPosition, direction.x != 0, direction.y != 0))
|
&& GridMoverTools.CrossesTileBorder(position, nextPosition, direction.x != 0, direction.y != 0))
|
||||||
{
|
{
|
||||||
SetDirection(direction * -1);
|
SetDirection(direction * -1);
|
||||||
Debug.Log($"{gameObject} turned around to direction {GetDirection()}");
|
//Debug.Log($"{gameObject} turned around to direction {GetDirection()}");
|
||||||
turnAroundSoon = false;
|
turnAroundSoon = false;
|
||||||
return nextPosition;
|
return nextPosition;
|
||||||
}
|
}
|
||||||
@@ -816,7 +816,6 @@ namespace Marro.PacManUdon
|
|||||||
inTunnel = data.ReadBool(ref index);
|
inTunnel = data.ReadBool(ref index);
|
||||||
rngState = data.ReadInt(ref index);
|
rngState = data.ReadInt(ref index);
|
||||||
turnAroundSoon = data.ReadBool(ref index);
|
turnAroundSoon = data.ReadBool(ref index);
|
||||||
Debug.Log($"{gameObject} turnAroundSoon = {turnAroundSoon}");
|
|
||||||
speed = data.ReadFloat(ref index);
|
speed = data.ReadFloat(ref index);
|
||||||
|
|
||||||
ghostState = (PacManGhostState)data.ReadByte(ref index);
|
ghostState = (PacManGhostState)data.ReadByte(ref index);
|
||||||
|
|||||||
@@ -316,7 +316,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
public void SetLevel(int level)
|
public void SetLevel(int level)
|
||||||
{
|
{
|
||||||
Debug.Log($"GhostManager: SetLevel {level}");
|
//Debug.Log($"GhostManager: SetLevel {level}");
|
||||||
SetLevelConstants(level);
|
SetLevelConstants(level);
|
||||||
|
|
||||||
int[] privatePelletCounterReleaseValues = PacManConstants.GetGhostHousePrivatePelletCounterLimitForLevel(level);
|
int[] privatePelletCounterReleaseValues = PacManConstants.GetGhostHousePrivatePelletCounterLimitForLevel(level);
|
||||||
@@ -377,7 +377,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
void SetScattering(bool scattering, bool reverseDirection = true)
|
void SetScattering(bool scattering, bool reverseDirection = true)
|
||||||
{
|
{
|
||||||
Debug.Log($"{gameObject} SetScattering: {scattering}");
|
//Debug.Log($"{gameObject} SetScattering: {scattering}");
|
||||||
foreach (Ghost ghost in ghosts)
|
foreach (Ghost ghost in ghosts)
|
||||||
{
|
{
|
||||||
if (ghost == blinky && elroyLevel > 0) // Once blinky is elroy he no longer scatters
|
if (ghost == blinky && elroyLevel > 0) // Once blinky is elroy he no longer scatters
|
||||||
@@ -394,7 +394,7 @@ namespace Marro.PacManUdon
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
void SetSharedPelletCounterActive(bool active)
|
void SetSharedPelletCounterActive(bool active)
|
||||||
{
|
{
|
||||||
Debug.Log($"{gameObject} SetSharedPelletCounterActive {active}");
|
//Debug.Log($"{gameObject} SetSharedPelletCounterActive {active}");
|
||||||
sharedPelletCounterActive = active;
|
sharedPelletCounterActive = active;
|
||||||
foreach (Ghost ghost in ghosts)
|
foreach (Ghost ghost in ghosts)
|
||||||
{
|
{
|
||||||
@@ -529,7 +529,7 @@ namespace Marro.PacManUdon
|
|||||||
}
|
}
|
||||||
ghostScaredQueueArray[i] = (byte)((Ghost)ghost.Reference).Index;
|
ghostScaredQueueArray[i] = (byte)((Ghost)ghost.Reference).Index;
|
||||||
}
|
}
|
||||||
Debug.Log($"{gameObject} Sent a ghostScareQueue of length {ghostScaredQueue.Count}");
|
//Debug.Log($"{gameObject} Sent a ghostScareQueue of length {ghostScaredQueue.Count}");
|
||||||
data.Append(ghostScaredQueueArray, ref index);
|
data.Append(ghostScaredQueueArray, ref index);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -579,7 +579,7 @@ namespace Marro.PacManUdon
|
|||||||
ghostScaredQueue.Add(ghosts[ghostIndex]);
|
ghostScaredQueue.Add(ghosts[ghostIndex]);
|
||||||
}
|
}
|
||||||
index += ghosts.Length;
|
index += ghosts.Length;
|
||||||
Debug.Log($"{gameObject} Read back a ghostScareQueue of length {ghostScaredQueue.Count}");
|
//Debug.Log($"{gameObject} Read back a ghostScareQueue of length {ghostScaredQueue.Count}");
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
public void SetActive(bool isActive)
|
public void SetActive(bool isActive)
|
||||||
{
|
{
|
||||||
Debug.Log($"({nameof(PacManUdon)} {nameof(Intermission2Pole)}) SetActive {isActive}.");
|
//Debug.Log($"({nameof(PacManUdon)} {nameof(Intermission2Pole)}) SetActive {isActive}.");
|
||||||
gameObject.SetActive(isActive);
|
gameObject.SetActive(isActive);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
public void SetStrechLevel(PoleStrechLevels level)
|
public void SetStrechLevel(PoleStrechLevels level)
|
||||||
{
|
{
|
||||||
Debug.Log($"({nameof(PacManUdon)} {nameof(Intermission2Pole)}) Set strech level to {level}.");
|
//Debug.Log($"({nameof(PacManUdon)} {nameof(Intermission2Pole)}) Set strech level to {level}.");
|
||||||
_animator.SetFloat("Strech", GetAnimatorValueForStrechLevel(level));
|
_animator.SetFloat("Strech", GetAnimatorValueForStrechLevel(level));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ MonoBehaviour:
|
|||||||
Data:
|
Data:
|
||||||
- Name:
|
- Name:
|
||||||
Entry: 12
|
Entry: 12
|
||||||
Data: 38
|
Data: 40
|
||||||
- Name:
|
- Name:
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data:
|
Data:
|
||||||
@@ -1627,13 +1627,13 @@ MonoBehaviour:
|
|||||||
Data:
|
Data:
|
||||||
- Name: $k
|
- Name: $k
|
||||||
Entry: 1
|
Entry: 1
|
||||||
Data: <Ready>k__BackingField
|
Data: ready
|
||||||
- Name: $v
|
- Name: $v
|
||||||
Entry: 7
|
Entry: 7
|
||||||
Data: 85|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
Data: 85|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||||
- Name: <Name>k__BackingField
|
- Name: <Name>k__BackingField
|
||||||
Entry: 1
|
Entry: 1
|
||||||
Data: <Ready>k__BackingField
|
Data: ready
|
||||||
- Name: <UserType>k__BackingField
|
- Name: <UserType>k__BackingField
|
||||||
Entry: 9
|
Entry: 9
|
||||||
Data: 34
|
Data: 34
|
||||||
@@ -2025,6 +2025,116 @@ MonoBehaviour:
|
|||||||
- Name:
|
- Name:
|
||||||
Entry: 8
|
Entry: 8
|
||||||
Data:
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 7
|
||||||
|
Data:
|
||||||
|
- Name: $k
|
||||||
|
Entry: 1
|
||||||
|
Data: DebugImageToIndicateReady
|
||||||
|
- Name: $v
|
||||||
|
Entry: 7
|
||||||
|
Data: 104|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||||
|
- Name: <Name>k__BackingField
|
||||||
|
Entry: 1
|
||||||
|
Data: DebugImageToIndicateReady
|
||||||
|
- Name: <UserType>k__BackingField
|
||||||
|
Entry: 9
|
||||||
|
Data: 98
|
||||||
|
- Name: <SystemType>k__BackingField
|
||||||
|
Entry: 9
|
||||||
|
Data: 98
|
||||||
|
- Name: <SyncMode>k__BackingField
|
||||||
|
Entry: 7
|
||||||
|
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 6
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name: <IsSerialized>k__BackingField
|
||||||
|
Entry: 5
|
||||||
|
Data: true
|
||||||
|
- Name: _fieldAttributes
|
||||||
|
Entry: 7
|
||||||
|
Data: 105|System.Collections.Generic.List`1[[System.Attribute, mscorlib]],
|
||||||
|
mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 12
|
||||||
|
Data: 1
|
||||||
|
- Name:
|
||||||
|
Entry: 7
|
||||||
|
Data: 106|UnityEngine.SerializeField, UnityEngine.CoreModule
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 13
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 7
|
||||||
|
Data:
|
||||||
|
- Name: $k
|
||||||
|
Entry: 1
|
||||||
|
Data: tester
|
||||||
|
- Name: $v
|
||||||
|
Entry: 7
|
||||||
|
Data: 107|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||||
|
- Name: <Name>k__BackingField
|
||||||
|
Entry: 1
|
||||||
|
Data: tester
|
||||||
|
- Name: <UserType>k__BackingField
|
||||||
|
Entry: 7
|
||||||
|
Data: 108|System.RuntimeType, mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 1
|
||||||
|
Data: NetworkManagerTester, Assembly-CSharp
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name: <SystemType>k__BackingField
|
||||||
|
Entry: 9
|
||||||
|
Data: 4
|
||||||
|
- Name: <SyncMode>k__BackingField
|
||||||
|
Entry: 7
|
||||||
|
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 6
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name: <IsSerialized>k__BackingField
|
||||||
|
Entry: 5
|
||||||
|
Data: false
|
||||||
|
- Name: _fieldAttributes
|
||||||
|
Entry: 7
|
||||||
|
Data: 109|System.Collections.Generic.List`1[[System.Attribute, mscorlib]],
|
||||||
|
mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 12
|
||||||
|
Data: 0
|
||||||
|
- Name:
|
||||||
|
Entry: 13
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
- Name:
|
- Name:
|
||||||
Entry: 13
|
Entry: 13
|
||||||
Data:
|
Data:
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ using UnityEngine;
|
|||||||
using UnityEngine.Android;
|
using UnityEngine.Android;
|
||||||
using VRC.SDK3.UdonNetworkCalling;
|
using VRC.SDK3.UdonNetworkCalling;
|
||||||
using VRC.SDKBase;
|
using VRC.SDKBase;
|
||||||
|
using VRC.SDKBase.Midi;
|
||||||
using VRC.Udon.Common;
|
using VRC.Udon.Common;
|
||||||
|
|
||||||
namespace Marro.PacManUdon
|
namespace Marro.PacManUdon
|
||||||
@@ -215,11 +216,23 @@ namespace Marro.PacManUdon
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Public fields
|
#region Public fields
|
||||||
|
private bool ready = false;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether this <see cref="NetworkManager"/> is ready to transmit or receive data.
|
/// Whether this <see cref="NetworkManager"/> is ready to transmit or receive data.
|
||||||
/// If false, networking is disabled and this <see cref="NetworkManager"/> acts as a pass-through.
|
/// If false, networking is disabled and this <see cref="NetworkManager"/> acts as a pass-through.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool Ready { get; private set; } = false;
|
public bool Ready
|
||||||
|
{
|
||||||
|
get => ready;
|
||||||
|
private set
|
||||||
|
{
|
||||||
|
ready = value;
|
||||||
|
if (DebugImageToIndicateReady != null)
|
||||||
|
{
|
||||||
|
DebugImageToIndicateReady.SetFloat("Color", value ? 1 : 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -310,6 +323,8 @@ namespace Marro.PacManUdon
|
|||||||
Debug.Log($"({nameof(PacManUdon)} {nameof(NetworkManager)}) Found {syncedUpdateSubscribers.Length} {nameof(SyncedObject)} in children of {root.name}.");
|
Debug.Log($"({nameof(PacManUdon)} {nameof(NetworkManager)}) Found {syncedUpdateSubscribers.Length} {nameof(SyncedObject)} in children of {root.name}.");
|
||||||
|
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
|
||||||
|
Reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool TryGetNetworkEventSubscribers(out SyncedObject[][] result)
|
private bool TryGetNetworkEventSubscribers(out SyncedObject[][] result)
|
||||||
@@ -365,7 +380,14 @@ namespace Marro.PacManUdon
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
IsOwner = Networking.IsOwner(gameObject);
|
if (tester == null)
|
||||||
|
{
|
||||||
|
IsOwner = Networking.IsOwner(gameObject);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
IsOwner = tester.ShouldBeOwner(this);
|
||||||
|
}
|
||||||
|
|
||||||
ClearBuffer();
|
ClearBuffer();
|
||||||
|
|
||||||
@@ -597,6 +619,10 @@ namespace Marro.PacManUdon
|
|||||||
{
|
{
|
||||||
RequestSerialization();
|
RequestSerialization();
|
||||||
serializationRequested = true;
|
serializationRequested = true;
|
||||||
|
if (tester != null)
|
||||||
|
{
|
||||||
|
tester.RequestSerializationTest();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[NetworkCallable]
|
[NetworkCallable]
|
||||||
@@ -623,7 +649,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
private void ProgressPingTime()
|
private void ProgressPingTime()
|
||||||
{
|
{
|
||||||
if (eventsQueueIndex > 0
|
if (eventsQueueIndex > 0 && !serializationRequested
|
||||||
&& internalTime - lastEventTransmissionTime >= pingDelay)
|
&& internalTime - lastEventTransmissionTime >= pingDelay)
|
||||||
{
|
{
|
||||||
RequestSerializationForEvents();
|
RequestSerializationForEvents();
|
||||||
@@ -651,16 +677,19 @@ namespace Marro.PacManUdon
|
|||||||
Debug.Log($"({nameof(PacManUdon)} {nameof(NetworkManager)}) Serializing {eventsQueueIndex} event(s), eventTransmissionHistory is now {ArrayToString(eventTransmissionHistory)} with index {eventTransmissionHistoryIndex}");
|
Debug.Log($"({nameof(PacManUdon)} {nameof(NetworkManager)}) Serializing {eventsQueueIndex} event(s), eventTransmissionHistory is now {ArrayToString(eventTransmissionHistory)} with index {eventTransmissionHistoryIndex}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnPostSerialization(SerializationResult result)
|
public override void OnPostSerialization(SerializationResult result) => OnPostSerializationInternal(result.success, result.byteCount);
|
||||||
|
|
||||||
|
// Version of OnPostSerialization which does not require instantiating SerializationResult, so that it can be called for debugging purposes.
|
||||||
|
public void OnPostSerializationInternal(bool success, int byteCount)
|
||||||
{
|
{
|
||||||
if (!Ready || !IsOwner || networkedData.Length == 0)
|
if (!Ready || !IsOwner || networkedData.Length == 0)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!result.success)
|
if (!success)
|
||||||
{
|
{
|
||||||
Debug.LogWarning($"({nameof(PacManUdon)} {nameof(NetworkManager)}) Serialization failed! Tried to send {result.byteCount} bytes.");
|
Debug.LogWarning($"({nameof(PacManUdon)} {nameof(NetworkManager)}) Serialization failed! Tried to send {byteCount} bytes.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -695,6 +724,11 @@ namespace Marro.PacManUdon
|
|||||||
}
|
}
|
||||||
|
|
||||||
SendCustomNetworkEvent(VRC.Udon.Common.Interfaces.NetworkEventTarget.Owner, "RequestEventReceived", eventType);
|
SendCustomNetworkEvent(VRC.Udon.Common.Interfaces.NetworkEventTarget.Owner, "RequestEventReceived", eventType);
|
||||||
|
|
||||||
|
if (tester != null)
|
||||||
|
{
|
||||||
|
tester.RequestEvent(eventType);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void StoreIncomingData()
|
private void StoreIncomingData()
|
||||||
@@ -760,7 +794,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
QueueEventInBuffer(@event);
|
QueueEventInBuffer(@event);
|
||||||
|
|
||||||
Debug.LogWarning($"({nameof(PacManUdon)} {nameof(NetworkManager)} Queued event with id {eventId}");
|
//Debug.LogWarning($"({nameof(PacManUdon)} {nameof(NetworkManager)} Queued event with id {eventId}");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1139,6 +1173,27 @@ namespace Marro.PacManUdon
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[SerializeField] private Animator DebugImageToIndicateSynced;
|
[SerializeField] private Animator DebugImageToIndicateSynced;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// An animator which visualizes whether the NetworkManager is synced.
|
||||||
|
/// </summary>
|
||||||
|
[SerializeField] private Animator DebugImageToIndicateReady;
|
||||||
|
|
||||||
|
private NetworkManagerTester tester;
|
||||||
|
public void SetNetworkManagerTester(NetworkManagerTester tester)
|
||||||
|
{
|
||||||
|
this.tester = tester;
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte[] NetworkedData
|
||||||
|
{
|
||||||
|
get => networkedData;
|
||||||
|
set => networkedData = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool SerializationRequested => serializationRequested;
|
||||||
|
|
||||||
|
public void SetIsOwner(bool isOwner) => IsOwner = isOwner;
|
||||||
|
|
||||||
public void DoFullSync()
|
public void DoFullSync()
|
||||||
{
|
{
|
||||||
SendEventSoon(NetworkEventType.FullSync);
|
SendEventSoon(NetworkEventType.FullSync);
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ namespace Marro.PacManUdon
|
|||||||
SetDead(false);
|
SetDead(false);
|
||||||
animator.SetTrigger("Reset");
|
animator.SetTrigger("Reset");
|
||||||
|
|
||||||
Debug.Log($"{gameObject} Reset! Position is now {GetPosition()}.");
|
//Debug.Log($"{gameObject} Reset! Position is now {GetPosition()}.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncedUpdate()
|
public override void SyncedUpdate()
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
private void StartTimeSequence(PacManTimeSequence timeSequence)
|
private void StartTimeSequence(PacManTimeSequence timeSequence)
|
||||||
{
|
{
|
||||||
Debug.Log($"StartTimeSequence: {timeSequence}");
|
//Debug.Log($"StartTimeSequence: {timeSequence}");
|
||||||
|
|
||||||
TimeSequenceTryEndCurrent();
|
TimeSequenceTryEndCurrent();
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ namespace Marro.PacManUdon
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug.Log($"{gameObject} TimeSequenceEndCurrent");
|
//Debug.Log($"{gameObject} TimeSequenceEndCurrent");
|
||||||
|
|
||||||
jumpingToTimeSequence = true;
|
jumpingToTimeSequence = true;
|
||||||
TimeSequenceProgressToTime(100000f);
|
TimeSequenceProgressToTime(100000f);
|
||||||
@@ -65,7 +65,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
private void TimeSequenceSkipToNextStep()
|
private void TimeSequenceSkipToNextStep()
|
||||||
{
|
{
|
||||||
Debug.Log($"{gameObject} TimeSequenceSkipToNextStep");
|
//Debug.Log($"{gameObject} TimeSequenceSkipToNextStep");
|
||||||
if (timeSequenceProgress < timeSequenceKeyframeTimes.Length)
|
if (timeSequenceProgress < timeSequenceKeyframeTimes.Length)
|
||||||
{
|
{
|
||||||
TimeSequenceProgressToTime(timeSequenceKeyframeTimes[timeSequenceProgress]);
|
TimeSequenceProgressToTime(timeSequenceKeyframeTimes[timeSequenceProgress]);
|
||||||
@@ -232,7 +232,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
private void TimeSequenceExecuteStep(PacManTimeSequence timeSequence, int sequenceProgress)
|
private void TimeSequenceExecuteStep(PacManTimeSequence timeSequence, int sequenceProgress)
|
||||||
{
|
{
|
||||||
Debug.Log($"{gameObject} Triggered time sequence step for sequence {currentTimeSequence} with progress {sequenceProgress}");
|
//Debug.Log($"{gameObject} Triggered time sequence step for sequence {currentTimeSequence} with progress {sequenceProgress}");
|
||||||
switch (timeSequence)
|
switch (timeSequence)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
@@ -286,7 +286,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
private void TimeSequenceExecuteFinalize(PacManTimeSequence timeSequence)
|
private void TimeSequenceExecuteFinalize(PacManTimeSequence timeSequence)
|
||||||
{
|
{
|
||||||
Debug.Log($"{gameObject} Triggered time sequence finalize for sequence {currentTimeSequence}");
|
//Debug.Log($"{gameObject} Triggered time sequence finalize for sequence {currentTimeSequence}");
|
||||||
switch (timeSequence)
|
switch (timeSequence)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
@@ -330,7 +330,7 @@ namespace Marro.PacManUdon
|
|||||||
|
|
||||||
private void TimeSequenceExecuteFinished(PacManTimeSequence timeSequence)
|
private void TimeSequenceExecuteFinished(PacManTimeSequence timeSequence)
|
||||||
{
|
{
|
||||||
Debug.Log($"{gameObject} Triggered time sequence finished for sequence {currentTimeSequence}");
|
//Debug.Log($"{gameObject} Triggered time sequence finished for sequence {currentTimeSequence}");
|
||||||
switch (timeSequence)
|
switch (timeSequence)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
|
|||||||
340
Assets/Test stuff/NetworkManagerTester.asset
Normal file
340
Assets/Test stuff/NetworkManagerTester.asset
Normal file
@@ -0,0 +1,340 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
|
||||||
|
m_Name: NetworkManagerTester
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
serializedUdonProgramAsset: {fileID: 11400000, guid: 2a95858b6f853584c8e55a5140383df5, type: 2}
|
||||||
|
udonAssembly:
|
||||||
|
assemblyError:
|
||||||
|
sourceCsScript: {fileID: 11500000, guid: 8261cb80d1b7e5f45b0b9afd3f6bb801, type: 3}
|
||||||
|
scriptVersion: 2
|
||||||
|
compiledVersion: 2
|
||||||
|
behaviourSyncMode: 0
|
||||||
|
hasInteractEvent: 0
|
||||||
|
scriptID: 3371975218947168961
|
||||||
|
serializationData:
|
||||||
|
SerializedFormat: 2
|
||||||
|
SerializedBytes:
|
||||||
|
ReferencedUnityObjects: []
|
||||||
|
SerializedBytesString:
|
||||||
|
Prefab: {fileID: 0}
|
||||||
|
PrefabModificationsReferencedUnityObjects: []
|
||||||
|
PrefabModifications: []
|
||||||
|
SerializationNodes:
|
||||||
|
- Name: fieldDefinitions
|
||||||
|
Entry: 7
|
||||||
|
Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[UdonSharp.Compiler.FieldDefinition,
|
||||||
|
UdonSharp.Editor]], mscorlib
|
||||||
|
- Name: comparer
|
||||||
|
Entry: 7
|
||||||
|
Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String,
|
||||||
|
mscorlib]], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 12
|
||||||
|
Data: 5
|
||||||
|
- Name:
|
||||||
|
Entry: 7
|
||||||
|
Data:
|
||||||
|
- Name: $k
|
||||||
|
Entry: 1
|
||||||
|
Data: networkManagers
|
||||||
|
- Name: $v
|
||||||
|
Entry: 7
|
||||||
|
Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||||
|
- Name: <Name>k__BackingField
|
||||||
|
Entry: 1
|
||||||
|
Data: networkManagers
|
||||||
|
- Name: <UserType>k__BackingField
|
||||||
|
Entry: 7
|
||||||
|
Data: 3|System.RuntimeType, mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 1
|
||||||
|
Data: Marro.PacManUdon.NetworkManager[], Assembly-CSharp
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name: <SystemType>k__BackingField
|
||||||
|
Entry: 7
|
||||||
|
Data: 4|System.RuntimeType, mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 1
|
||||||
|
Data: UnityEngine.Component[], UnityEngine.CoreModule
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name: <SyncMode>k__BackingField
|
||||||
|
Entry: 7
|
||||||
|
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 6
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name: <IsSerialized>k__BackingField
|
||||||
|
Entry: 5
|
||||||
|
Data: true
|
||||||
|
- Name: _fieldAttributes
|
||||||
|
Entry: 7
|
||||||
|
Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 12
|
||||||
|
Data: 1
|
||||||
|
- Name:
|
||||||
|
Entry: 7
|
||||||
|
Data: 6|UnityEngine.SerializeField, UnityEngine.CoreModule
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 13
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 7
|
||||||
|
Data:
|
||||||
|
- Name: $k
|
||||||
|
Entry: 1
|
||||||
|
Data: interval
|
||||||
|
- Name: $v
|
||||||
|
Entry: 7
|
||||||
|
Data: 7|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||||
|
- Name: <Name>k__BackingField
|
||||||
|
Entry: 1
|
||||||
|
Data: interval
|
||||||
|
- Name: <UserType>k__BackingField
|
||||||
|
Entry: 7
|
||||||
|
Data: 8|System.RuntimeType, mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 1
|
||||||
|
Data: System.Single, mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name: <SystemType>k__BackingField
|
||||||
|
Entry: 9
|
||||||
|
Data: 8
|
||||||
|
- Name: <SyncMode>k__BackingField
|
||||||
|
Entry: 7
|
||||||
|
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 6
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name: <IsSerialized>k__BackingField
|
||||||
|
Entry: 5
|
||||||
|
Data: true
|
||||||
|
- Name: _fieldAttributes
|
||||||
|
Entry: 7
|
||||||
|
Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 12
|
||||||
|
Data: 1
|
||||||
|
- Name:
|
||||||
|
Entry: 7
|
||||||
|
Data: 10|UnityEngine.SerializeField, UnityEngine.CoreModule
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 13
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 7
|
||||||
|
Data:
|
||||||
|
- Name: $k
|
||||||
|
Entry: 1
|
||||||
|
Data: ownerIndex
|
||||||
|
- Name: $v
|
||||||
|
Entry: 7
|
||||||
|
Data: 11|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||||
|
- Name: <Name>k__BackingField
|
||||||
|
Entry: 1
|
||||||
|
Data: ownerIndex
|
||||||
|
- Name: <UserType>k__BackingField
|
||||||
|
Entry: 7
|
||||||
|
Data: 12|System.RuntimeType, mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 1
|
||||||
|
Data: System.Int32, mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name: <SystemType>k__BackingField
|
||||||
|
Entry: 9
|
||||||
|
Data: 12
|
||||||
|
- Name: <SyncMode>k__BackingField
|
||||||
|
Entry: 7
|
||||||
|
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 6
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name: <IsSerialized>k__BackingField
|
||||||
|
Entry: 5
|
||||||
|
Data: true
|
||||||
|
- Name: _fieldAttributes
|
||||||
|
Entry: 7
|
||||||
|
Data: 13|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 12
|
||||||
|
Data: 1
|
||||||
|
- Name:
|
||||||
|
Entry: 7
|
||||||
|
Data: 14|UnityEngine.SerializeField, UnityEngine.CoreModule
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 13
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 7
|
||||||
|
Data:
|
||||||
|
- Name: $k
|
||||||
|
Entry: 1
|
||||||
|
Data: countdown
|
||||||
|
- Name: $v
|
||||||
|
Entry: 7
|
||||||
|
Data: 15|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||||
|
- Name: <Name>k__BackingField
|
||||||
|
Entry: 1
|
||||||
|
Data: countdown
|
||||||
|
- Name: <UserType>k__BackingField
|
||||||
|
Entry: 9
|
||||||
|
Data: 8
|
||||||
|
- Name: <SystemType>k__BackingField
|
||||||
|
Entry: 9
|
||||||
|
Data: 8
|
||||||
|
- Name: <SyncMode>k__BackingField
|
||||||
|
Entry: 7
|
||||||
|
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 6
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name: <IsSerialized>k__BackingField
|
||||||
|
Entry: 5
|
||||||
|
Data: false
|
||||||
|
- Name: _fieldAttributes
|
||||||
|
Entry: 7
|
||||||
|
Data: 16|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 12
|
||||||
|
Data: 0
|
||||||
|
- Name:
|
||||||
|
Entry: 13
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 7
|
||||||
|
Data:
|
||||||
|
- Name: $k
|
||||||
|
Entry: 1
|
||||||
|
Data: serializationRequested
|
||||||
|
- Name: $v
|
||||||
|
Entry: 7
|
||||||
|
Data: 17|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||||
|
- Name: <Name>k__BackingField
|
||||||
|
Entry: 1
|
||||||
|
Data: serializationRequested
|
||||||
|
- Name: <UserType>k__BackingField
|
||||||
|
Entry: 7
|
||||||
|
Data: 18|System.RuntimeType, mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 1
|
||||||
|
Data: System.Boolean, mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name: <SystemType>k__BackingField
|
||||||
|
Entry: 9
|
||||||
|
Data: 18
|
||||||
|
- Name: <SyncMode>k__BackingField
|
||||||
|
Entry: 7
|
||||||
|
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 6
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name: <IsSerialized>k__BackingField
|
||||||
|
Entry: 5
|
||||||
|
Data: false
|
||||||
|
- Name: _fieldAttributes
|
||||||
|
Entry: 7
|
||||||
|
Data: 19|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||||
|
- Name:
|
||||||
|
Entry: 12
|
||||||
|
Data: 0
|
||||||
|
- Name:
|
||||||
|
Entry: 13
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 13
|
||||||
|
Data:
|
||||||
|
- Name:
|
||||||
|
Entry: 8
|
||||||
|
Data:
|
||||||
8
Assets/Test stuff/NetworkManagerTester.asset.meta
Normal file
8
Assets/Test stuff/NetworkManagerTester.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 46452140f2a4ee7458e4f4e13fea6578
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
96
Assets/Test stuff/NetworkManagerTester.cs
Normal file
96
Assets/Test stuff/NetworkManagerTester.cs
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
|
||||||
|
using Marro.PacManUdon;
|
||||||
|
using System;
|
||||||
|
using UdonSharp;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class NetworkManagerTester : UdonSharpBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] private NetworkManager[] networkManagers;
|
||||||
|
[SerializeField] private float interval = 0.1f;
|
||||||
|
[SerializeField] private int ownerIndex = 0;
|
||||||
|
|
||||||
|
private float countdown = 0;
|
||||||
|
private bool serializationRequested;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
foreach (var networkManager in networkManagers)
|
||||||
|
{
|
||||||
|
networkManager.SetNetworkManagerTester(this);
|
||||||
|
networkManager.Reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FixedUpdate()
|
||||||
|
{
|
||||||
|
countdown -= Time.deltaTime;
|
||||||
|
if (countdown > 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
countdown = interval;
|
||||||
|
|
||||||
|
if (!serializationRequested)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var source = networkManagers[ownerIndex];
|
||||||
|
|
||||||
|
var data = PerformSerialization(source);
|
||||||
|
|
||||||
|
Debug.Log($"{nameof(NetworkManagerTester)} Transferring {data.Length} bytes.");
|
||||||
|
|
||||||
|
foreach (var target in networkManagers)
|
||||||
|
{
|
||||||
|
if (target == source)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
PerformDeserialization(target, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
serializationRequested = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private byte[] PerformSerialization(NetworkManager networkManager)
|
||||||
|
{
|
||||||
|
networkManager.OnPreSerialization();
|
||||||
|
var data = networkManager.NetworkedData;
|
||||||
|
networkManager.OnPostSerializationInternal(true, data.Length) ;
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
private byte[] PerformDeserialization(NetworkManager networkManager, byte[] data)
|
||||||
|
{
|
||||||
|
networkManager.NetworkedData = data;
|
||||||
|
networkManager.OnDeserialization();
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool ShouldBeOwner(NetworkManager manager) => Array.IndexOf(networkManagers, manager) == ownerIndex;
|
||||||
|
|
||||||
|
public void RequestSerializationTest()
|
||||||
|
{
|
||||||
|
serializationRequested = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RequestEvent(NetworkEventType eventType)
|
||||||
|
{
|
||||||
|
foreach (var target in networkManagers)
|
||||||
|
{
|
||||||
|
if (!target.IsOwner || !target.SerializationRequested)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
Debug.Log($"{nameof(NetworkManagerTester)} Requested event with type {eventType}.");
|
||||||
|
|
||||||
|
target.RequestEventReceived(eventType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/Test stuff/NetworkManagerTester.cs.meta
Normal file
11
Assets/Test stuff/NetworkManagerTester.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8261cb80d1b7e5f45b0b9afd3f6bb801
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Reference in New Issue
Block a user