- Permissions panel is fully functional.

- Host card can only be picked up by players with "Host" permission.
- Podiums no longer reset on case load.
- Auxiliary screens now disappear during answer reveal in final round.
- Risk card placement area no longer blocks UI interaction on desktop mode.
- Video player in round 2 now changes ownership and syncs correctly.
This commit is contained in:
2025-09-08 00:26:03 -04:00
parent 168d814ad9
commit b028a0a6d4
11 changed files with 212 additions and 55 deletions
@@ -44,7 +44,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 8
Data: 10
- Name:
Entry: 7
Data:
@@ -458,19 +458,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: CameraConsole
Data: _AdminEventListeners
- Name: $v
Entry: 7
Data: 28|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: CameraConsole
Data: _AdminEventListeners
- Name: <UserType>k__BackingField
Entry: 7
Data: 29|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: CameraSystem.CameraSystem_Console, Assembly-CSharp
Data: VRC.Udon.UdonBehaviour[], VRC.Udon
- Name:
Entry: 8
Data:
@@ -479,7 +479,7 @@ MonoBehaviour:
Data: 30|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: VRC.Udon.UdonBehaviour, VRC.Udon
Data: UnityEngine.Component[], UnityEngine.CoreModule
- Name:
Entry: 8
Data:
@@ -498,12 +498,129 @@ MonoBehaviour:
- Name: _fieldAttributes
Entry: 7
Data: 31|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 32|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
- Name: height
Entry: 4
Data: 8
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 33|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: _HostEventListeners
- Name: $v
Entry: 7
Data: 34|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _HostEventListeners
- Name: <UserType>k__BackingField
Entry: 9
Data: 29
- Name: <SystemType>k__BackingField
Entry: 9
Data: 30
- 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: 35|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 32|UnityEngine.SerializeField, UnityEngine.CoreModule
Data: 36|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: _CameraEventListeners
- Name: $v
Entry: 7
Data: 37|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _CameraEventListeners
- Name: <UserType>k__BackingField
Entry: 9
Data: 29
- Name: <SystemType>k__BackingField
Entry: 9
Data: 30
- 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: 38|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 39|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
@@ -4,6 +4,7 @@ using UdonSharp;
using UnityEngine;
using VRC.SDK3.Data;
using VRC.SDKBase;
using VRC.Udon;
using VRC.Udon.Common;
@@ -19,7 +20,11 @@ public class PermissionsPanel : UdonSharpBehaviour
[SerializeField] private RectTransform _ListContainer;
[SerializeField] private GameObject _PlayerItemTemplate;
[SerializeField] private CameraSystem_Console CameraConsole;
[Space]
[SerializeField] private UdonBehaviour[] _AdminEventListeners = new UdonBehaviour[0];
[SerializeField] private UdonBehaviour[] _HostEventListeners = new UdonBehaviour[0];
[SerializeField] private UdonBehaviour[] _CameraEventListeners = new UdonBehaviour[0];
private const int MAX_PLAYERS_IN_LIST = 100;
@@ -231,6 +236,18 @@ public class PermissionsPanel : UdonSharpBehaviour
PlayerListItem.HostToggle.interactable = true;
PlayerListItem.CameraToggle.interactable = true;
}
for (int i = 0; i < _AdminEventListeners.Length; i++)
{
_AdminEventListeners[i].SendCustomEvent("AdminEnabled");
}
}
else
{
for (int i = 0; i < _AdminEventListeners.Length; i++)
{
_AdminEventListeners[i].SendCustomEvent("AdminDisabled");
}
}
if (IsPlayerHost(Networking.LocalPlayer))
@@ -240,6 +257,18 @@ public class PermissionsPanel : UdonSharpBehaviour
PermissionsPanelPlayerEntry PlayerListItem = _ListContainer.GetChild(i).GetComponent<PermissionsPanelPlayerEntry>();
PlayerListItem.HostToggle.interactable = true;
}
for (int i = 0; i < _HostEventListeners.Length; i++)
{
_HostEventListeners[i].SendCustomEvent("HostEnabled");
}
}
else
{
for (int i = 0; i < _HostEventListeners.Length; i++)
{
_HostEventListeners[i].SendCustomEvent("HostDisabled");
}
}
if (IsPlayerCameraOperator(Networking.LocalPlayer))
@@ -250,11 +279,17 @@ public class PermissionsPanel : UdonSharpBehaviour
PlayerListItem.CameraToggle.interactable = true;
}
CameraConsole.Authorize();
for (int i = 0; i < _CameraEventListeners.Length; i++)
{
_CameraEventListeners[i].SendCustomEvent("CameraEnabled");
}
}
else
{
CameraConsole.Deauthorize();
for (int i = 0; i < _CameraEventListeners.Length; i++)
{
_CameraEventListeners[i].SendCustomEvent("CameraDisabled");
}
}
}
}