- Added an admin panel, activated by pressing Jump while holding the host card.

- Improved the host card interface, and added more info between questions.
- Started preliminary work on a permissions system.
This commit is contained in:
Jamie Greunbaum 2025-06-05 19:08:34 -04:00
parent de0a866e6d
commit 3ca027c381
47 changed files with 12692 additions and 713 deletions

View File

@ -61,16 +61,19 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Assets\VRChatCameraSystem\Ottpossum\Camera System\Scripts\CameraSystem_Console.cs" /> <Compile Include="Assets\VRChatCameraSystem\Ottpossum\Camera System\Scripts\CameraSystem_Console.cs" />
<Compile Include="Assets\UdonSharp\PlayerPermissions\PermissionsPanel.cs" />
<Compile Include="Assets\UdonSharp\HostCardInterfaces\HostCardLightningRoundInterface.cs" /> <Compile Include="Assets\UdonSharp\HostCardInterfaces\HostCardLightningRoundInterface.cs" />
<Compile Include="Assets\UdonSharp\ChoiceCard.cs" /> <Compile Include="Assets\UdonSharp\ChoiceCard.cs" />
<Compile Include="Assets\UdonSharp\HostCardInterfaces\HostCardMultipleChoiceInterface.cs" /> <Compile Include="Assets\UdonSharp\HostCardInterfaces\HostCardMultipleChoiceInterface.cs" />
<Compile Include="Assets\UdonSharp\Buzzer.cs" /> <Compile Include="Assets\UdonSharp\Buzzer.cs" />
<Compile Include="Assets\UdonSharp\PlayerPodium.cs" /> <Compile Include="Assets\UdonSharp\PlayerPodium.cs" />
<Compile Include="Assets\UdonSharp\UtilityScripts\InteractToggle.cs" /> <Compile Include="Assets\UdonSharp\UtilityScripts\InteractToggle.cs" />
<Compile Include="Assets\UdonSharp\HostCardInterfaces\HostCardPregameInterface.cs" /> <Compile Include="Assets\UdonSharp\HostCardInterfaces\HostCardBetweenRoundsInterface.cs" />
<Compile Include="Assets\UdonSharp\PlayerPermissions\PermissionsPanelPlayerEntry.cs" />
<Compile Include="Assets\UdonSharp\HostCardInterfaces\HostCardInterfaceBase.cs" /> <Compile Include="Assets\UdonSharp\HostCardInterfaces\HostCardInterfaceBase.cs" />
<Compile Include="Assets\UdonSharp\GameManager.cs" /> <Compile Include="Assets\UdonSharp\GameManager.cs" />
<Compile Include="Assets\UdonSharp\UtilityScripts\Synced\MasterToggleObject.cs" /> <Compile Include="Assets\UdonSharp\UtilityScripts\Synced\MasterToggleObject.cs" />
<Compile Include="Assets\UdonSharp\PlayerPermissions\AdminPanelInterface.cs" />
<Compile Include="Assets\UdonSharp\UtilityScripts\PlayerModSetter.cs" /> <Compile Include="Assets\UdonSharp\UtilityScripts\PlayerModSetter.cs" />
<Compile Include="Assets\UdonSharp\ChoiceCardGroup.cs" /> <Compile Include="Assets\UdonSharp\ChoiceCardGroup.cs" />
<Compile Include="Assets\VRChatCameraSystem\Ottpossum\Camera System\Scripts\CameraLightSystemManager.cs" /> <Compile Include="Assets\VRChatCameraSystem\Ottpossum\Camera System\Scripts\CameraLightSystemManager.cs" />

View File

@ -9,13 +9,31 @@ AudioImporter:
sampleRateSetting: 0 sampleRateSetting: 0
sampleRateOverride: 44100 sampleRateOverride: 44100
compressionFormat: 1 compressionFormat: 1
quality: 1 quality: 0.84999996
conversionMode: 0 conversionMode: 0
preloadAudioData: 0 preloadAudioData: 0
platformSettingOverrides: {} platformSettingOverrides:
forceToMono: 0 4:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 0.25
conversionMode: 0
preloadAudioData: 0
7:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 0.25
conversionMode: 0
preloadAudioData: 0
forceToMono: 1
normalize: 1 normalize: 1
loadInBackground: 0 loadInBackground: 1
ambisonic: 0 ambisonic: 0
3D: 1 3D: 1
userData: userData:

View File

@ -9,11 +9,29 @@ AudioImporter:
sampleRateSetting: 0 sampleRateSetting: 0
sampleRateOverride: 44100 sampleRateOverride: 44100
compressionFormat: 1 compressionFormat: 1
quality: 1 quality: 0.84999996
conversionMode: 0 conversionMode: 0
preloadAudioData: 0 preloadAudioData: 0
platformSettingOverrides: {} platformSettingOverrides:
forceToMono: 0 4:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 0.25
conversionMode: 0
preloadAudioData: 0
7:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 0.25
conversionMode: 0
preloadAudioData: 0
forceToMono: 1
normalize: 1 normalize: 1
loadInBackground: 1 loadInBackground: 1
ambisonic: 0 ambisonic: 0

View File

@ -9,13 +9,31 @@ AudioImporter:
sampleRateSetting: 0 sampleRateSetting: 0
sampleRateOverride: 44100 sampleRateOverride: 44100
compressionFormat: 1 compressionFormat: 1
quality: 1 quality: 0.84999996
conversionMode: 0 conversionMode: 0
preloadAudioData: 0 preloadAudioData: 0
platformSettingOverrides: {} platformSettingOverrides:
forceToMono: 0 4:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 0.25
conversionMode: 0
preloadAudioData: 0
7:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 0.25
conversionMode: 0
preloadAudioData: 0
forceToMono: 1
normalize: 1 normalize: 1
loadInBackground: 0 loadInBackground: 1
ambisonic: 0 ambisonic: 0
3D: 1 3D: 1
userData: userData:

View File

@ -9,11 +9,29 @@ AudioImporter:
sampleRateSetting: 0 sampleRateSetting: 0
sampleRateOverride: 44100 sampleRateOverride: 44100
compressionFormat: 1 compressionFormat: 1
quality: 1 quality: 0.84999996
conversionMode: 0 conversionMode: 0
preloadAudioData: 0 preloadAudioData: 0
platformSettingOverrides: {} platformSettingOverrides:
forceToMono: 0 4:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 0.25
conversionMode: 0
preloadAudioData: 0
7:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 0.25
conversionMode: 0
preloadAudioData: 0
forceToMono: 1
normalize: 1 normalize: 1
loadInBackground: 1 loadInBackground: 1
ambisonic: 0 ambisonic: 0

View File

