- Added the episode Roaring Rodent Road Show.

- Added placeholder videos for all In Jail animations.
- ACME Crimenet Computer now uses more synced values and less network events.
This commit is contained in:
2025-12-01 22:31:56 -05:00
parent 2d293d8129
commit a97a7a03d1
15 changed files with 1163 additions and 128 deletions
@@ -19,7 +19,7 @@ MonoBehaviour:
sourceCsScript: {fileID: 11500000, guid: d0da7328e5367f24480c590f61700ea1, type: 3}
scriptVersion: 2
compiledVersion: 2
behaviourSyncMode: 2
behaviourSyncMode: 4
hasInteractEvent: 0
scriptID: 2795592714782532019
serializationData:
@@ -44,7 +44,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 15
Data: 20
- Name:
Entry: 7
Data:
@@ -782,19 +782,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _ClueImageDownloader
Data: _Activate
- Name: $v
Entry: 7
Data: 50|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ClueImageDownloader
Data: _Activate
- Name: <UserType>k__BackingField
Entry: 7
Data: 51|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: VRC.SDK3.Image.VRCImageDownloader, VRCSDK3
Data: System.Boolean, mscorlib
- Name:
Entry: 8
Data:
@@ -805,8 +805,8 @@ MonoBehaviour:
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
Entry: 3
Data: 1
- Name:
Entry: 8
Data:
@@ -818,7 +818,145 @@ MonoBehaviour:
Data: 52|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
Data: 2
- Name:
Entry: 7
Data: 53|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 54|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: _UntranslatedText
- Name: $v
Entry: 7
Data: 55|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _UntranslatedText
- Name: <UserType>k__BackingField
Entry: 7
Data: 56|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.String, mscorlib
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 56
- 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: 57|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 58|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 59|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: _TranslatedText
- Name: $v
Entry: 7
Data: 60|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _TranslatedText
- Name: <UserType>k__BackingField
Entry: 9
Data: 56
- Name: <SystemType>k__BackingField
Entry: 9
Data: 56
- 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: 61|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 62|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 63|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
- Name:
Entry: 13
Data:
@@ -839,13 +977,199 @@ MonoBehaviour:
Data: _ClueImage
- Name: $v
Entry: 7
Data: 53|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 64|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ClueImage
- Name: <UserType>k__BackingField
Entry: 7
Data: 54|System.RuntimeType, mscorlib
Data: 65|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Int32, mscorlib
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 65
- 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: 66|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 67|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 68|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: _ClueImageScale
- Name: $v
Entry: 7
Data: 69|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ClueImageScale
- Name: <UserType>k__BackingField
Entry: 7
Data: 70|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Single, mscorlib
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 70
- 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: 71|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 2
- Name:
Entry: 7
Data: 72|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 73|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: _ClueImageDownloader
- Name: $v
Entry: 7
Data: 74|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ClueImageDownloader
- Name: <UserType>k__BackingField
Entry: 7
Data: 75|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: VRC.SDK3.Image.VRCImageDownloader, VRCSDK3
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 75
- 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: 76|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: _ClueImageDownload
- Name: $v
Entry: 7
Data: 77|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ClueImageDownload
- Name: <UserType>k__BackingField
Entry: 7
Data: 78|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.Texture2D, UnityEngine.CoreModule
@@ -854,7 +1178,7 @@ MonoBehaviour:
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 54
Data: 78
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -869,7 +1193,7 @@ MonoBehaviour:
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 55|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 79|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
@@ -893,13 +1217,13 @@ MonoBehaviour:
Data: _Animator
- Name: $v
Entry: 7
Data: 56|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 80|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _Animator
- Name: <UserType>k__BackingField
Entry: 7
Data: 57|System.RuntimeType, mscorlib
Data: 81|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.Animator, UnityEngine.AnimationModule
@@ -908,7 +1232,7 @@ MonoBehaviour:
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 57
Data: 81
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -923,7 +1247,7 @@ MonoBehaviour:
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 58|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 82|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
@@ -1,7 +1,10 @@
using System.Runtime.InteropServices;
using System.Runtime.Remoting;
using TMPro;
using UdonSharp;
using UnityEngine;
using UnityEngine.UIElements;
using VRC.SDK3.Image;
using VRC.SDK3.UdonNetworkCalling;
using VRC.SDKBase;
@@ -9,7 +12,7 @@ using VRC.Udon;
using VRC.Udon.Common.Interfaces;
[UdonBehaviourSyncMode(BehaviourSyncMode.NoVariableSync)]
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class ACMECrimenetComputer : UdonSharpBehaviour
{
[SerializeField] private GameManagerRound1 _GameManager;
@@ -35,8 +38,17 @@ public class ACMECrimenetComputer : UdonSharpBehaviour
[Space]
[SerializeField] private GameObject[] _Interactables;
[UdonSynced, FieldChangeCallback(nameof(Activate))] private bool _Activate = false;
[UdonSynced, FieldChangeCallback(nameof(UntranslatedText))] private string _UntranslatedText = "";
[UdonSynced, FieldChangeCallback(nameof(TranslatedText))] private string _TranslatedText = "";
[UdonSynced, FieldChangeCallback(nameof(ClueImage))] private int _ClueImage = -1;
[UdonSynced, FieldChangeCallback(nameof(ClueImageScale))] private float _ClueImageScale = 1.0f;
private VRCImageDownloader _ClueImageDownloader;
private Texture2D _ClueImage;
private Texture2D _ClueImageDownload;
private Animator _Animator;
@@ -52,14 +64,42 @@ public class ACMECrimenetComputer : UdonSharpBehaviour
}
[NetworkCallable]
public void ResetComputer()
private void SetUntranslatedText(string Untranslated)
{
_UntranslatedText = Untranslated;
_UntranslatedTextGUI.text = _UntranslatedText;
RequestSerialization();
}
private void SetTranslatedText(string Translated)
{
_TranslatedText = Translated;
_TranslatedTextGUI.text = _TranslatedText;
RequestSerialization();
}
private void SwooceRightIn()
{
_Animator.SetBool("Swooce Right In", true);
foreach (GameObject Interactable in _Interactables)
{
Interactable.SetActive(true);
}
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All, "PlayMusicLoop", MusicEventType.ACMECrimenetComputerIdle);
}
private void SwooceRightBackOutAgain()
{
foreach (GameObject Interactable in _Interactables)
{
Interactable.SetActive(false);
}
ClueImageScale = 1.0f;
_Animator.SetBool("Swooce Right In", false);
_Animator.SetBool("Open Compartment", false);
_Animator.SetBool("Throw Clue Into The Air", false);
@@ -79,36 +119,15 @@ public class ACMECrimenetComputer : UdonSharpBehaviour
_TranslatedCard.localRotation = Quaternion.identity;
}
[NetworkCallable]
public void SetCardTexts(string Untranslated, string Translated)
{
_UntranslatedTextGUI.text = Untranslated;
_TranslatedTextGUI.text = Translated;
}
[NetworkCallable]
public void SwooceRightIn()
{
_Animator.SetBool("Swooce Right In", true);
foreach (GameObject Interactable in _Interactables)
{
Interactable.SetActive(true);
}
_AudioManager.SendCustomNetworkEvent(NetworkEventTarget.All, "PlayMusicLoop", MusicEventType.ACMECrimenetComputerIdle);
}
[NetworkCallable]
public void LoadClueImage(int Index)
private void LoadClueImage()
{
TextureInfo AdditionalTextureInfo = new TextureInfo();
AdditionalTextureInfo.WrapModeU = TextureWrapMode.Clamp;
AdditionalTextureInfo.WrapModeV = TextureWrapMode.Clamp;
AdditionalTextureInfo.GenerateMipMaps = true;
_ClueImageDownloader.DownloadImage(
_GameManager.GetClueImageURL(Index), null,
_GameManager.GetClueImageURL(_ClueImage), null,
(IUdonEventReceiver)this, AdditionalTextureInfo);
}
public override void OnImageLoadSuccess(IVRCImageDownload Result)
@@ -117,11 +136,6 @@ public class ACMECrimenetComputer : UdonSharpBehaviour
base.OnImageLoadSuccess(Result);
}
[NetworkCallable]
public void SetClueImageScale(float Scale)
{
_ClueImageCard.transform.localScale = new Vector3(Scale, Scale, Scale);
}
[NetworkCallable]
public void OpenCompartment()
@@ -152,4 +166,66 @@ public class ACMECrimenetComputer : UdonSharpBehaviour
_Animator.SetBool("Run Translator", true);
}
public bool Activate
{
set
{
_Activate = value;
if (_Activate)
{
SwooceRightIn();
}
else
{
SwooceRightBackOutAgain();
}
RequestSerialization();
}
get => _Activate;
}
public string UntranslatedText
{
set
{
SetUntranslatedText(value);
}
get => _UntranslatedText;
}
public string TranslatedText
{
set
{
SetTranslatedText(value);
}
get => _TranslatedText;
}
public int ClueImage
{
set
{
if (_ClueImage != value)
{
_ClueImage = value;
LoadClueImage();
RequestSerialization();
}
}
get => _ClueImage;
}
public float ClueImageScale
{
set
{
_ClueImageScale = value;
_ClueImageCard.transform.localScale = new Vector3(_ClueImageScale, _ClueImageScale, _ClueImageScale);
RequestSerialization();
}
get => _ClueImageScale;
}
}