Debug timing

This commit is contained in:
raccoon
2025-10-09 08:53:29 +05:00
parent 7c960abcee
commit b1086bce84

View File

@@ -1,4 +1,5 @@
using UdonSharp; using System;
using UdonSharp;
using UnityEngine; using UnityEngine;
using VRC.SDKBase; using VRC.SDKBase;
@@ -23,34 +24,33 @@ public class TriggerDoor : UdonSharpBehaviour
public override void OnPlayerTriggerEnter(VRCPlayerApi player) public override void OnPlayerTriggerEnter(VRCPlayerApi player)
{ {
var start = Time.realtimeSinceStartup;
if (player.IsValid()) if (player.IsValid())
{ {
player.SetPlayerTag(_tagName, MagicWord); player.SetPlayerTag(_tagName, MagicWord);
} }
SetDoorState(true); SetDoorState(true);
_counter++; SetCounter(_counter + 1);
Debug.Log($"OnPlayerTriggerEnter: {Time.realtimeSinceStartup - start}s");
} }
public override void OnPlayerTriggerExit(VRCPlayerApi player) public override void OnPlayerTriggerExit(VRCPlayerApi player)
{ {
var start = Time.realtimeSinceStartup;
if (player.IsValid()) if (player.IsValid())
{ {
player.SetPlayerTag(_tagName); player.SetPlayerTag(_tagName);
} }
SetDoorState(SetCounter(_counter - 1) > 0);
if (_counter - 1 <= 0)
{ Debug.Log($"OnPlayerTriggerExit: {Time.realtimeSinceStartup - start}s");
SetDoorState(false);
_counter = 0;
}
else
{
_counter--;
}
} }
/// <summary> /// <summary>
/// A fucking workaround for a fucking OnPlayerTriggerExit() event not firing on player exiting a game /// A fucking workaround for a fucking OnPlayerTriggerExit() event not firing on player exiting a game,
/// while inside a trigger volume /// while inside a trigger volume
/// </summary> /// </summary>
public override void OnPlayerLeft(VRCPlayerApi player) public override void OnPlayerLeft(VRCPlayerApi player)
@@ -67,6 +67,17 @@ public class TriggerDoor : UdonSharpBehaviour
SetAnimatorValue(isOpen); SetAnimatorValue(isOpen);
} }
private byte SetCounter(int value)
{
if (value < 0)
_counter = 0;
else if (value > 255)
_counter = 255;
else
_counter = (byte)value;
return _counter;
}
private void SetDoorState(bool open) private void SetDoorState(bool open)
{ {
if (open == isOpen) if (open == isOpen)