@ -9,13 +9,31 @@ AudioImporter:
sampleRateSetting: 0 sampleRateSetting: 0
sampleRateOverride: 44100 sampleRateOverride: 44100
compressionFormat: 1 compressionFormat: 1
quality: 1 quality: 0.7
conversionMode: 0 conversionMode: 0
preloadAudioData: 1 preloadAudioData: 1
platformSettingOverrides: {} platformSettingOverrides:
forceToMono: 0 4:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 0.14999999
conversionMode: 0
preloadAudioData: 1
7:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 0.14999999
conversionMode: 0
preloadAudioData: 1
forceToMono: 1
normalize: 1 normalize: 1
loadInBackground: 0 loadInBackground: 1
ambisonic: 0 ambisonic: 0
3D: 1 3D: 1
userData: userData:

View File

@ -9,13 +9,31 @@ AudioImporter:
sampleRateSetting: 0 sampleRateSetting: 0
sampleRateOverride: 44100 sampleRateOverride: 44100
compressionFormat: 1 compressionFormat: 1
quality: 1 quality: 0.7
conversionMode: 0 conversionMode: 0
preloadAudioData: 1 preloadAudioData: 1
platformSettingOverrides: {} platformSettingOverrides:
forceToMono: 0 4:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 0.14999999
conversionMode: 0
preloadAudioData: 1
7:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 0.14999999
conversionMode: 0
preloadAudioData: 1
forceToMono: 1
normalize: 1 normalize: 1
loadInBackground: 0 loadInBackground: 1
ambisonic: 0 ambisonic: 0
3D: 1 3D: 1
userData: userData:

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 510c1012ee5eba044b8c4161b150ca93
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,21 @@
fileFormatVersion: 2
guid: 546833aff35b5494baf89e419b6d7977
TrueTypeFontImporter:
externalObjects: {}
serializedVersion: 4
fontSize: 16
forceTextureCase: -2
characterSpacing: 0
characterPadding: 1
includeFontData: 1
fontNames:
- OpenMoji Black
fallbackFontReferences: []
customCharacters:
fontRenderingMode: 0
ascentCalculationMode: 1
useLegacyBoundsCalculation: 0
shouldRoundAdvanceValue: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@ -907,7 +907,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!224 &7566631391838123814 --- !u!224 &7566631391838123814
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1237,8 +1237,9 @@ MonoBehaviour:
_ChoiceCards: {fileID: 4424524232366912296} _ChoiceCards: {fileID: 4424524232366912296}
_Buzzer: {fileID: 1145695079806890482} _Buzzer: {fileID: 1145695079806890482}
_BuzzedInEffect: {fileID: 6181750060712598379} _BuzzedInEffect: {fileID: 6181750060712598379}
_Nameplate: {fileID: 5247165531706728442} _ScorecardObject: {fileID: 5278643753074928947}
_Scorecard: {fileID: 3651303298073640538} _NameplateUI: {fileID: 5247165531706728442}
_ScorecardUI: {fileID: 3651303298073640538}
--- !u!114 &2656281140157091124 --- !u!114 &2656281140157091124
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e5310c6f06821984ca2c1886b9f3edc8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e09f76786b294ec48b10d7991da943ea
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -8,6 +8,7 @@ using VRC.SDKBase;
using VRC.SDK3.StringLoading; using VRC.SDK3.StringLoading;
using TMPro; using TMPro;
using VRC.SDK3.Components; using VRC.SDK3.Components;
using VRC.Udon.Common;
public enum QuestionType public enum QuestionType
@ -43,21 +44,28 @@ public class GameManager : UdonSharpBehaviour
[UdonSynced] private bool[] _PlayerBuzzInAllowed; [UdonSynced] private bool[] _PlayerBuzzInAllowed;
[UdonSynced] private int _BuzzedInPlayer = 0; [UdonSynced] private int _BuzzedInPlayer = 0;
private DataList _QuestionsList = new DataList(); [UdonSynced] private bool _GameHasBegun = false;
private int _QuestionIndex = 0; [UdonSynced] private int _QuestionIndex = 0;
private DataDictionary _CurrentQuestion; [UdonSynced] private int _LightningRoundQuestionIndex = 0;
private int _LightningRoundQuestionIndex = 0;
[UdonSynced] private int _QuestionStage = 0; [UdonSynced] private int _QuestionStage = 0;
[UdonSynced] private int _QuestionCorrectResponse = 0; [UdonSynced] private int _QuestionCorrectResponse = 0;
private DataList _QuestionsList = new DataList();
private DataDictionary _CurrentQuestion;
private bool _IsBeingHeld = false;
private float _StoredJumpImpulse = 0.0f;
[SerializeField] private PlayerPodium[] _PlayerPodiums; [SerializeField] private PlayerPodium[] _PlayerPodiums;
[UdonSynced] public VRCUrl QuestionURL; [UdonSynced] public VRCUrl QuestionURL;
[SerializeField] private HostCardPregameInterface _PregameInterface; [Header("UI")]
[SerializeField] private HostCardBetweenRoundsInterface _BetweenRoundsInterface;
[SerializeField] private HostCardMultipleChoiceInterface _MultipleChoiceInterface; [SerializeField] private HostCardMultipleChoiceInterface _MultipleChoiceInterface;
[SerializeField] private HostCardLightningRoundInterface _LightningRoundInterface; [SerializeField] private HostCardLightningRoundInterface _LightningRoundInterface;
[SerializeField] private AdminPanelInterface _AdminPanelInterface;
[Header("Audio")] [Header("Audio")]
[SerializeField] private AudioClip _Ding = null; [SerializeField] private AudioClip _Ding = null;
[SerializeField] private AudioClip _Buzzer = null; [SerializeField] private AudioClip _Buzzer = null;
@ -77,6 +85,48 @@ public class GameManager : UdonSharpBehaviour
VRCStringDownloader.LoadUrl(QuestionURL, (IUdonEventReceiver)this); VRCStringDownloader.LoadUrl(QuestionURL, (IUdonEventReceiver)this);
} }
public override void OnPickup()
{
Networking.SetOwner(Networking.LocalPlayer, gameObject);
_StoredJumpImpulse = Networking.LocalPlayer.GetJumpImpulse();
Networking.LocalPlayer.SetJumpImpulse(0.0f);
_IsBeingHeld = true;
base.OnPickup();
}
public override void OnDrop()
{
Networking.SetOwner(Networking.InstanceOwner, gameObject);
Networking.LocalPlayer.SetJumpImpulse(_StoredJumpImpulse);
_StoredJumpImpulse = 0.0f;
_IsBeingHeld = false;
base.OnDrop();
}
public override bool OnOwnershipRequest(VRCPlayerApi RequestingPlayer, VRCPlayerApi RequestedOwner)
{
Debug.LogError(RequestingPlayer.displayName + " is requesting that " + RequestedOwner.displayName + " become the new owner of the host card. No fucking way.");
return false;
}
public override void OnOwnershipTransferred(VRCPlayerApi Player)
{
Debug.LogError("New owner is " + Player);
}
public override void InputJump(bool Value, UdonInputEventArgs Args)
{
if (Value && _IsBeingHeld)
{
_AdminPanelInterface.gameObject.SetActive(!_AdminPanelInterface.gameObject.activeSelf);
}
base.InputJump(Value, Args);
}
public override void OnStringLoadSuccess(IVRCStringDownload DownloadedString) public override void OnStringLoadSuccess(IVRCStringDownload DownloadedString)
{ {
string JSONString = DownloadedString.Result; string JSONString = DownloadedString.Result;
@ -97,13 +147,27 @@ public class GameManager : UdonSharpBehaviour
if (_QuestionsList.Count == 0) if (_QuestionsList.Count == 0)
{ {
_PregameInterface.HeaderUI.text = "Unable to find any questions. Ensure the root array elements are all objects."; _BetweenRoundsInterface.HeaderUI.text =
"Unable to find any questions. Ensure the root array elements are all objects.";
return; return;
} }
_CurrentQuestion = _QuestionsList[0].DataDictionary; _CurrentQuestion = _QuestionsList[0].DataDictionary;
_PregameInterface.HeaderUI.text = "Found " + _QuestionsList.Count + " questions in this case file."; _BetweenRoundsInterface.HeaderUI.text =
"Found " + _QuestionsList.Count + " questions in this case file. Press 'Use' button to show scores.";
// Reset podiums on a successful case load
for (int i = 0; i < _PlayerPodiums.Length; i++)
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[i],
NetworkEventTarget.All,
"ResetPodium");
}
_GameHasBegun = false;
EnableInteraction("Start Game");
} }
else else
{ {
@ -115,7 +179,7 @@ public class GameManager : UdonSharpBehaviour
private void NewMultipleChoiceQuestion() private void NewMultipleChoiceQuestion()
{ {
_MultipleChoiceInterface.HeaderUI.text = "Multiple Choice"; _MultipleChoiceInterface.HeaderUI.text = QuestionTypeToString((QuestionType)((int)_CurrentQuestion["Type"].Number));
DataList ClueStrings = _CurrentQuestion["Clues"].DataList; DataList ClueStrings = _CurrentQuestion["Clues"].DataList;
for (int i = 0; i < _MultipleChoiceInterface.CluesUI.Length && i < ClueStrings.Count; i++) for (int i = 0; i < _MultipleChoiceInterface.CluesUI.Length && i < ClueStrings.Count; i++)
@ -164,6 +228,8 @@ public class GameManager : UdonSharpBehaviour
DataList Choices = _CurrentQuestion["Choices"].DataList; DataList Choices = _CurrentQuestion["Choices"].DataList;
EnableChoiceCards(); EnableChoiceCards();
// Complex per-podium randomiser, to prevent peeking
Random.InitState(Networking.GetServerTimeInMilliseconds());
for (int i = 0; i < _PlayerPodiums.Length; i++) for (int i = 0; i < _PlayerPodiums.Length; i++)
{ {
int[] Indices = { 0, 1, 2 }; int[] Indices = { 0, 1, 2 };
@ -236,7 +302,7 @@ public class GameManager : UdonSharpBehaviour
{ {
_LightningRoundQuestionIndex = 0; _LightningRoundQuestionIndex = 0;
_LightningRoundInterface.HeaderUI.text = "Lightning Round | " + _CurrentQuestion["Location"].ToString(); _LightningRoundInterface.HeaderUI.text = QuestionTypeToString((QuestionType)((int)_CurrentQuestion["Type"].Number)) + " | " + _CurrentQuestion["Location"].ToString();
_LightningRoundInterface.QuestionUI.text = ""; _LightningRoundInterface.QuestionUI.text = "";
for (int i = 0; i < _LightningRoundInterface.ChoiceUI.Length && i < _LightningRoundInterface.ChoiceButtons.Length; i++) for (int i = 0; i < _LightningRoundInterface.ChoiceUI.Length && i < _LightningRoundInterface.ChoiceButtons.Length; i++)
{ {
@ -314,6 +380,10 @@ public class GameManager : UdonSharpBehaviour
{ {
LightningRoundCheckAnswer(3); LightningRoundCheckAnswer(3);
} }
public void LightningRoundOtherOptionChosen()
{
WaitForBuzzInsWithoutLastPlayer();
}
private void AdvanceToNextQuestion() private void AdvanceToNextQuestion()
@ -324,7 +394,7 @@ public class GameManager : UdonSharpBehaviour
_QuestionIndex++; _QuestionIndex++;
if (_QuestionIndex >= _QuestionsList.Count) if (_QuestionIndex >= _QuestionsList.Count)
{ {
_PregameInterface.HeaderUI.text = "No More Questions"; _BetweenRoundsInterface.HeaderUI.text = "No More Questions";
EnableHostCardDisplay(QuestionType.None); EnableHostCardDisplay(QuestionType.None);
DisableInteraction(); DisableInteraction();
return; return;
@ -333,14 +403,18 @@ public class GameManager : UdonSharpBehaviour
_CurrentQuestion = _QuestionsList[_QuestionIndex].DataDictionary; _CurrentQuestion = _QuestionsList[_QuestionIndex].DataDictionary;
_QuestionStage = 0; _QuestionStage = 0;
ResetInfoCard(); // Again, why does this work, but not just casting to an enum?
_BetweenRoundsInterface.HeaderUI.text = "Upcoming Question: " + QuestionTypeToString((QuestionType)((int)_CurrentQuestion["Type"].Number));
EnableHostCardDisplay(QuestionType.None);
ResetMultipleChoiceInterface();
EnableInteraction("Show Next Question"); EnableInteraction("Show Next Question");
} }
private void ResetInfoCard(string Header = "") private void ResetMultipleChoiceInterface()
{ {
_MultipleChoiceInterface.HeaderUI.text = Header; _MultipleChoiceInterface.HeaderUI.text = "";
for (int i = 0; i < _MultipleChoiceInterface.CluesUI.Length; i++) for (int i = 0; i < _MultipleChoiceInterface.CluesUI.Length; i++)
{ {
@ -548,6 +622,24 @@ public class GameManager : UdonSharpBehaviour
{ {
if (IsInteractionDisabled()) { return; } if (IsInteractionDisabled()) { return; }
if (!_GameHasBegun)
{
for (int i = 0; i < _PlayerPodiums.Length; i++)
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[i],
NetworkEventTarget.All,
"DisplayScore");
}
SendCustomNetworkEvent(NetworkEventTarget.All, nameof(PlaySFXAtPitch), SFXEventType.Ding, D6);
_BetweenRoundsInterface.HeaderUI.text = "Upcoming Question: " + QuestionTypeToString((QuestionType)((int)_CurrentQuestion["Type"].Number));
EnableHostCardDisplay(QuestionType.None);
_GameHasBegun = true;
return;
}
AdvanceQuestion(); AdvanceQuestion();
base.OnPickupUseDown(); base.OnPickupUseDown();
@ -556,14 +648,14 @@ public class GameManager : UdonSharpBehaviour
private void EnableHostCardDisplay(QuestionType Type) private void EnableHostCardDisplay(QuestionType Type)
{ {
_PregameInterface.gameObject.SetActive(false); _BetweenRoundsInterface.gameObject.SetActive(false);
_MultipleChoiceInterface.gameObject.SetActive(false); _MultipleChoiceInterface.gameObject.SetActive(false);
_LightningRoundInterface.gameObject.SetActive(false); _LightningRoundInterface.gameObject.SetActive(false);
switch(Type) switch(Type)
{ {
case QuestionType.None: case QuestionType.None:
_PregameInterface.gameObject.SetActive(true); _BetweenRoundsInterface.gameObject.SetActive(true);
break; break;
case QuestionType.MultipleChoice: case QuestionType.MultipleChoice:
_MultipleChoiceInterface.gameObject.SetActive(true); _MultipleChoiceInterface.gameObject.SetActive(true);
@ -600,6 +692,22 @@ public class GameManager : UdonSharpBehaviour
} }
private string QuestionTypeToString(QuestionType Type)
{
int SwitchType = (int)Type;
switch(SwitchType)
{
case (int)QuestionType.None: return "None";
case (int)QuestionType.MultipleChoice: return "Standard Round";
case (int)QuestionType.LightningRound: return "Lightning Round";
case (int)QuestionType.DumpsterDive: return "Dumpster Dive";
case (int)QuestionType.FinalRound: return "Final Round";
case (int)QuestionType.Tiebreaker: return "Tiebreaker";
default: return "[[ERROR]]";
}
}
// A messy group of variables that are used for pitch correction of sound effects // A messy group of variables that are used for pitch correction of sound effects
// Since Udon doesn't support accessing public static values in structs, we're doing it here // Since Udon doesn't support accessing public static values in structs, we're doing it here
// As5 = 932.33 Hz, PitchShift = TargetNoteFreq / As5Freq // As5 = 932.33 Hz, PitchShift = TargetNoteFreq / As5Freq

View File

@ -10,7 +10,7 @@ MonoBehaviour:
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
m_Name: HostCardPregameInterface m_Name: HostCardBetweenRoundsInterface
m_EditorClassIdentifier: m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: a31237219d4606a46a5468beb624e6d9, serializedUdonProgramAsset: {fileID: 11400000, guid: a31237219d4606a46a5468beb624e6d9,
type: 2} type: 2}
@ -21,7 +21,7 @@ MonoBehaviour:
compiledVersion: 2 compiledVersion: 2
behaviourSyncMode: 4 behaviourSyncMode: 4
hasInteractEvent: 0 hasInteractEvent: 0
scriptID: -5547144053508790062 scriptID: 4102590987168841126
serializationData: serializationData:
SerializedFormat: 2 SerializedFormat: 2
SerializedBytes: SerializedBytes:

View File

@ -6,6 +6,6 @@ using VRC.Udon;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)] [UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class HostCardPregameInterface : HostCardInterfaceBase public class HostCardBetweenRoundsInterface : HostCardInterfaceBase
{ {
} }

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5042d03c6d7368a4aaa5ae2a889e7629
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,233 @@
%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: AdminPanelInterface
m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: 140ab004ae5ff7d42ae7f58b405562f2,
type: 2}
udonAssembly:
assemblyError:
sourceCsScript: {fileID: 11500000, guid: 0caab5fa59e5ce349b5a601ecc7f6d5b, type: 3}
scriptVersion: 2
compiledVersion: 2
behaviourSyncMode: 4
hasInteractEvent: 0
scriptID: -5892168241610966170
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: 3
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: _PlayersPanel
- Name: $v
Entry: 7
Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _PlayersPanel
- Name: <UserType>k__BackingField
Entry: 7
Data: 3|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.GameObject, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 3
- 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: 4|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 5|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: _CamerasPanel
- Name: $v
Entry: 7
Data: 6|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _CamerasPanel
- Name: <UserType>k__BackingField
Entry: 9
Data: 3
- Name: <SystemType>k__BackingField
Entry: 9
Data: 3
- 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: 7|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 8|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: _PlayerPodiums
- Name: $v
Entry: 7
Data: 9|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _PlayerPodiums
- Name: <UserType>k__BackingField
Entry: 7
Data: 10|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: PlayerPodium[], Assembly-CSharp
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 7
Data: 11|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: 12|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 13|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: 13
Data:
- Name:
Entry: 8
Data:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 002caa0f269d52c4fbd494741a032596
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,150 @@

using UdonSharp;
using UnityEngine;
using VRC.SDK3.UdonNetworkCalling;
using VRC.SDKBase;
using VRC.Udon;
using VRC.Udon.Common.Interfaces;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class AdminPanelInterface : UdonSharpBehaviour
{
[SerializeField] private GameObject _PlayersPanel;
[SerializeField] private GameObject _CamerasPanel;
[SerializeField] private PlayerPodium[] _PlayerPodiums;
public void ShowPlayersAdminView()
{
_PlayersPanel.SetActive(true);
_CamerasPanel.SetActive(false);
}
public void ShowCamerasAdminView()
{
_PlayersPanel.SetActive(false);
_CamerasPanel.SetActive(true);
}
public void Player1_ResetPodiumOwner()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[0],
NetworkEventTarget.All,
"ResetOwner");
}
public void Player2_ResetPodiumOwner()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[1],
NetworkEventTarget.All,
"ResetOwner");
}
public void Player3_ResetPodiumOwner()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[2],
NetworkEventTarget.All,
"ResetOwner");
}
public void Player1_DecreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[0],
NetworkEventTarget.All,
"DecreaseScoreBy5");
}
public void Player2_DecreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[1],
NetworkEventTarget.All,
"DecreaseScoreBy5");
}
public void Player3_DecreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[2],
NetworkEventTarget.All,
"DecreaseScoreBy5");
}
public void Player1_IncreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[0],
NetworkEventTarget.All,
"IncreaseScoreBy5");
}
public void Player2_IncreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[1],
NetworkEventTarget.All,
"IncreaseScoreBy5");
}
public void Player3_IncreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[2],
NetworkEventTarget.All,
"IncreaseScoreBy5");
}
public void Player1_ResetPodium()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[0],
NetworkEventTarget.All,
"ResetPodium");
}
public void Player2_ResetPodium()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[1],
NetworkEventTarget.All,
"ResetPodium");
}
public void Player3_ResetPodium()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[2],
NetworkEventTarget.All,
"ResetPodium");
}
public void Camera1_Switch()
{
Debug.Log("Camera 1 should go live here.");
}
public void Camera2_Switch()
{
Debug.Log("Camera 2 should go live here.");
}
public void Camera3_Switch()
{
Debug.Log("Camera 3 should go live here.");
}
public void Camera4_Switch()
{
Debug.Log("Camera 4 should go live here.");
}
public void Camera5_Switch()
{
Debug.Log("Camera 5 should go live here.");
}
public void Camera6_Switch()
{
Debug.Log("Camera 6 should go live here.");
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 0caab5fa59e5ce349b5a601ecc7f6d5b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,227 @@
%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: PermissionsPanel
m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: a1c9cc3856eba8e4aa6786c04557fe4d,
type: 2}
udonAssembly:
assemblyError:
sourceCsScript: {fileID: 11500000, guid: 494fc4048736a6d4dbb2a8d10585d719, type: 3}
scriptVersion: 2
compiledVersion: 2
behaviourSyncMode: 4
hasInteractEvent: 0
scriptID: -3110328632252327434
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: 3
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: _ListContainer
- Name: $v
Entry: 7
Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ListContainer
- Name: <UserType>k__BackingField
Entry: 7
Data: 3|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.RectTransform, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 3
- 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: 4|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 5|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: _PlayerItemTemplate
- Name: $v
Entry: 7
Data: 6|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _PlayerItemTemplate
- Name: <UserType>k__BackingField
Entry: 7
Data: 7|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.GameObject, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 7
- 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: 8|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 9|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: PlayerData
- Name: $v
Entry: 7
Data: 10|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: PlayerData
- Name: <UserType>k__BackingField
Entry: 7
Data: 11|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: VRC.SDK3.Data.DataDictionary, VRCSDK3
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 11
- 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: 12|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:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7a18e743daeb88b409a5ece5bd072afd
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,61 @@

