generated from raccoon/vrchat-project-template
Fucking finally
This commit is contained in:
@@ -19,7 +19,7 @@ MonoBehaviour:
|
||||
sourceCsScript: {fileID: 11500000, guid: 4c9f1e7caf7ec574d9a69f347f31d440, type: 3}
|
||||
scriptVersion: 2
|
||||
compiledVersion: 2
|
||||
behaviourSyncMode: 0
|
||||
behaviourSyncMode: 4
|
||||
hasInteractEvent: 0
|
||||
scriptID: -3302444108559197070
|
||||
serializationData:
|
||||
@@ -359,19 +359,19 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: _counter
|
||||
Data: _tagName
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 21|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: _counter
|
||||
Data: _tagName
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 7
|
||||
Data: 22|System.RuntimeType, mscorlib
|
||||
- Name:
|
||||
Entry: 1
|
||||
Data: System.Byte, mscorlib
|
||||
Data: System.String, mscorlib
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
@@ -419,19 +419,19 @@ MonoBehaviour:
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: _tagName
|
||||
Data: _counter
|
||||
- Name: $v
|
||||
Entry: 7
|
||||
Data: 25|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
|
||||
- Name: <Name>k__BackingField
|
||||
Entry: 1
|
||||
Data: _tagName
|
||||
Data: _counter
|
||||
- Name: <UserType>k__BackingField
|
||||
Entry: 7
|
||||
Data: 26|System.RuntimeType, mscorlib
|
||||
- Name:
|
||||
Entry: 1
|
||||
Data: System.String, mscorlib
|
||||
Data: System.Int32, mscorlib
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
@@ -455,13 +455,19 @@ MonoBehaviour:
|
||||
Data: 27|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 1
|
||||
Data: 2
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data: 28|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data: 29|UdonSharp.FieldChangeCallbackAttribute, UdonSharp.Runtime
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 13
|
||||
Data:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
using System;
|
||||
using UdonSharp;
|
||||
using UdonSharp;
|
||||
using UnityEngine;
|
||||
using VRC.SDKBase;
|
||||
|
||||
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
|
||||
public class TriggerDoor : UdonSharpBehaviour
|
||||
{
|
||||
private const string MagicWord = "fuck";
|
||||
@@ -15,38 +15,54 @@ public class TriggerDoor : UdonSharpBehaviour
|
||||
[Tooltip("Sound when closing")]
|
||||
public AudioClip closingSound;
|
||||
[Tooltip("Start state of the \"Door\" (parameter \'isOpen\' in controller)")]
|
||||
public bool isOpen = false;
|
||||
public bool isOpen;
|
||||
|
||||
[UdonSynced]
|
||||
private byte _counter = 0;
|
||||
[UdonSynced]
|
||||
private string _tagName;
|
||||
[UdonSynced, FieldChangeCallback(nameof(Counter))]
|
||||
private int _counter;
|
||||
|
||||
public int Counter
|
||||
{
|
||||
set
|
||||
{
|
||||
if (value <= 0)
|
||||
{
|
||||
_counter = 0;
|
||||
SetDoorState(false);
|
||||
}
|
||||
else if (value > 255)
|
||||
{
|
||||
_counter = 255;
|
||||
SetDoorState(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
_counter = value;
|
||||
SetDoorState(true);
|
||||
}
|
||||
}
|
||||
get => _counter;
|
||||
}
|
||||
|
||||
public override void OnPlayerTriggerEnter(VRCPlayerApi player)
|
||||
{
|
||||
var start = Time.realtimeSinceStartup;
|
||||
|
||||
if (player.IsValid())
|
||||
{
|
||||
player.SetPlayerTag(_tagName, MagicWord);
|
||||
}
|
||||
SetDoorState(true);
|
||||
SetCounter(_counter + 1);
|
||||
|
||||
Debug.Log($"OnPlayerTriggerEnter: {Time.realtimeSinceStartup - start}s");
|
||||
Counter++;
|
||||
}
|
||||
|
||||
public override void OnPlayerTriggerExit(VRCPlayerApi player)
|
||||
{
|
||||
var start = Time.realtimeSinceStartup;
|
||||
|
||||
if (player.IsValid())
|
||||
{
|
||||
player.SetPlayerTag(_tagName);
|
||||
}
|
||||
SetDoorState(SetCounter(_counter - 1) > 0);
|
||||
|
||||
Debug.Log($"OnPlayerTriggerExit: {Time.realtimeSinceStartup - start}s");
|
||||
|
||||
Counter--;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -67,17 +83,6 @@ public class TriggerDoor : UdonSharpBehaviour
|
||||
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)
|
||||
{
|
||||
if (open == isOpen)
|
||||
|
||||
@@ -49,12 +49,12 @@ AudioSource:
|
||||
m_Pitch: 1
|
||||
Loop: 0
|
||||
Mute: 0
|
||||
Spatialize: 0
|
||||
Spatialize: 1
|
||||
SpatializePostEffects: 0
|
||||
Priority: 128
|
||||
DopplerLevel: 1
|
||||
MinDistance: 1
|
||||
MaxDistance: 500
|
||||
MinDistance: 0.5
|
||||
MaxDistance: 5
|
||||
Pan2D: 0
|
||||
rolloffMode: 0
|
||||
BypassEffects: 0
|
||||
@@ -145,7 +145,7 @@ MonoBehaviour:
|
||||
Far: 80
|
||||
Near: 0
|
||||
VolumetricRadius: 0
|
||||
EnableSpatialization: 0
|
||||
EnableSpatialization: 1
|
||||
UseAudioSourceVolumeCurve: 0
|
||||
--- !u!1 &6742685524490459691
|
||||
GameObject:
|
||||
@@ -273,7 +273,7 @@ BoxCollider:
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 3.2, y: 3.2, z: 4.8}
|
||||
m_Size: {x: 3.2, y: 3.2, z: 3.2}
|
||||
m_Center: {x: 0, y: 1.6, z: 0}
|
||||
--- !u!114 &6807330494230581692
|
||||
MonoBehaviour:
|
||||
@@ -302,7 +302,6 @@ MonoBehaviour:
|
||||
openSound: {fileID: 8300000, guid: c439a2bf0f3382744a7e9b4c3f470c33, type: 3}
|
||||
closingSound: {fileID: 8300000, guid: edb4f35d07a1ddf468eab91c515297c1, type: 3}
|
||||
isOpen: 0
|
||||
counter: 0
|
||||
--- !u!114 &300584612255345046
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
Reference in New Issue
Block a user