Prevented the collision loop from running as many times as there are players.

This commit is contained in:
2025-07-20 21:38:09 -04:00
parent 83e08ed403
commit e43973aef3
4 changed files with 85 additions and 21 deletions
@@ -135,7 +135,7 @@ public class GameManagerRound3 : GameManagerBase
public void BeginRound()
{
GetCurrentMarker().SendCustomNetworkEvent(NetworkEventTarget.All, "Activated", true);
GetCurrentMarker().SendCustomNetworkEvent(NetworkEventTarget.Owner, "Activated", true);
UpdateInterface();
@@ -250,7 +250,7 @@ public class GameManagerRound3 : GameManagerBase
SendCustomNetworkEvent(NetworkEventTarget.Owner, nameof(GameHasBeenLost), true);
return;
}
GetCurrentMarker().SendCustomNetworkEvent(NetworkEventTarget.All, "Activated", true);
GetCurrentMarker().SendCustomNetworkEvent(NetworkEventTarget.Owner, "Activated", true);
}
[NetworkCallable]
+55 -1
View File
@@ -44,7 +44,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 15
Data: 16
- Name:
Entry: 7
Data:
@@ -897,6 +897,60 @@ MonoBehaviour:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: _CurrentOwner
- Name: $v
Entry: 7
Data: 54|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _CurrentOwner
- Name: <UserType>k__BackingField
Entry: 7
Data: 55|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: VRC.SDKBase.VRCPlayerApi, VRCSDKBase
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 55
- 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: 56|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:
+12 -2
View File
@@ -33,6 +33,8 @@ public class FloorMapMarker : UdonSharpBehaviour
private VRCPickup _PickupComponent;
private MeshRenderer _MarkerMesh;
private VRCPlayerApi _CurrentOwner;
private const int MAX_REPEAT_COLLISION_CHECKS = 3;
private const int MAX_CHECKS_WITH_NO_COLLISIONS = 8;
private const float TIME_BETWEEN_REPEAT_COLLISION_CHECKS = 0.15f;
@@ -44,6 +46,14 @@ public class FloorMapMarker : UdonSharpBehaviour
_ObjectSync = GetComponent<LightSync>();
_PickupComponent = GetComponent<VRCPickup>();
_MarkerMesh = GetComponent<MeshRenderer>();
_CurrentOwner = Networking.GetOwner(gameObject);
}
public override void OnOwnershipTransferred(VRCPlayerApi Player)
{
_CurrentOwner = Player;
base.OnOwnershipTransferred(Player);
}
@@ -207,7 +217,7 @@ public class FloorMapMarker : UdonSharpBehaviour
RequestSerialization();
if (Networking.GetOwner(gameObject) == Networking.LocalPlayer)
if (_CurrentOwner == Networking.LocalPlayer)
{
_GameManager.SendCustomNetworkEvent(NetworkEventTarget.Owner, "CorrectResponse");
}
@@ -222,7 +232,7 @@ public class FloorMapMarker : UdonSharpBehaviour
_EnableCollisionChecks = false;
if (Networking.GetOwner(gameObject) == Networking.LocalPlayer)
if (_CurrentOwner == Networking.LocalPlayer)
{
_GameManager.SendCustomNetworkEvent(NetworkEventTarget.Owner, "IncorrectResponse");
}