using UdonSharp;
using UnityEngine;
using VRC.Core.Pool;
using VRC.SDK3.Data;
using VRC.SDKBase;
using VRC.Udon;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class PermissionsPanel : UdonSharpBehaviour
{
[SerializeField] private RectTransform _ListContainer;
[SerializeField] private GameObject _PlayerItemTemplate;
private DataDictionary PlayerData = new DataDictionary();
public override void OnPlayerJoined(VRCPlayerApi Player)
{
GameObject NewListItem = Instantiate<GameObject>(_PlayerItemTemplate, _ListContainer, false);
NewListItem.SetActive(true);
PermissionsPanelPlayerEntry PlayerListItem = NewListItem.GetComponent<PermissionsPanelPlayerEntry>();
PlayerListItem.PlayerNameUI.text = Player.displayName;
PlayerData[Player.displayName] = new DataDictionary();
PlayerData[Player.displayName].DataDictionary["Admin"] = Player.isInstanceOwner;
PlayerData[Player.displayName].DataDictionary["Host"] = Player.isInstanceOwner;
PlayerData[Player.displayName].DataDictionary["Camera"] = Player.isInstanceOwner;
if (Networking.LocalPlayer.isInstanceOwner)
{
PlayerListItem.AdminToggle.interactable = true;
PlayerListItem.HostToggle.interactable = true;
PlayerListItem.CameraToggle.interactable = true;
PlayerListItem.AdminToggle.SetIsOnWithoutNotify(true);
PlayerListItem.HostToggle.SetIsOnWithoutNotify(true);
PlayerListItem.CameraToggle.SetIsOnWithoutNotify(true);
}
base.OnPlayerJoined(Player);
}
public override void OnPlayerLeft(VRCPlayerApi player)
{
for (int i = 0; i < _ListContainer.childCount; i++)
{
GameObject Entry = _ListContainer.GetChild(i).gameObject;
PermissionsPanelPlayerEntry PlayerEntry = Entry.GetComponent<PermissionsPanelPlayerEntry>();
if (PlayerEntry != null && PlayerEntry.PlayerNameUI.text == player.displayName)
{
Destroy(Entry);
break;
}
}
base.OnPlayerLeft(player);
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 494fc4048736a6d4dbb2a8d10585d719
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,257 @@
%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: PermissionsPanelPlayerEntry
m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: 0b51a27d3f57bdc4ab0332a58fe01df9,
type: 2}
udonAssembly:
assemblyError:
sourceCsScript: {fileID: 11500000, guid: e9cbc755689c14f4fb9a2692d548196b, type: 3}
scriptVersion: 2
compiledVersion: 2
behaviourSyncMode: 4
hasInteractEvent: 0
scriptID: 8075328209008208282
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: 4
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: AdminToggle
- Name: $v
Entry: 7
Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: AdminToggle
- Name: <UserType>k__BackingField
Entry: 7
Data: 3|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.UI.Toggle, UnityEngine.UI
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 3
- 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: 4|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: HostToggle
- Name: $v
Entry: 7
Data: 5|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: HostToggle
- Name: <UserType>k__BackingField
Entry: 9
Data: 3
- Name: <SystemType>k__BackingField
Entry: 9
Data: 3
- 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: 6|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: CameraToggle
- Name: $v
Entry: 7
Data: 7|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: CameraToggle
- Name: <UserType>k__BackingField
Entry: 9
Data: 3
- Name: <SystemType>k__BackingField
Entry: 9
Data: 3
- 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: 8|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: PlayerNameUI
- Name: $v
Entry: 7
Data: 9|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: PlayerNameUI
- Name: <UserType>k__BackingField
Entry: 7
Data: 10|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: TMPro.TextMeshProUGUI, Unity.TextMeshPro
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 10
- 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: 11|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:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 57d616d373f13a543823c1b4a026c06b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,17 @@

using UdonSharp;
using UnityEngine;
using TMPro;
using VRC.SDKBase;
using VRC.Udon;
using UnityEngine.UI;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class PermissionsPanelPlayerEntry : UdonSharpBehaviour
{
public Toggle AdminToggle;
public Toggle HostToggle;
public Toggle CameraToggle;
public TextMeshProUGUI PlayerNameUI;
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e9cbc755689c14f4fb9a2692d548196b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -44,7 +44,7 @@ MonoBehaviour:
Data: Data:
- Name: - Name:
Entry: 12 Entry: 12
Data: 10 Data: 12
- Name: - Name:
Entry: 7 Entry: 7
Data: Data:
@ -344,16 +344,82 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: _ChoiceCards Data: _ShowScoreCard
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 21|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 21|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _ChoiceCards Data: _ShowScoreCard
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 7
Data: 22|System.RuntimeType, mscorlib Data: 22|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Boolean, mscorlib
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 22
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 3
Data: 1
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 23|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 24|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 25|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime
- 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: _ChoiceCards
- Name: $v
Entry: 7
Data: 26|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ChoiceCards
- Name: <UserType>k__BackingField
Entry: 7
Data: 27|System.RuntimeType, mscorlib
- Name: - Name:
Entry: 1 Entry: 1
Data: ChoiceCardGroup, Assembly-CSharp Data: ChoiceCardGroup, Assembly-CSharp
@ -377,13 +443,13 @@ MonoBehaviour:
Data: true Data: true
- Name: _fieldAttributes - Name: _fieldAttributes
Entry: 7 Entry: 7
Data: 23|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib Data: 28|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name: - Name:
Entry: 12 Entry: 12
Data: 1 Data: 1
- Name: - Name:
Entry: 7 Entry: 7
Data: 24|UnityEngine.SerializeField, UnityEngine.CoreModule Data: 29|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
@ -407,13 +473,13 @@ MonoBehaviour:
Data: _Buzzer Data: _Buzzer
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 25|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 30|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _Buzzer Data: _Buzzer
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 7
Data: 26|System.RuntimeType, mscorlib Data: 31|System.RuntimeType, mscorlib
- Name: - Name:
Entry: 1 Entry: 1
Data: Buzzer, Assembly-CSharp Data: Buzzer, Assembly-CSharp
@ -437,79 +503,10 @@ MonoBehaviour:
Data: true Data: true
- Name: _fieldAttributes - Name: _fieldAttributes
Entry: 7 Entry: 7
Data: 27|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib Data: 32|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name: - Name:
Entry: 12 Entry: 12
Data: 1 Data: 1
- Name:
Entry: 7
Data: 28|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: _BuzzedInEffect
- Name: $v
Entry: 7
Data: 29|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _BuzzedInEffect
- Name: <UserType>k__BackingField
Entry: 7
Data: 30|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.GameObject, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
- 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: 31|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 32|UnityEngine.HeaderAttribute, UnityEngine.CoreModule
- Name: header
Entry: 1
Data: Effects
- Name:
Entry: 8
Data:
- Name: - Name:
Entry: 7 Entry: 7
Data: 33|UnityEngine.SerializeField, UnityEngine.CoreModule Data: 33|UnityEngine.SerializeField, UnityEngine.CoreModule
@ -533,19 +530,19 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: _Nameplate Data: _BuzzedInEffect
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 34|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 34|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _Nameplate Data: _BuzzedInEffect
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 7
Data: 35|System.RuntimeType, mscorlib Data: 35|System.RuntimeType, mscorlib
- Name: - Name:
Entry: 1 Entry: 1
Data: TMPro.TextMeshProUGUI, Unity.TextMeshPro Data: UnityEngine.GameObject, UnityEngine.CoreModule
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
@ -569,10 +566,19 @@ MonoBehaviour:
Data: 36|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib Data: 36|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name: - Name:
Entry: 12 Entry: 12
Data: 1 Data: 2
- Name: - Name:
Entry: 7 Entry: 7
Data: 37|UnityEngine.SerializeField, UnityEngine.CoreModule Data: 37|UnityEngine.HeaderAttribute, UnityEngine.CoreModule
- Name: header
Entry: 1
Data: Effects
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 38|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
@ -593,13 +599,13 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: _Scorecard Data: _ScorecardObject
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 38|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 39|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _Scorecard Data: _ScorecardObject
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 9 Entry: 9
Data: 35 Data: 35
@ -620,13 +626,127 @@ MonoBehaviour:
Data: true Data: true
- Name: _fieldAttributes - Name: _fieldAttributes
Entry: 7 Entry: 7
Data: 39|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib Data: 40|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name: - Name:
Entry: 12 Entry: 12
Data: 1 Data: 1
- Name: - Name:
Entry: 7 Entry: 7
Data: 40|UnityEngine.SerializeField, UnityEngine.CoreModule Data: 41|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: _NameplateUI
- Name: $v
Entry: 7
Data: 42|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _NameplateUI
- Name: <UserType>k__BackingField
Entry: 7
Data: 43|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: TMPro.TextMeshProUGUI, Unity.TextMeshPro
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 43
- 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: 44|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 45|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: _ScorecardUI
- Name: $v
Entry: 7
Data: 46|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ScorecardUI
- Name: <UserType>k__BackingField
Entry: 9
Data: 43
- Name: <SystemType>k__BackingField
Entry: 9
Data: 43
- 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: 47|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 48|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:

View File

@ -5,6 +5,7 @@ using TMPro;
using VRC.SDKBase; using VRC.SDKBase;
using VRC.SDK3.UdonNetworkCalling; using VRC.SDK3.UdonNetworkCalling;
using VRC.Udon.Common.Interfaces; using VRC.Udon.Common.Interfaces;
using VRC.Udon.Common;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)] [UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class PlayerPodium : UdonSharpBehaviour public class PlayerPodium : UdonSharpBehaviour
@ -16,6 +17,7 @@ public class PlayerPodium : UdonSharpBehaviour
[UdonSynced, FieldChangeCallback(nameof(PlayerName))] private string _PlayerName = "Player"; [UdonSynced, FieldChangeCallback(nameof(PlayerName))] private string _PlayerName = "Player";
[UdonSynced] private int _PlayerID = -1; [UdonSynced] private int _PlayerID = -1;
[UdonSynced, FieldChangeCallback(nameof(PlayerScore))] private int _PlayerScore = 50; [UdonSynced, FieldChangeCallback(nameof(PlayerScore))] private int _PlayerScore = 50;
[UdonSynced, FieldChangeCallback(nameof(ShowScoreCard))] private bool _ShowScoreCard = false;
[SerializeField] private ChoiceCardGroup _ChoiceCards; [SerializeField] private ChoiceCardGroup _ChoiceCards;
[SerializeField] private Buzzer _Buzzer; [SerializeField] private Buzzer _Buzzer;
@ -23,13 +25,15 @@ public class PlayerPodium : UdonSharpBehaviour
[Header("Effects")] [Header("Effects")]
[SerializeField] private GameObject _BuzzedInEffect; [SerializeField] private GameObject _BuzzedInEffect;
[SerializeField] private TextMeshProUGUI _Nameplate; [SerializeField] private GameObject _ScorecardObject;
[SerializeField] private TextMeshProUGUI _Scorecard;
[SerializeField] private TextMeshProUGUI _NameplateUI;
[SerializeField] private TextMeshProUGUI _ScorecardUI;
void Start() void Start()
{ {
PlayerName = "Player " + PlayerNumber; ResetPodium();
} }
@ -50,8 +54,41 @@ public class PlayerPodium : UdonSharpBehaviour
RequestSerialization(); RequestSerialization();
} }
[NetworkCallable]
public void ResetOwner()
{
Networking.SetOwner(Networking.InstanceOwner, gameObject);
Networking.SetOwner(Networking.InstanceOwner, _ChoiceCards.gameObject);
Networking.SetOwner(Networking.InstanceOwner, _Buzzer.gameObject);
PlayerName = "Player " + PlayerNumber;
_PlayerID = -1;
}
public int GetPlayerID() { return _PlayerID; } public int GetPlayerID() { return _PlayerID; }
[NetworkCallable]
public void DisplayScore()
{
ShowScoreCard = true;
RequestSerialization();
}
private void _DisplayScorecardObject(bool Show)
{
_ScorecardObject.SetActive(Show);
}
[NetworkCallable]
public void ResetPodium()
{
ResetOwner();
EnableChoiceCards(false);
EnableBuzzer(false);
EnableBuzzInEffect(false);
PlayerScore = 50;
ShowScoreCard = false;
}
[NetworkCallable] [NetworkCallable]
public void DecreaseScoreBy5() public void DecreaseScoreBy5()
@ -128,7 +165,7 @@ public class PlayerPodium : UdonSharpBehaviour
set set
{ {
_PlayerName = value; _PlayerName = value;
_Nameplate.text = value; _NameplateUI.text = value;
} }
get => _PlayerName; get => _PlayerName;
} }
@ -138,9 +175,19 @@ public class PlayerPodium : UdonSharpBehaviour
set set
{ {
_PlayerScore = value; _PlayerScore = value;
_Scorecard.text = PlayerScore.ToString(); _ScorecardUI.text = PlayerScore.ToString();
RequestSerialization(); RequestSerialization();
} }
get => _PlayerScore; get => _PlayerScore;
} }
public bool ShowScoreCard
{
set
{
_ShowScoreCard = value;
_DisplayScorecardObject(value);
}
get => _ShowScoreCard;
}
} }

