- Added ability for players without camera permissions to watch camera output.

- Added a tablet spawner to let players view said camera output.
- Added many more reflection probes to the alleyway to try to fill in gaps.
- Moved round 2 signage around to fit in the camera view better.
- Round 2 sign text changed to use SDF textures for better clarity.
- Created better gizmo icons for CameraAnchor and CameraSwitcher.
- Light strip on modem now uses an already-available SDF texture.
- Performance mode is now the default camera mode.
This commit is contained in:
2026-04-23 03:50:44 -04:00
parent a6b3b840b2
commit 39e227f264
59 changed files with 4897 additions and 633 deletions
+28 -6
View File
@@ -165,13 +165,35 @@ public class CameraAnchor : UdonSharpBehaviour
public override void OnPlayerLeft(VRCPlayerApi LeavingPlayer)
{
//foreach (VRCPlayerApi FollowedPlayer in _FollowedPlayers)
//{
// if (FollowedPlayer.displayName == LeavingPlayer.displayName)
// {
bool LeavingIsInFollowed = false;
foreach (string FollowedPlayer in _FollowedPlayerNames)
{
if (FollowedPlayer == LeavingPlayer.displayName)
{
LeavingIsInFollowed = true;
break;
}
}
// }
//}
if (LeavingIsInFollowed)
{
string[] NewPlayerList = new string[_FollowedPlayerNames.Length - 1];
int Offset = 0;
for (int i = 0; i < _FollowedPlayerNames.Length; i++)
{
string PlayerName = _FollowedPlayerNames[i];
if (PlayerName != LeavingPlayer.displayName)
{
NewPlayerList[i-Offset] = PlayerName;
}
else
{
Offset++;
}
}
_FollowedPlayerNames = NewPlayerList;
_FollowPlayers_Synced();
}
base.OnPlayerLeft(LeavingPlayer);
}
+18 -18
View File
@@ -13,37 +13,37 @@ public class CameraControlSystem : UdonSharpBehaviour
public void CameraEnabled()
{
foreach (Camera Camera in _CameraSystem.camerasObjects)
{
Camera.enabled = true;
}
//foreach (Camera Camera in _CameraSystem.camerasObjects)
//{
// Camera.enabled = true;
//}
_Console.SetActive(true);
_CameraSystem.gameObject.SetActive(true);
//_CameraSystem.gameObject.SetActive(true);
_CameraSystem.Authorize();
foreach (Camera Cam in _CameraSystem.camerasObjects)
{
Cam.gameObject.SetActive(true);
}
//foreach (Camera Cam in _CameraSystem.camerasObjects)
//{
// Cam.gameObject.SetActive(true);
//}
}
public void CameraDisabled()
{
foreach (Camera Camera in _CameraSystem.camerasObjects)
{
Camera.enabled = false;
}
//foreach (Camera Camera in _CameraSystem.camerasObjects)
//{
// Camera.enabled = false;
//}
_Console.SetActive(false);
_CameraSystem.Deauthorize();
_CameraSystem.gameObject.SetActive(false);
//_CameraSystem.gameObject.SetActive(false);
foreach (Camera Cam in _CameraSystem.camerasObjects)
{
Cam.gameObject.SetActive(false);
}
//foreach (Camera Cam in _CameraSystem.camerasObjects)
//{
// Cam.gameObject.SetActive(false);
//}
}
}
@@ -44,7 +44,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 25
Data: 23
- Name:
Entry: 7
Data:
@@ -1346,70 +1346,16 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _PotatoModeImage
Data: SELECTED_TAB_COLOUR
- Name: $v
Entry: 7
Data: 84|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _PotatoModeImage
- Name: <UserType>k__BackingField
Entry: 9
Data: 25
- Name: <SystemType>k__BackingField
Entry: 9
Data: 25
- 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: 85|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 86|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: SELECTED_TAB_COLOUR
- Name: $v
Entry: 7
Data: 87|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: SELECTED_TAB_COLOUR
- Name: <UserType>k__BackingField
Entry: 7
Data: 88|System.RuntimeType, mscorlib
Data: 85|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.Color, UnityEngine.CoreModule
@@ -1418,7 +1364,7 @@ MonoBehaviour:
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 88
Data: 85
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -1433,55 +1379,7 @@ MonoBehaviour:
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 89|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: POTATO_TOGGLED_ON_COLOUR
- Name: $v
Entry: 7
Data: 90|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: POTATO_TOGGLED_ON_COLOUR
- Name: <UserType>k__BackingField
Entry: 9
Data: 88
- Name: <SystemType>k__BackingField
Entry: 9
Data: 88
- 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: 91|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 86|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
@@ -48,10 +48,8 @@ public class HostPanelInterface : UdonSharpBehaviour
[SerializeField] private GameManagerRound3 _Round3Manager;
[SerializeField] private PlayerPodium[] _PlayerPodiums;
[SerializeField] private CameraSystem_Console _CameraConsole;
[SerializeField] private Image _PotatoModeImage;
private readonly Color SELECTED_TAB_COLOUR = new Color(0.0f, 0.5f, 0.0f);
private readonly Color POTATO_TOGGLED_ON_COLOUR = new Color(0.5f, 0.0f, 0.0f);
public void ShowPlayersAdminView()
@@ -271,6 +269,6 @@ public class HostPanelInterface : UdonSharpBehaviour
public void TogglePotato()
{
_PotatoModeImage.color = _CameraConsole.TogglePotato() ? POTATO_TOGGLED_ON_COLOUR : Color.white;
_CameraConsole.TogglePotato();
}
}
@@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
m_Name: BoneFollower
m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: 52ecc8a73071e8e40928c3609699fcf4,
serializedUdonProgramAsset: {fileID: 11400000, guid: ccbda9bf23e2f714c9226283c77a92e5,
type: 2}
udonAssembly:
assemblyError:
@@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
m_Name: InteractToggle
m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: 873dfce61b1514e429c92e0d2fded7de,
serializedUdonProgramAsset: {fileID: 11400000, guid: 405e38d3dfb2f514daeed0e28fbb4864,
type: 2}
udonAssembly:
assemblyError:
@@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
m_Name: PlayerModSetter
m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: e81558796a212ab4d88e305e2010f24b,
serializedUdonProgramAsset: {fileID: 11400000, guid: f938e6c4ff027a74da405a1f9353fd2b,
type: 2}
udonAssembly:
assemblyError:
@@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
m_Name: GlobalToggleObject
m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: 2fe8ced6184000f49bca526cd2c5891c,
serializedUdonProgramAsset: {fileID: 11400000, guid: c49c9265a3ef24642a6a4465d0a78872,
type: 2}
udonAssembly:
assemblyError:
@@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
m_Name: MasterToggleObject
m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: a2d01d9f36ac6df49831be249e48ecc4,
serializedUdonProgramAsset: {fileID: 11400000, guid: 04024a76ab1924042ba521e11cb76d91,
type: 2}
udonAssembly:
assemblyError:
@@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
m_Name: TrackingDataFollower
m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: 1b89d4552983c0448a7389decec3b555,
serializedUdonProgramAsset: {fileID: 11400000, guid: 17f8fbbe6cc186d4f8dbb057b01a4ec2,
type: 2}
udonAssembly:
assemblyError:
@@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
m_Name: WorldAudioSettings
m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: 994b559b0f158b4499f8937980ed8694,
serializedUdonProgramAsset: {fileID: 11400000, guid: 128d924a3066b7546b2d1c73e61006ab,
type: 2}
udonAssembly:
assemblyError:
+167
View File
@@ -0,0 +1,167 @@
%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: ViewTabletSpawner
m_EditorClassIdentifier:
serializedUdonProgramAsset: {fileID: 11400000, guid: 8ff689aafbed974448d0ce868542b749,
type: 2}
udonAssembly:
assemblyError:
sourceCsScript: {fileID: 11500000, guid: b1e3d98a9925dc645bb398fdbd18c33b, type: 3}
scriptVersion: 2
compiledVersion: 2
behaviourSyncMode: 1
hasInteractEvent: 0
scriptID: 4527395773890890163
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: 2
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: _ViewTabletSpawn
- Name: $v
Entry: 7
Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ViewTabletSpawn
- Name: <UserType>k__BackingField
Entry: 7
Data: 3|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.Transform, 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: _ViewTabletHeadRoot
- Name: $v
Entry: 7
Data: 6|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ViewTabletHeadRoot
- 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: 13
Data:
- Name:
Entry: 8
Data:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 415b3207e9ff8be4d92fbcfce836fba0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
+26
View File
@@ -0,0 +1,26 @@
using UdonSharp;
using UnityEngine;
using VRC.SDKBase;
[UdonBehaviourSyncMode(BehaviourSyncMode.None)]
public class ViewTabletSpawner : UdonSharpBehaviour
{
[SerializeField] private Transform _ViewTabletSpawn;
[SerializeField] private Transform _ViewTabletHeadRoot;
public void SpawnAtPlayerHead(VRCPlayerApi Player)
{
_ViewTabletHeadRoot.transform.SetPositionAndRotation(
Player.GetBonePosition(HumanBodyBones.Head),
Player.GetBoneRotation(HumanBodyBones.Head));
}
public void Despawn()
{
_ViewTabletHeadRoot.transform.localPosition = Vector3.zero;
_ViewTabletHeadRoot.transform.localRotation = Quaternion.identity;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b1e3d98a9925dc645bb398fdbd18c33b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: