- Skee-ball now keeps track of used balls and no longer double-counts balls.

- TriggerToggle now accepts a list of GameObjects to toggle.
- Skee-ball disables only scoreboxes to prevent balls from being dropped early.
This commit is contained in:
2026-03-01 18:13:33 -05:00
parent 61589da9f0
commit 51d8c55afe
65 changed files with 5661 additions and 5444 deletions
+3 -3
View File
@@ -50,19 +50,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _ToggledObject
Data: _ToggledObjects
- Name: $v
Entry: 7
Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ToggledObject
Data: _ToggledObjects
- Name: <UserType>k__BackingField
Entry: 7
Data: 3|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.GameObject, UnityEngine.CoreModule
Data: UnityEngine.GameObject[], UnityEngine.CoreModule
- Name:
Entry: 8
Data:
+15 -9
View File
@@ -8,7 +8,7 @@ using VRC.Udon;
[UdonBehaviourSyncMode(BehaviourSyncMode.None)]
public class TriggerToggle : UdonSharpBehaviour
{
[SerializeField] private GameObject _ToggledObject = null;
[SerializeField] private GameObject[] _ToggledObjects;
[Tooltip("When true, object is active when player is inside trigger volume. If false, object is inactive when inside trigger volume.")]
[SerializeField] private bool _ActiveOnTrigger = true;
@@ -24,18 +24,21 @@ public class TriggerToggle : UdonSharpBehaviour
{
if (_EnterDelay > 0.01f)
{
SendCustomEventDelayedSeconds(nameof(EnableToggledObject), _EnterDelay);
SendCustomEventDelayedSeconds(nameof(EnableToggledObjects), _EnterDelay);
}
else
{
EnableToggledObject();
EnableToggledObjects();
}
}
base.OnPlayerTriggerEnter(Player);
}
public void EnableToggledObject()
public void EnableToggledObjects()
{
_ToggledObject.SetActive(_ActiveOnTrigger);
foreach (GameObject Object in _ToggledObjects)
{
Object.SetActive(_ActiveOnTrigger);
}
}
public override void OnPlayerTriggerExit(VRCPlayerApi Player)
@@ -44,17 +47,20 @@ public class TriggerToggle : UdonSharpBehaviour
{
if (_ExitDelay > 0.01f)
{
SendCustomEventDelayedSeconds(nameof(DisableToggledObject), _ExitDelay);
SendCustomEventDelayedSeconds(nameof(DisableToggledObjects), _ExitDelay);
}
else
{
DisableToggledObject();
DisableToggledObjects();
}
}
base.OnPlayerTriggerExit(Player);
}
public void DisableToggledObject()
public void DisableToggledObjects()
{
_ToggledObject.SetActive(!_ActiveOnTrigger);
foreach (GameObject Object in _ToggledObjects)
{
Object.SetActive(!_ActiveOnTrigger);
}
}
}