View File

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
m_Name: BoneFollower m_Name: BoneFollower
m_EditorClassIdentifier: m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: 52ecc8a73071e8e40928c3609699fcf4, serializedUdonProgramAsset: {fileID: 11400000, guid: ccbda9bf23e2f714c9226283c77a92e5,
type: 2} type: 2}
udonAssembly: udonAssembly:
assemblyError: assemblyError:

View File

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
m_Name: InteractToggle m_Name: InteractToggle
m_EditorClassIdentifier: m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: 873dfce61b1514e429c92e0d2fded7de, serializedUdonProgramAsset: {fileID: 11400000, guid: 405e38d3dfb2f514daeed0e28fbb4864,
type: 2} type: 2}
udonAssembly: udonAssembly:
assemblyError: assemblyError:

View File

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
m_Name: PlayerModSetter m_Name: PlayerModSetter
m_EditorClassIdentifier: m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: e81558796a212ab4d88e305e2010f24b, serializedUdonProgramAsset: {fileID: 11400000, guid: f938e6c4ff027a74da405a1f9353fd2b,
type: 2} type: 2}
udonAssembly: udonAssembly:
assemblyError: assemblyError:

View File

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
m_Name: GlobalToggleObject m_Name: GlobalToggleObject
m_EditorClassIdentifier: m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: 2fe8ced6184000f49bca526cd2c5891c, serializedUdonProgramAsset: {fileID: 11400000, guid: c49c9265a3ef24642a6a4465d0a78872,
type: 2} type: 2}
udonAssembly: udonAssembly:
assemblyError: assemblyError:

