- Replaced placeholder podiums in round 2 with velvet rope.

- Video player more reliably loads videos on restarts.
This commit is contained in:
Jamie Greunbaum 2026-04-16 03:21:06 -04:00
parent ace89dc62d
commit 3a68516eaf
23 changed files with 898 additions and 631 deletions

View File

@ -0,0 +1,91 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: M_Velvet
m_Shader: {fileID: 4800000, guid: 0b7113dea2069fc4e8943843eff19f70, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _ENABLE_GEOMETRIC_SPECULAR_AA
- _GLOSSYREFLECTIONS_OFF
m_InvalidKeywords:
- _NORMALMAP
m_LightmapFlags: 4
m_EnableInstancingVariants: 1
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 2800000, guid: 511a2a95e47da9a4fb1b0b8146ad3e70, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 5, y: 5}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 5, y: 5}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 2800000, guid: d998877a999be404b89138ca135c4131, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _Bicubic: 0
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _EnableGeometricSpecularAA: 1
- _GlossMapScale: 1
- _Glossiness: 0.302
- _GlossyReflections: 0
- _LightmapType: 0
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 0.75
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularAAScreenSpaceVariance: 0.1
- _SpecularAAThreshold: 0.2
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0.78431374, g: 0, b: 0, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e938c08786a400b4eac8b275aec1eabf
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,109 @@
fileFormatVersion: 2
guid: 041fc504ffe97874884e52d5d72fe840
ModelImporter:
serializedVersion: 22200
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importPhysicalCameras: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
strictVertexDataChecks: 0
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
importBlendShapeDeformPercent: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -173,7 +173,7 @@ MonoBehaviour:
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_text: DESTINATION m_text:
m_isRightToLeft: 0 m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 9672859a94551274b9079efbf9adc4a9, type: 2} m_fontAsset: {fileID: 11400000, guid: 9672859a94551274b9079efbf9adc4a9, type: 2}
m_sharedMaterial: {fileID: -1369706839575089024, guid: 9672859a94551274b9079efbf9adc4a9, m_sharedMaterial: {fileID: -1369706839575089024, guid: 9672859a94551274b9079efbf9adc4a9,
@ -201,7 +201,7 @@ MonoBehaviour:
m_faceColor: m_faceColor:
serializedVersion: 2 serializedVersion: 2
rgba: 4294967295 rgba: 4294967295
m_fontSize: 183.8 m_fontSize: 200
m_fontSizeBase: 200 m_fontSizeBase: 200
m_fontWeight: 400 m_fontWeight: 400
m_enableAutoSizing: 1 m_enableAutoSizing: 1
@ -324,7 +324,7 @@ PrefabInstance:
- target: {fileID: 919132149155446097, guid: 85fb9450493e0894191f35f1bc4e8edf, - target: {fileID: 919132149155446097, guid: 85fb9450493e0894191f35f1bc4e8edf,
type: 3} type: 3}
propertyPath: m_StaticEditorFlags propertyPath: m_StaticEditorFlags
value: 0 value: 2147483647
objectReference: {fileID: 0} objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 621 KiB

After

Width:  |  Height:  |  Size: 622 KiB

File diff suppressed because one or more lines are too long

View File

@ -2,8 +2,6 @@
using TMPro; using TMPro;
using UdonSharp; using UdonSharp;
using UnityEngine; using UnityEngine;
using VRC.SDKBase;
using VRC.Udon;
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)] [UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
@ -12,8 +10,8 @@ public class ArrivalDisplay : UdonSharpBehaviour
[SerializeField] private GameObject _Sign; [SerializeField] private GameObject _Sign;
[SerializeField] private TextMeshProUGUI _Display; [SerializeField] private TextMeshProUGUI _Display;
[UdonSynced, FieldChangeCallback(nameof(ActivateSign))] private bool _ActivateSign; [UdonSynced, FieldChangeCallback(nameof(ActivateSign))] private bool _ActivateSign = false;
[UdonSynced, FieldChangeCallback(nameof(DisplayText))] private string _DisplayText; [UdonSynced, FieldChangeCallback(nameof(DisplayText))] private string _DisplayText = "";
public void Activate(bool Active) public void Activate(bool Active)

View File

@ -1964,25 +1964,25 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: _ArrivalDisplay Data: _ArrivalDisplays
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 125|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 125|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _ArrivalDisplay Data: _ArrivalDisplays
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 7
Data: 126|System.RuntimeType, mscorlib Data: 126|System.RuntimeType, mscorlib
- Name: - Name:
Entry: 1 Entry: 1
Data: ArrivalDisplay, Assembly-CSharp Data: ArrivalDisplay[], Assembly-CSharp
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
- Name: <SystemType>k__BackingField - Name: <SystemType>k__BackingField
Entry: 9 Entry: 9
Data: 4 Data: 33
- Name: <SyncMode>k__BackingField - Name: <SyncMode>k__BackingField
Entry: 7 Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib

View File

@ -53,7 +53,8 @@ public class GameManagerRound1 : GameManagerBase
[SerializeField] private DetectiveNoirEffect _DetectiveNoirEffect; [SerializeField] private DetectiveNoirEffect _DetectiveNoirEffect;
[SerializeField] private FilingCabinet _FilingCabinet; [SerializeField] private FilingCabinet _FilingCabinet;
[SerializeField] private Modem _Modem; [SerializeField] private Modem _Modem;
[SerializeField] private ArrivalDisplay _ArrivalDisplay;
[SerializeField] private ArrivalDisplay[] _ArrivalDisplays;
[Space, Header("Effects")] [Space, Header("Effects")]
[SerializeField] private Animator _LightningRoundAnimator; [SerializeField] private Animator _LightningRoundAnimator;
@ -100,7 +101,11 @@ public class GameManagerRound1 : GameManagerBase
_PlayerBuzzInAllowed = new bool[_PlayerPodiums.Length]; _PlayerBuzzInAllowed = new bool[_PlayerPodiums.Length];
_Modem.Activate(false); _Modem.Activate(false);
_ArrivalDisplay.Activate(false);
foreach (ArrivalDisplay Display in _ArrivalDisplays)
{
Display.Activate(false);
}
SendCustomNetworkEvent(NetworkEventTarget.All, nameof(EnableAudienceSilencer), true); SendCustomNetworkEvent(NetworkEventTarget.All, nameof(EnableAudienceSilencer), true);
@ -114,6 +119,8 @@ public class GameManagerRound1 : GameManagerBase
DisableInteraction(); DisableInteraction();
_VideoPlayer.PrepareMapsAndVideos(_CaseManager);
base.InitialiseGameMode(); base.InitialiseGameMode();
RequestSerialization(); RequestSerialization();
@ -146,7 +153,11 @@ public class GameManagerRound1 : GameManagerBase
Networking.SetOwner(NewOwner, _DetectiveNoirEffect.gameObject); Networking.SetOwner(NewOwner, _DetectiveNoirEffect.gameObject);
Networking.SetOwner(NewOwner, _FilingCabinet.gameObject); Networking.SetOwner(NewOwner, _FilingCabinet.gameObject);
Networking.SetOwner(NewOwner, _Modem.gameObject); Networking.SetOwner(NewOwner, _Modem.gameObject);
Networking.SetOwner(NewOwner, _ArrivalDisplay.gameObject);
foreach (ArrivalDisplay Display in _ArrivalDisplays)
{
Networking.SetOwner(NewOwner, Display.gameObject);
}
Networking.SetOwner(NewOwner, _CameraController.gameObject); Networking.SetOwner(NewOwner, _CameraController.gameObject);
Networking.SetOwner(NewOwner, _CameraControllerRound1.gameObject); Networking.SetOwner(NewOwner, _CameraControllerRound1.gameObject);
@ -198,8 +209,6 @@ public class GameManagerRound1 : GameManagerBase
Interface.CommentUI.text = _CaseManager.GetCaseDescription(); Interface.CommentUI.text = _CaseManager.GetCaseDescription();
_GameHasBegun = false; _GameHasBegun = false;
_VideoPlayer.PrepareMapsAndVideos(_CaseManager);
} }
@ -1487,7 +1496,11 @@ public class GameManagerRound1 : GameManagerBase
"PlayMusicLoop", MusicEventType.CapitalLoop); "PlayMusicLoop", MusicEventType.CapitalLoop);
_Modem.Activate(true); _Modem.Activate(true);
_ArrivalDisplay.Activate(true);
foreach (ArrivalDisplay Display in _ArrivalDisplays)
{
Display.Activate(true);
}
_CameraControllerRound1.ActivateModemCameraTrigger(); _CameraControllerRound1.ActivateModemCameraTrigger();

