- Added fence, barrel, trash can, and cardboard boxes to the alleyway.

- Added more light probes to alleyway.
- Added round 2 podium reset buttons to admin panel.
- Fixed ResetPodium function not having a parameter in PlayerPodiumRound2.
This commit is contained in:
2026-04-28 05:10:40 -04:00
parent 0a98c69770
commit 69337bf3de
70 changed files with 5207 additions and 510 deletions
@@ -44,7 +44,7 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 23
Data: 24
- Name:
Entry: 7
Data:
@@ -1040,19 +1040,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _Round1Manager
Data: _CameraConsole
- Name: $v
Entry: 7
Data: 63|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _Round1Manager
Data: _CameraConsole
- Name: <UserType>k__BackingField
Entry: 7
Data: 64|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: GameManagerRound1, Assembly-CSharp
Data: CameraSystem.CameraSystem_Console, Assembly-CSharp
- Name:
Entry: 8
Data:
@@ -1100,19 +1100,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _Round2Manager
Data: _Round1Manager
- Name: $v
Entry: 7
Data: 67|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _Round2Manager
Data: _Round1Manager
- Name: <UserType>k__BackingField
Entry: 7
Data: 68|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: GameManagerRound2, Assembly-CSharp
Data: GameManagerRound1, Assembly-CSharp
- Name:
Entry: 8
Data:
@@ -1136,10 +1136,28 @@ MonoBehaviour:
Data: 69|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
Data: 3
- Name:
Entry: 7
Data: 70|UnityEngine.SerializeField, UnityEngine.CoreModule
Data: 70|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
- Name: height
Entry: 4
Data: 8
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 71|UnityEngine.HeaderAttribute, UnityEngine.CoreModule
- Name: header
Entry: 1
Data: Round 1
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 72|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
@@ -1160,76 +1178,16 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _Round3Manager
Data: _Round1Podiums
- Name: $v
Entry: 7
Data: 71|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 73|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _Round3Manager
Data: _Round1Podiums
- Name: <UserType>k__BackingField
Entry: 7
Data: 72|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: GameManagerRound3, Assembly-CSharp
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
- 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: 73|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 74|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: 75|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _PlayerPodiums
- Name: <UserType>k__BackingField
Entry: 7
Data: 76|System.RuntimeType, mscorlib
Data: 74|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: PlayerPodium[], Assembly-CSharp
@@ -1238,7 +1196,7 @@ MonoBehaviour:
Data:
- Name: <SystemType>k__BackingField
Entry: 7
Data: 77|System.RuntimeType, mscorlib
Data: 75|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.Component[], UnityEngine.CoreModule
@@ -1259,13 +1217,13 @@ MonoBehaviour:
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 78|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 76|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 79|UnityEngine.SerializeField, UnityEngine.CoreModule
Data: 77|UnityEngine.SerializeField, UnityEngine.CoreModule
- Name:
Entry: 8
Data:
@@ -1286,19 +1244,19 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _CameraConsole
Data: _Round2Manager
- Name: $v
Entry: 7
Data: 80|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
Data: 78|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _CameraConsole
Data: _Round2Manager
- Name: <UserType>k__BackingField
Entry: 7
Data: 81|System.RuntimeType, mscorlib
Data: 79|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: CameraSystem.CameraSystem_Console, Assembly-CSharp
Data: GameManagerRound2, Assembly-CSharp
- Name:
Entry: 8
Data:
@@ -1319,10 +1277,28 @@ MonoBehaviour:
Data: true
- Name: _fieldAttributes
Entry: 7
Data: 82|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 80|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
Data: 3
- Name:
Entry: 7
Data: 81|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
- Name: height
Entry: 4
Data: 8
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 82|UnityEngine.HeaderAttribute, UnityEngine.CoreModule
- Name: header
Entry: 1
Data: Round 2
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 83|UnityEngine.SerializeField, UnityEngine.CoreModule
@@ -1346,16 +1322,154 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: SELECTED_TAB_COLOUR
Data: _Round2Podiums
- Name: $v
Entry: 7
Data: 84|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: SELECTED_TAB_COLOUR
Data: _Round2Podiums
- Name: <UserType>k__BackingField
Entry: 7
Data: 85|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: PlayerPodiumRound2[], Assembly-CSharp
- 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: true
- Name: _fieldAttributes
Entry: 7
Data: 86|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
- Name:
Entry: 7
Data: 87|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: _Round3Manager
- Name: $v
Entry: 7
Data: 88|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _Round3Manager
- Name: <UserType>k__BackingField
Entry: 7
Data: 89|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: GameManagerRound3, Assembly-CSharp
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 4
- 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: 90|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 3
- Name:
Entry: 7
Data: 91|UnityEngine.SpaceAttribute, UnityEngine.CoreModule
- Name: height
Entry: 4
Data: 8
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 92|UnityEngine.HeaderAttribute, UnityEngine.CoreModule
- Name: header
Entry: 1
Data: Round 3
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 93|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: 94|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: SELECTED_TAB_COLOUR
- Name: <UserType>k__BackingField
Entry: 7
Data: 95|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: UnityEngine.Color, UnityEngine.CoreModule
@@ -1364,7 +1478,7 @@ MonoBehaviour:
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 85
Data: 95
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -1379,7 +1493,7 @@ MonoBehaviour:
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 86|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 96|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
@@ -43,12 +43,25 @@ public class HostPanelInterface : UdonSharpBehaviour
[Space]
[SerializeField] private CaseManager _CaseManager;
[SerializeField] private GameManagerRound1 _Round1Manager;
[SerializeField] private GameManagerRound2 _Round2Manager;
[SerializeField] private GameManagerRound3 _Round3Manager;
[SerializeField] private PlayerPodium[] _PlayerPodiums;
[SerializeField] private CameraSystem_Console _CameraConsole;
[Space]
[Header("Round 1")]
[SerializeField] private GameManagerRound1 _Round1Manager;
[SerializeField] private PlayerPodium[] _Round1Podiums;
[Space]
[Header("Round 2")]
[SerializeField] private GameManagerRound2 _Round2Manager;
[SerializeField] private PlayerPodiumRound2[] _Round2Podiums;
[Space]
[Header("Round 3")]
[SerializeField] private GameManagerRound3 _Round3Manager;
private readonly Color SELECTED_TAB_COLOUR = new Color(0.0f, 0.5f, 0.0f);
@@ -122,92 +135,80 @@ public class HostPanelInterface : UdonSharpBehaviour
public void Round1_Player1_ResetPodiumOwner()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[0],
NetworkEventTarget.All,
"ResetOwner");
_Round1Podiums[0].SendCustomNetworkEvent(NetworkEventTarget.Owner, "ResetOwner");
}
public void Round1_Player2_ResetPodiumOwner()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[1],
NetworkEventTarget.All,
"ResetOwner");
_Round1Podiums[1].SendCustomNetworkEvent(NetworkEventTarget.Owner, "ResetOwner");
}
public void Round1_Player3_ResetPodiumOwner()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[2],
NetworkEventTarget.All,
"ResetOwner");
_Round1Podiums[2].SendCustomNetworkEvent(NetworkEventTarget.Owner, "ResetOwner");
}
public void Round1_Player1_DecreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[0],
NetworkEventTarget.All,
"DecreaseScoreBy5");
_Round1Podiums[0].SendCustomNetworkEvent(NetworkEventTarget.Owner, "AdjustScore", -5);
}
public void Round1_Player2_DecreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[1],
NetworkEventTarget.All,
"DecreaseScoreBy5");
_Round1Podiums[1].SendCustomNetworkEvent(NetworkEventTarget.Owner, "AdjustScore", -5);
}
public void Round1_Player3_DecreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[2],
NetworkEventTarget.All,
"DecreaseScoreBy5");
_Round1Podiums[2].SendCustomNetworkEvent(NetworkEventTarget.Owner, "AdjustScore", -5);
}
public void Round1_Player1_IncreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[0],
NetworkEventTarget.All,
"IncreaseScoreBy5");
_Round1Podiums[0].SendCustomNetworkEvent(NetworkEventTarget.Owner, "AdjustScore", 5);
}
public void Round1_Player2_IncreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[1],
NetworkEventTarget.All,
"IncreaseScoreBy5");
_Round1Podiums[1].SendCustomNetworkEvent(NetworkEventTarget.Owner, "AdjustScore", 5);
}
public void Round1_Player3_IncreaseScoreBy5()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[2],
NetworkEventTarget.All,
"IncreaseScoreBy5");
_Round1Podiums[2].SendCustomNetworkEvent(NetworkEventTarget.Owner, "AdjustScore", 5);
}
public void Round1_Player1_ResetPodium()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[0],
NetworkEventTarget.All,
"ResetPodium");
_Round1Podiums[0].SendCustomNetworkEvent(NetworkEventTarget.Owner, "ResetPodium");
}
public void Round1_Player2_ResetPodium()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[1],
NetworkEventTarget.All,
"ResetPodium");
_Round1Podiums[1].SendCustomNetworkEvent(NetworkEventTarget.Owner, "ResetPodium");
}
public void Round1_Player3_ResetPodium()
{
NetworkCalling.SendCustomNetworkEvent(
(IUdonEventReceiver)_PlayerPodiums[2],
NetworkEventTarget.All,
"ResetPodium");
_Round1Podiums[2].SendCustomNetworkEvent(NetworkEventTarget.Owner, "ResetPodium");
}
public void Round2_Player1_ResetOwner()
{
Debug.Log("[HostPanelInterface] Resetting owner of Player 1 podium.");
_Round2Podiums[0].ResetOwner(true);
}
public void Round2_Player2_ResetOwner()
{
Debug.Log("[HostPanelInterface] Resetting owner of Player 2 podium.");
_Round2Podiums[1].ResetOwner(true);
}
public void Round2_Player1_ResetPodium()
{
Debug.Log("[HostPanelInterface] Resetting Player 1 podium.");
_Round2Podiums[0].ResetPodium(true);
}
public void Round2_Player2_ResetPodium()
{
Debug.Log("[HostPanelInterface] Resetting Player 2 podium.");
_Round2Podiums[1].ResetPodium(true);
}
public void Round3_RandomiseMap_Easy()
{
_Round3Manager.RerandomiseMap(false);
@@ -221,6 +222,7 @@ public class HostPanelInterface : UdonSharpBehaviour
_Round3Manager.EndTimerEarly();
}
public void RestartRound1()
{
_CaseManager.ContinueToRound1();
@@ -140,7 +140,7 @@ public class PlayerPodiumRound2 : UdonSharpBehaviour
public void ResetPodium(bool EnableOwnershipInteract = false)
{
SendCustomNetworkEvent(NetworkEventTarget.Owner, nameof(ResetPodium_NetworkCallable));
SendCustomNetworkEvent(NetworkEventTarget.Owner, nameof(ResetPodium_NetworkCallable), EnableOwnershipInteract);
}
[NetworkCallable]
public void ResetPodium_NetworkCallable(bool EnableOwnershipInteract)
@@ -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:
+70 -16
View File
@@ -44,19 +44,19 @@ MonoBehaviour:
Data:
- Name:
Entry: 12
Data: 4
Data: 5
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: _ViewTabletSpawn
Data: _ViewTabletHeadRoot
- Name: $v
Entry: 7
Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ViewTabletSpawn
Data: _ViewTabletHeadRoot
- Name: <UserType>k__BackingField
Entry: 7
Data: 3|System.RuntimeType, mscorlib
@@ -110,13 +110,13 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _ViewTabletHeadRoot
Data: _ViewTabletHeadOffset
- Name: $v
Entry: 7
Data: 6|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ViewTabletHeadRoot
Data: _ViewTabletHeadOffset
- Name: <UserType>k__BackingField
Entry: 9
Data: 3
@@ -164,13 +164,13 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _ViewTabletHeadOffset
Data: _ViewTablet
- Name: $v
Entry: 7
Data: 9|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ViewTabletHeadOffset
Data: _ViewTablet
- Name: <UserType>k__BackingField
Entry: 9
Data: 3
@@ -218,19 +218,25 @@ MonoBehaviour:
Data:
- Name: $k
Entry: 1
Data: _ViewTablet
Data: _FollowPlayerHead
- Name: $v
Entry: 7
Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _ViewTablet
Data: _FollowPlayerHead
- Name: <UserType>k__BackingField
Entry: 9
Data: 3
Entry: 7
Data: 13|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Boolean, mscorlib
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 3
Data: 13
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -242,19 +248,67 @@ MonoBehaviour:
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: true
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 13|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
Data: 14|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 1
Data: 0
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 7
Data: 14|UnityEngine.SerializeField, UnityEngine.CoreModule
Data:
- Name: $k
Entry: 1
Data: _PreviousHeadYRotation
- Name: $v
Entry: 7
Data: 15|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: _PreviousHeadYRotation
- Name: <UserType>k__BackingField
Entry: 7
Data: 16|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Single, mscorlib
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField
Entry: 9
Data: 16
- 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: 17|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
- Name:
Entry: 12
Data: 0
- Name:
Entry: 13
Data:
+50 -11
View File
@@ -7,28 +7,67 @@ using VRC.SDKBase;
[UdonBehaviourSyncMode(BehaviourSyncMode.None)]
public class ViewTabletSpawner : UdonSharpBehaviour
{
[SerializeField] private Transform _ViewTabletSpawn;
[SerializeField] private Transform _ViewTabletHeadRoot;
[SerializeField] private Transform _ViewTabletHeadOffset;
[SerializeField] private Transform _ViewTablet;
private bool _FollowPlayerHead = false;
private float _PreviousHeadYRotation = 0.0f;
public void SpawnAtPlayerHead(VRCPlayerApi Player)
void Update()
{
_ViewTabletHeadRoot.transform.SetPositionAndRotation(
Player.GetBonePosition(HumanBodyBones.Head),
Player.GetBoneRotation(HumanBodyBones.Head));
VRCPlayerApi LocalPlayer = Networking.LocalPlayer;
_PreviousHeadYRotation = LocalPlayer.GetBoneRotation(HumanBodyBones.Head).eulerAngles.y;
_ViewTablet.transform.localPosition = Vector3.zero;
_ViewTablet.transform.localRotation = Quaternion.identity;
if (_FollowPlayerHead)
{
_ViewTabletHeadRoot.position = LocalPlayer.GetBonePosition(HumanBodyBones.Head);
}
else
{
_ViewTabletHeadRoot.localPosition = Vector3.zero;
}
}
public override void OnPlayerRespawn(VRCPlayerApi Player)
{
if (Player.isLocal)
{
Vector3 HeadRotation = Networking.LocalPlayer.GetBoneRotation(HumanBodyBones.Head).eulerAngles;
HeadRotation.x = HeadRotation.z = 0.0f;
Debug.Log("[ViewTabletSpawner] Old rotation: " + _PreviousHeadYRotation);
Debug.Log("[ViewTabletSpawner] New rotation: " + HeadRotation.y);
Debug.Log("[ViewTabletSpawner] Delta: " + (HeadRotation.y - _PreviousHeadYRotation));
HeadRotation.y = _ViewTabletHeadRoot.rotation.y + (HeadRotation.y - _PreviousHeadYRotation);
_ViewTabletHeadRoot.rotation = Quaternion.Euler(HeadRotation);
}
base.OnPlayerRespawn(Player);
}
public void SpawnAtLocalPlayerHead()
{
_ResetTabletPosition();
Vector3 HeadRotation = Networking.LocalPlayer.GetBoneRotation(HumanBodyBones.Head).eulerAngles;
HeadRotation.x = HeadRotation.z = 0.0f;
_ViewTabletHeadRoot.rotation = Quaternion.Euler(HeadRotation);
_FollowPlayerHead = true;
}
public void Despawn()
{
_ViewTabletHeadRoot.transform.localPosition = Vector3.zero;
_ViewTabletHeadRoot.transform.localRotation = Quaternion.identity;
_ResetTabletPosition();
_FollowPlayerHead = false;
}
_ViewTablet.transform.localPosition = Vector3.zero;
_ViewTablet.transform.localRotation = Quaternion.identity;
private void _ResetTabletPosition()
{
_ViewTablet.localPosition = Vector3.zero;
_ViewTablet.localRotation = Quaternion.identity;
}
}