View File

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
m_Name: MasterToggleObject m_Name: MasterToggleObject
m_EditorClassIdentifier: m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: a2d01d9f36ac6df49831be249e48ecc4, serializedUdonProgramAsset: {fileID: 11400000, guid: 04024a76ab1924042ba521e11cb76d91,
type: 2} type: 2}
udonAssembly: udonAssembly:
assemblyError: assemblyError:

View File

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
m_Name: TrackingDataFollower m_Name: TrackingDataFollower
m_EditorClassIdentifier: m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: 1b89d4552983c0448a7389decec3b555, serializedUdonProgramAsset: {fileID: 11400000, guid: 17f8fbbe6cc186d4f8dbb057b01a4ec2,
type: 2} type: 2}
udonAssembly: udonAssembly:
assemblyError: assemblyError:

View File

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
m_Name: WorldAudioSettings m_Name: WorldAudioSettings
m_EditorClassIdentifier: m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: 994b559b0f158b4499f8937980ed8694, serializedUdonProgramAsset: {fileID: 11400000, guid: 128d924a3066b7546b2d1c73e61006ab,
type: 2} type: 2}
udonAssembly: udonAssembly:
assemblyError: assemblyError:

View File

@ -73,7 +73,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d236b7d11115f2143951f1e14045df39, type: 3} m_Script: {fileID: 11500000, guid: d236b7d11115f2143951f1e14045df39, type: 3}
m_Name: Android Settings m_Name: Android Settings
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_LoaderManagerInstance: {fileID: 0} m_LoaderManagerInstance: {fileID: 6900794099702676279}
m_InitManagerOnStart: 0 m_InitManagerOnStart: 0
--- !u!114 &4281006169972801466 --- !u!114 &4281006169972801466
MonoBehaviour: MonoBehaviour:
@ -92,3 +92,20 @@ MonoBehaviour:
m_AutomaticRunning: 0 m_AutomaticRunning: 0
m_Loaders: m_Loaders:
- {fileID: 11400000, guid: 23d984f26145ee349875a6787759935a, type: 2} - {fileID: 11400000, guid: 23d984f26145ee349875a6787759935a, type: 2}
--- !u!114 &6900794099702676279
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: f4c3631f5e58749a59194e0cf6baf6d5, type: 3}
m_Name: Android Providers
m_EditorClassIdentifier:
m_RequiresSettingsUpdate: 0
m_AutomaticLoading: 0
m_AutomaticRunning: 0
m_Loaders:
- {fileID: 11400000, guid: 23d984f26145ee349875a6787759935a, type: 2}