View File

@ -716,19 +716,19 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: _ArrivalDisplay Data: _LocationBoard
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 46|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 46|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _ArrivalDisplay Data: _LocationBoard
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 7
Data: 47|System.RuntimeType, mscorlib Data: 47|System.RuntimeType, mscorlib
- Name: - Name:
Entry: 1 Entry: 1
Data: ArrivalDisplay, Assembly-CSharp Data: LocationBoard, Assembly-CSharp
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
@ -785,19 +785,19 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: _LocationBoard Data: _JailChain
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 51|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 51|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _LocationBoard Data: _JailChain
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 7
Data: 52|System.RuntimeType, mscorlib Data: 52|System.RuntimeType, mscorlib
- Name: - Name:
Entry: 1 Entry: 1
Data: LocationBoard, Assembly-CSharp Data: JailChain, Assembly-CSharp
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
@ -845,19 +845,19 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: _JailChain Data: _JailPhone
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 55|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 55|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _JailChain Data: _JailPhone
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 7
Data: 56|System.RuntimeType, mscorlib Data: 56|System.RuntimeType, mscorlib
- Name: - Name:
Entry: 1 Entry: 1
Data: JailChain, Assembly-CSharp Data: JailPhone, Assembly-CSharp
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
@ -905,25 +905,25 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: _JailPhone Data: _PlayerConfettiCannons
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 59|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 59|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _JailPhone Data: _PlayerConfettiCannons
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 7
Data: 60|System.RuntimeType, mscorlib Data: 60|System.RuntimeType, mscorlib
- Name: - Name:
Entry: 1 Entry: 1
Data: JailPhone, Assembly-CSharp Data: UnityEngine.ParticleSystem[], UnityEngine.ParticleSystemModule
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
- Name: <SystemType>k__BackingField - Name: <SystemType>k__BackingField
Entry: 9 Entry: 9
Data: 4 Data: 60
- Name: <SyncMode>k__BackingField - Name: <SyncMode>k__BackingField
Entry: 7 Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@ -965,25 +965,25 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: _PlayerConfettiCannons Data: _ArrivalDisplays
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 63|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 63|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: _PlayerConfettiCannons Data: _ArrivalDisplays
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 7
Data: 64|System.RuntimeType, mscorlib Data: 64|System.RuntimeType, mscorlib
- Name: - Name:
Entry: 1 Entry: 1
Data: UnityEngine.ParticleSystem[], UnityEngine.ParticleSystemModule Data: ArrivalDisplay[], Assembly-CSharp
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
- Name: <SystemType>k__BackingField - Name: <SystemType>k__BackingField
Entry: 9 Entry: 9
Data: 64 Data: 33
- Name: <SyncMode>k__BackingField - Name: <SyncMode>k__BackingField
Entry: 7 Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib

View File

@ -21,12 +21,13 @@ public class GameManagerRound2 : GameManagerBase
{ {
[Space] [Space]
[SerializeField] private ArrivalDisplay _ArrivalDisplay;
[SerializeField] private LocationBoard _LocationBoard; [SerializeField] private LocationBoard _LocationBoard;
[SerializeField] private JailChain _JailChain; [SerializeField] private JailChain _JailChain;
[SerializeField] private JailPhone _JailPhone; [SerializeField] private JailPhone _JailPhone;
[SerializeField] private ParticleSystem[] _PlayerConfettiCannons; [SerializeField] private ParticleSystem[] _PlayerConfettiCannons;
[SerializeField] private ArrivalDisplay[] _ArrivalDisplays;
[SerializeField] private RandomVideoPlayer _JailPlayer; [SerializeField] private RandomVideoPlayer _JailPlayer;
[UdonSynced, FieldChangeCallback(nameof(Location))] private string _Location = ""; [UdonSynced, FieldChangeCallback(nameof(Location))] private string _Location = "";
@ -104,12 +105,16 @@ public class GameManagerRound2 : GameManagerBase
public override void SetOwnershipOfObjects(VRCPlayerApi NewOwner) public override void SetOwnershipOfObjects(VRCPlayerApi NewOwner)
{ {
Networking.SetOwner(NewOwner, _ArrivalDisplay.gameObject);
Networking.SetOwner(NewOwner, _LocationBoard.gameObject); Networking.SetOwner(NewOwner, _LocationBoard.gameObject);
Networking.SetOwner(NewOwner, _JailChain.gameObject); Networking.SetOwner(NewOwner, _JailChain.gameObject);
Networking.SetOwner(NewOwner, _JailPlayer.gameObject); Networking.SetOwner(NewOwner, _JailPlayer.gameObject);
Networking.SetOwner(NewOwner, _JailPhone.gameObject); Networking.SetOwner(NewOwner, _JailPhone.gameObject);
foreach(ArrivalDisplay Display in _ArrivalDisplays)
{
Networking.SetOwner(NewOwner, Display.gameObject);
}
Networking.SetOwner(NewOwner, _CameraController.gameObject); Networking.SetOwner(NewOwner, _CameraController.gameObject);
Networking.SetOwner(NewOwner, _CameraControllerRound2.gameObject); Networking.SetOwner(NewOwner, _CameraControllerRound2.gameObject);
@ -611,7 +616,10 @@ public class GameManagerRound2 : GameManagerBase
set set
{ {
_Location = value; _Location = value;
_ArrivalDisplay.SetDisplayText(_Location); foreach (ArrivalDisplay Display in _ArrivalDisplays)
{
Display.SetDisplayText(_Location);
}
} }
get => _Location; get => _Location;
} }

BIN
Raw Files/VelvetRope.blend Normal file

Binary file not shown.