View File

@ -168,15 +168,15 @@ PlayerSettings:
tvOS: 0 tvOS: 0
overrideDefaultApplicationIdentifier: 0 overrideDefaultApplicationIdentifier: 0
AndroidBundleVersionCode: 1 AndroidBundleVersionCode: 1
AndroidMinSdkVersion: 22 AndroidMinSdkVersion: 25
AndroidTargetSdkVersion: 0 AndroidTargetSdkVersion: 33
AndroidPreferredInstallLocation: 1 AndroidPreferredInstallLocation: 1
aotOptions: aotOptions:
stripEngineCode: 1 stripEngineCode: 1
iPhoneStrippingLevel: 0 iPhoneStrippingLevel: 0
iPhoneScriptCallOptimization: 0 iPhoneScriptCallOptimization: 0
ForceInternetPermission: 0 ForceInternetPermission: 0
ForceSDCardPermission: 0 ForceSDCardPermission: 1
CreateWallpaper: 0 CreateWallpaper: 0
APKExpansionFiles: 0 APKExpansionFiles: 0
keepLoadedShadersAlive: 0 keepLoadedShadersAlive: 0
@ -257,7 +257,7 @@ PlayerSettings:
useCustomGradlePropertiesTemplate: 0 useCustomGradlePropertiesTemplate: 0
useCustomGradleSettingsTemplate: 0 useCustomGradleSettingsTemplate: 0
useCustomProguardFile: 0 useCustomProguardFile: 0
AndroidTargetArchitectures: 1 AndroidTargetArchitectures: 2
AndroidTargetDevices: 0 AndroidTargetDevices: 0
AndroidSplashScreenScale: 0 AndroidSplashScreenScale: 0
androidSplashScreen: {fileID: 0} androidSplashScreen: {fileID: 0}
@ -505,7 +505,7 @@ PlayerSettings:
- m_BuildTarget: PS4Player - m_BuildTarget: PS4Player
m_GraphicsJobs: 1 m_GraphicsJobs: 1
- m_BuildTarget: iOSSupport - m_BuildTarget: iOSSupport
m_GraphicsJobs: 0 m_GraphicsJobs: 1
- m_BuildTarget: WindowsStandaloneSupport - m_BuildTarget: WindowsStandaloneSupport
m_GraphicsJobs: 1 m_GraphicsJobs: 1
- m_BuildTarget: XboxOnePlayer - m_BuildTarget: XboxOnePlayer
@ -513,7 +513,7 @@ PlayerSettings:
- m_BuildTarget: LuminSupport - m_BuildTarget: LuminSupport
m_GraphicsJobs: 0 m_GraphicsJobs: 0
- m_BuildTarget: AndroidPlayer - m_BuildTarget: AndroidPlayer
m_GraphicsJobs: 0 m_GraphicsJobs: 1
- m_BuildTarget: WebGLSupport - m_BuildTarget: WebGLSupport
m_GraphicsJobs: 0 m_GraphicsJobs: 0
m_BuildTargetGraphicsJobMode: m_BuildTargetGraphicsJobMode:
@ -527,7 +527,7 @@ PlayerSettings:
m_Automatic: 0 m_Automatic: 0
- m_BuildTarget: iOSSupport - m_BuildTarget: iOSSupport
m_APIs: 10000000 m_APIs: 10000000
m_Automatic: 0 m_Automatic: 1
- m_BuildTarget: AppleTVSupport - m_BuildTarget: AppleTVSupport
m_APIs: 10000000 m_APIs: 10000000
m_Automatic: 1 m_Automatic: 1
@ -821,7 +821,7 @@ PlayerSettings:
webGLMemoryGeometricGrowthCap: 96 webGLMemoryGeometricGrowthCap: 96
webGLPowerPreference: 2 webGLPowerPreference: 2
scriptingDefineSymbols: scriptingDefineSymbols:
Android: UNITY_POST_PROCESSING_STACK_V2 Android: UNITY_POST_PROCESSING_STACK_V2;UDONSHARP;UDON;VRC_SDK_VRCSDK3;VRC_ENABLE_PLAYER_PERSISTENCE
EmbeddedLinux: UNITY_POST_PROCESSING_STACK_V2 EmbeddedLinux: UNITY_POST_PROCESSING_STACK_V2
GameCoreXboxOne: UNITY_POST_PROCESSING_STACK_V2 GameCoreXboxOne: UNITY_POST_PROCESSING_STACK_V2
Nintendo Switch: UNITY_POST_PROCESSING_STACK_V2 Nintendo Switch: UNITY_POST_PROCESSING_STACK_V2
@ -833,11 +833,13 @@ PlayerSettings:
VisionOS: UNITY_POST_PROCESSING_STACK_V2 VisionOS: UNITY_POST_PROCESSING_STACK_V2
WebGL: UNITY_POST_PROCESSING_STACK_V2 WebGL: UNITY_POST_PROCESSING_STACK_V2
XboxOne: UNITY_POST_PROCESSING_STACK_V2 XboxOne: UNITY_POST_PROCESSING_STACK_V2
iPhone: UDONSHARP;UDON;VRC_SDK_VRCSDK3;VRC_ENABLE_PLAYER_PERSISTENCE
tvOS: UNITY_POST_PROCESSING_STACK_V2 tvOS: UNITY_POST_PROCESSING_STACK_V2
additionalCompilerArguments: {} additionalCompilerArguments: {}
platformArchitecture: {} platformArchitecture: {}
scriptingBackend: {} scriptingBackend: {}
il2cppCompilerConfiguration: il2cppCompilerConfiguration:
Android: 1
Standalone: 1 Standalone: 1
il2cppCodeGeneration: {} il2cppCodeGeneration: {}
managedStrippingLevel: managedStrippingLevel:
@ -864,6 +866,7 @@ PlayerSettings:
gcIncremental: 1 gcIncremental: 1
gcWBarrierValidation: 0 gcWBarrierValidation: 0
apiCompatibilityLevelPerPlatform: apiCompatibilityLevelPerPlatform:
Android: 3
Standalone: 3 Standalone: 3
iPhone: 3 iPhone: 3
m_RenderingPath: 1 m_RenderingPath: 1

View File

@ -1,16 +1,19 @@
2a901a7e324931f4db17ce54515ad209 2a901a7e324931f4db17ce54515ad209
9672859a94551274b9079efbf9adc4a9 9672859a94551274b9079efbf9adc4a9
d93ea6d5213349a4aa01b00d77edba61 510c1012ee5eba044b8c4161b150ca93
546833aff35b5494baf89e419b6d7977
a793cd1d5fe89c440900d816c7b8c323
ff135f18e14d9a94287191652767f722 ff135f18e14d9a94287191652767f722
9ae5e187a5d8f4e4893d37b62cbf0959 9ae5e187a5d8f4e4893d37b62cbf0959
a793cd1d5fe89c440900d816c7b8c323 51b03d257a738e6468f623865f31dbec
d93ea6d5213349a4aa01b00d77edba61
8ded9a8136c72af4f901e652f138f9b6 8ded9a8136c72af4f901e652f138f9b6
220d5a1f1701e674794a1083cc2f0bac 220d5a1f1701e674794a1083cc2f0bac
49170bf20870c7c45873b3c1966d86af
2c0cd617d97924748a9d5e2eeb2039b5 2c0cd617d97924748a9d5e2eeb2039b5
accd304c49b7d6d43b97738e8e118342
d1244b908a4cccd4397cc9cad45fe846 d1244b908a4cccd4397cc9cad45fe846
faae26a849699fc4b804b74882a344df faae26a849699fc4b804b74882a344df
9548a7b08d0e33a44bad0a5907660be7
51b03d257a738e6468f623865f31dbec
0c8a5bdda43be2a4e9cdad84677fbb62 0c8a5bdda43be2a4e9cdad84677fbb62
8a0236a6fb2773f46b033e383a3f4f55 8a0236a6fb2773f46b033e383a3f4f55
9cdc0250a4c9b534fae68ae6aa90bf31 9cdc0250a4c9b534fae68ae6aa90bf31
@ -361,5 +364,3 @@ a6c1d9564b56ecd47b82dfa7a8f11cbe
d419d3432b8a0a24b986e614c57c2039 d419d3432b8a0a24b986e614c57c2039
21221da753878694b9b9518a540dda85 21221da753878694b9b9518a540dda85
70108d78e82c2ec488d6b504865508e0 70108d78e82c2ec488d6b504865508e0
accd304c49b7d6d43b97738e8e118342
49170bf20870c7c45873b3c1966d86af