From ed47756f6f880f8254417836f5d383bc2467b733 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 01:38:03 +0900 Subject: [PATCH 01/31] =?UTF-8?q?=E4=BA=8B=E5=89=8D=E5=90=8C=E6=9C=9F?= =?UTF-8?q?=E5=BC=8F=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ColorEncoder16.cs | 16 +- ColorEncoder8.cs | 14 + ColorEncoderBase.cs | 2 + Editor/SyncTextureEditor.cs | 234 +- .../RequestSyncTexture.asset | 28 +- .../RequestSyncTexture.asset.meta | 2 +- Samples/RequestSyncTexture.cs | 25 + .../RequestSyncTexture.cs.meta | 2 +- Samples/SyncTexture.Samples.asmdef | 8 +- Samples/SyncTextureSamples.unity | 5466 ++++++++++++++--- SyncTexture.cs | 151 +- SyncTexture2D.cs | 19 +- SyncTexture2D16.asset | 614 +- SyncTexture2D16.cs | 162 +- SyncTexture2D8.asset | 614 +- SyncTexture2D8.cs | 77 +- SyncTexture2DTyped.cs | 105 + SyncTexture2DTyped.cs.meta | 11 + SyncTextureBase.cs | 19 +- SyncTextureData.cs | 14 + SyncTextureData.cs.meta | 11 + SyncTextureData16.asset | 185 + SyncTextureData16.asset.meta | 8 + SyncTextureData16.cs | 34 + SyncTextureData16.cs.meta | 11 + SyncTextureData8.asset | 185 + SyncTextureData8.asset.meta | 8 + SyncTextureData8.cs | 36 + SyncTextureData8.cs.meta | 11 + SyncTextureManager.asset | 68 +- SyncTextureManager.cs | 103 +- SyncTexturesOnLateJoin.cs | 36 - 32 files changed, 6905 insertions(+), 1374 deletions(-) rename SyncTexturesOnLateJoin.asset => Samples/RequestSyncTexture.asset (90%) rename SyncTexturesOnLateJoin.asset.meta => Samples/RequestSyncTexture.asset.meta (79%) create mode 100644 Samples/RequestSyncTexture.cs rename SyncTexturesOnLateJoin.cs.meta => Samples/RequestSyncTexture.cs.meta (83%) create mode 100644 SyncTexture2DTyped.cs create mode 100644 SyncTexture2DTyped.cs.meta create mode 100644 SyncTextureData.cs create mode 100644 SyncTextureData.cs.meta create mode 100644 SyncTextureData16.asset create mode 100644 SyncTextureData16.asset.meta create mode 100644 SyncTextureData16.cs create mode 100644 SyncTextureData16.cs.meta create mode 100644 SyncTextureData8.asset create mode 100644 SyncTextureData8.asset.meta create mode 100644 SyncTextureData8.cs create mode 100644 SyncTextureData8.cs.meta delete mode 100644 SyncTexturesOnLateJoin.cs diff --git a/ColorEncoder16.cs b/ColorEncoder16.cs index 938bb86..f177a46 100644 --- a/ColorEncoder16.cs +++ b/ColorEncoder16.cs @@ -1,6 +1,20 @@ -namespace net.narazaka.vrchat.sync_texture +using UnityEngine; + +namespace net.narazaka.vrchat.sync_texture { public abstract class ColorEncoder16 : ColorEncoderBase { + public override ushort[] Pack(Color32[] colors, int startColorIndex, int pixelLength) + { + var data = new ushort[pixelLength * PackUnitLength]; + Pack(colors, startColorIndex, data, 0, pixelLength); + return data; + } + + public override Color[] Unpack(ushort[] data, int startPixelIndex, int pixelLength) + { + var colors = new Color[pixelLength]; + return Unpack(data, startPixelIndex, colors, 0, pixelLength); + } } } diff --git a/ColorEncoder8.cs b/ColorEncoder8.cs index ad0fbc5..2c9fe4b 100644 --- a/ColorEncoder8.cs +++ b/ColorEncoder8.cs @@ -1,6 +1,20 @@ +using UnityEngine; + namespace net.narazaka.vrchat.sync_texture { public abstract class ColorEncoder8 : ColorEncoderBase { + public override byte[] Pack(Color32[] colors, int startColorIndex, int pixelLength) + { + var data = new byte[pixelLength * PackUnitLength]; + Pack(colors, startColorIndex, data, 0, pixelLength); + return data; + } + + public override Color[] Unpack(byte[] data, int startPixelIndex, int pixelLength) + { + var colors = new Color[pixelLength]; + return Unpack(data, startPixelIndex, colors, 0, pixelLength); + } } } diff --git a/ColorEncoderBase.cs b/ColorEncoderBase.cs index cc39191..c19660e 100644 --- a/ColorEncoderBase.cs +++ b/ColorEncoderBase.cs @@ -12,9 +12,11 @@ public abstract class ColorEncoderBase : UdonSharpBehaviour where T : struct public abstract int PackUnitLength { get; } public abstract T[] Pack(Color32[] colors); + public abstract T[] Pack(Color32[] colors, int startColorIndex, int pixelLength); public abstract void Pack(Color32[] colors, int startColorIndex, T[] data, int startPixelIndex, int pixelLength); public abstract Color[] Unpack(T[] data); + public abstract Color[] Unpack(T[] data, int startPixelIndex, int pixelLength); public abstract Color[] Unpack(T[] data, int startPixelIndex, Color[] colors, int startColorIndex, int pixelLength); } diff --git a/Editor/SyncTextureEditor.cs b/Editor/SyncTextureEditor.cs index 5eb9585..e4aa79d 100644 --- a/Editor/SyncTextureEditor.cs +++ b/Editor/SyncTextureEditor.cs @@ -39,31 +39,33 @@ public class SyncTextureEditor : Editor TextureFormat.RGHalf, TextureFormat.RHalf, }; + SerializedProperty ReceiveEnabled; SerializedProperty Source; SerializedProperty Target; SerializedProperty ColorEncoder; SerializedProperty GetPixelsBulkCount; - SerializedProperty BulkCount; + SerializedProperty BulkLineCount; + SerializedProperty BulkRateOfNetworkSpec; SerializedProperty SyncInterval; - SerializedProperty ShowProgress; SerializedProperty CallbackListeners; SerializedProperty PrepareCallbackAsync; - SerializedProperty SyncEnabled; + SerializedProperty DataList; bool ShowColorEncoders; bool ShowCalllbackHelp; void OnEnable() { + ReceiveEnabled = serializedObject.FindProperty("ReceiveEnabled"); Source = serializedObject.FindProperty("Source"); Target = serializedObject.FindProperty("Target"); ColorEncoder = serializedObject.FindProperty("ColorEncoder"); GetPixelsBulkCount = serializedObject.FindProperty("GetPixelsBulkCount"); - BulkCount = serializedObject.FindProperty("BulkCount"); + BulkLineCount = serializedObject.FindProperty("BulkLineCount"); + BulkRateOfNetworkSpec = serializedObject.FindProperty("BulkRateOfNetworkSpec"); SyncInterval = serializedObject.FindProperty("SyncInterval"); - ShowProgress = serializedObject.FindProperty("ShowProgress"); CallbackListeners = serializedObject.FindProperty("CallbackListeners"); PrepareCallbackAsync = serializedObject.FindProperty("PrepareCallbackAsync"); - SyncEnabled = serializedObject.FindProperty("SyncEnabled"); + DataList = serializedObject.FindProperty("DataList"); } public override void OnInspectorGUI() @@ -71,6 +73,7 @@ public override void OnInspectorGUI() if (UdonSharpGUI.DrawDefaultUdonSharpBehaviourHeader(target)) return; serializedObject.Update(); + EditorGUILayout.PropertyField(ReceiveEnabled); EditorGUILayout.PropertyField(Source); EditorGUILayout.PropertyField(Target); if (Source.objectReferenceValue == null || Target.objectReferenceValue == null) @@ -141,54 +144,57 @@ public override void OnInspectorGUI() EditorGUILayout.PropertyField(GetPixelsBulkCount); EditorGUILayout.HelpBox("GetPixelsBulkCount affects sender performance", MessageType.Info); } - EditorGUILayout.PropertyField(BulkCount); - if (ColorEncoder.objectReferenceValue != null) + var rect = EditorGUILayout.GetControlRect(GUILayout.Height(EditorGUIUtility.singleLineHeight * 2 + EditorGUIUtility.standardVerticalSpacing)); + using (new EditorGUI.PropertyScope(rect, GUIContent.none, BulkLineCount)) { - var colorEncoder = ColorEncoder.objectReferenceValue; - int packUnitLength = 1; - int bytes = 0; - switch (colorEncoder) + rect.height = EditorGUIUtility.singleLineHeight; + using (var check = new EditorGUI.ChangeCheckScope()) { - case ColorEncoder8 c: - packUnitLength = c.PackUnitLength; - bytes = 1; - break; - case ColorEncoder16 c: - packUnitLength = c.PackUnitLength; - bytes = 2; - break; - } - - if (BulkCount.intValue % packUnitLength != 0) - { - EditorGUILayout.HelpBox($"BulkCount must be multiple of {packUnitLength}", MessageType.Error); - } - var SyncBytesPerSecond = BulkCount.intValue * bytes / SyncInterval.floatValue; - var specRate = SyncBytesPerSecond / (11f * 1024); - EditorGUILayout.HelpBox($"sync {SyncBytesPerSecond} bytes/sec : {specRate * 100} % of network spec", MessageType.Info); - if (Source.objectReferenceValue != null) - { - var sourceTexture = (Texture)Source.objectReferenceValue; - var pixelCount = sourceTexture.width * sourceTexture.height; - var bulkPixelCount = BulkCount.intValue / packUnitLength; - var seconds = SyncInterval.floatValue * pixelCount / bulkPixelCount; - EditorGUILayout.HelpBox($"total sync time will be {seconds} seconds", MessageType.Info); + var bulkLineCount = EditorGUI.ToggleLeft(rect, "Calc BulkLineCount by network spec per second", BulkLineCount.intValue == 0); + if (check.changed) + { + BulkLineCount.intValue = bulkLineCount ? 0 : 10; + } } - if (specRate > 0.7f) + rect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + using (var check = new EditorGUI.ChangeCheckScope()) { - EditorGUILayout.HelpBox("sync size is too big! reduce BulkCount or increase SyncInterval", MessageType.Warning); + var bulkLineCount = EditorGUI.ToggleLeft(rect, "Calc BulkLineCount by network spec per serialization", BulkLineCount.intValue == -1); + if (check.changed) + { + BulkLineCount.intValue = bulkLineCount ? -1 : 10; + } } } - if (BulkCount.intValue < 1) + if (BulkLineCount.intValue == 0 || BulkLineCount.intValue == -1) { - EditorGUILayout.HelpBox("BulkCount must be positive", MessageType.Error); + EditorGUILayout.PropertyField(BulkRateOfNetworkSpec); + } + else + { + EditorGUILayout.PropertyField(BulkLineCount); + } + var stat = GetSyncTextureTypeStat(serializedObject, Source: Source, ColorEncoder: ColorEncoder, BulkLineCount: BulkLineCount, BulkRateOfNetworkSpec: BulkRateOfNetworkSpec); + if (stat != null) + { + EditorGUILayout.HelpBox($"{stat.ChunkCount} steps : {stat.BulkByteCount} bytes/step.", MessageType.Info); + EditorGUILayout.HelpBox($"{stat.DataLimitRatePerSecond * 100} % of network spec per second", stat.DataLimitRatePerSecond < 1 ? MessageType.Info : MessageType.Warning); + EditorGUILayout.HelpBox($"{stat.DataLimitRatePerSerialization * 100} % of network spec per serialization", stat.DataLimitRatePerSerialization < 1 ? MessageType.Info : MessageType.Error); + } + if (BulkLineCount.intValue < -1) + { + EditorGUILayout.HelpBox("BulkCount must be 0, -1 or a positive integer", MessageType.Error); } EditorGUILayout.PropertyField(SyncInterval); if (SyncInterval.floatValue < 0f) { EditorGUILayout.HelpBox("SyncInterval must be positive", MessageType.Error); } - EditorGUILayout.PropertyField(ShowProgress); + EditorGUILayout.PropertyField(DataList, true); + if (stat.ChunkCount > 0) + { + SetDataList(DataList, stat.ChunkCount); + } EditorGUILayout.PropertyField(CallbackListeners); EditorGUILayout.PropertyField(PrepareCallbackAsync); ShowCalllbackHelp = EditorGUILayout.Foldout(ShowCalllbackHelp, "Callback Help"); @@ -212,12 +218,150 @@ public override void OnInspectorGUI() EditorGUILayout.TextField(nameof(SyncTexture.OnPrepared)); } } - EditorGUILayout.PropertyField(SyncEnabled); - if (!SyncEnabled.boolValue) + serializedObject.ApplyModifiedProperties(); + } + + public static void SetDataList(SerializedProperty DataList, int chunkCount) + { + var syncTexture2D = DataList.serializedObject.targetObject as SyncTexture2D; + var type = syncTexture2D.UnitByteLength switch { - EditorGUILayout.HelpBox("SyncEnabled is false. Set true at runtime.", MessageType.Warning); + 1 => typeof(SyncTextureData8), + 2 => typeof(SyncTextureData16), + _ => null, + }; + + var count = 0; + var len = DataList.arraySize; + var uniq = new HashSet(); + for (var i = len - 1; i >= 0; i--) + { + var element = DataList.GetArrayElementAtIndex(i); + if (element.objectReferenceValue == null) + { + DataList.DeleteArrayElementAtIndex(i); + continue; + } + var data = element.objectReferenceValue as SyncTextureData; + if (data.GetType() != type) + { + Undo.DestroyObjectImmediate(data.gameObject); + DataList.DeleteArrayElementAtIndex(i); + continue; + } + if (data.transform.parent != syncTexture2D.transform) + { + Undo.RecordObject(data.transform, "Reparent SyncTextureData"); + data.transform.SetParent(syncTexture2D.transform, false); + } + if (!uniq.Add(data)) + { + DataList.DeleteArrayElementAtIndex(i); + continue; + } + count++; } - serializedObject.ApplyModifiedProperties(); + if (count < chunkCount) + { + for (var i = count; i < chunkCount; i++) + { + DataList.InsertArrayElementAtIndex(i); + var dataGo = new GameObject($"SyncTextureData{i}"); + dataGo.transform.SetParent(syncTexture2D.transform, false); + var data = dataGo.AddComponent(type) as SyncTextureData; + Undo.RegisterCreatedObjectUndo(dataGo, "Create SyncTextureData"); + DataList.GetArrayElementAtIndex(i).objectReferenceValue = data; + } + } + else if (count > chunkCount) + { + for (var i = count - 1; i >= chunkCount; i--) + { + var element = DataList.GetArrayElementAtIndex(i); + Undo.DestroyObjectImmediate((element.objectReferenceValue as SyncTextureData).gameObject); + DataList.DeleteArrayElementAtIndex(i); + } + } + len = DataList.arraySize; + var allDataList = new List(); + for (var i = 0; i < len; ++i) + { + var element = DataList.GetArrayElementAtIndex(i).objectReferenceValue as SyncTextureData; + var index = element.transform.GetSiblingIndex(); + if (index != i) + { + Undo.RecordObject(element.transform, "Reorder SyncTextureData"); + element.transform.SetSiblingIndex(i); + } + var data = new SerializedObject(element); + data.Update(); + data.FindProperty("SyncTexture2D").objectReferenceValue = syncTexture2D; + data.ApplyModifiedProperties(); + allDataList.Add(element); + } + var toDestroies = new List(); + foreach (Transform child in syncTexture2D.transform) + { + var data = child.GetComponent(); + if (data == null) continue; + if (!allDataList.Contains(data)) + { + toDestroies.Add(data); + } + } + foreach (var data in toDestroies) + { + Undo.DestroyObjectImmediate(data.gameObject); + } + } + + public class SyncTextureTypeStat + { + public int UnitByteLength; + public int PackUnitLength; + public int EffectiveBulkLineCount; + public int BulkPixelCount; + public int BulkUnitCount; + public int BulkByteCount; + public float DataLimitRatePerSerialization; + public float DataLimitRatePerSecond; + public int ChunkCount; + } + + public static SyncTextureTypeStat GetSyncTextureTypeStat(SerializedObject serializedObject, SerializedProperty Source = null, SerializedProperty ColorEncoder = null, SerializedProperty BulkLineCount = null, SerializedProperty BulkRateOfNetworkSpec = null) + { + if (Source == null) Source = serializedObject.FindProperty("Source"); + if (ColorEncoder == null) ColorEncoder = serializedObject.FindProperty("ColorEncoder"); + if (BulkLineCount == null) BulkLineCount = serializedObject.FindProperty("BulkLineCount"); + if (BulkRateOfNetworkSpec == null) BulkRateOfNetworkSpec = serializedObject.FindProperty("BulkRateOfNetworkSpec"); + + var stat = new SyncTextureTypeStat(); + if (ColorEncoder.objectReferenceValue == null || Source.objectReferenceValue == null) + { + return stat; + } + var colorEncoder = ColorEncoder.objectReferenceValue; + switch (colorEncoder) + { + case ColorEncoder8 c: + stat.PackUnitLength = c.PackUnitLength; + stat.UnitByteLength = 1; + break; + case ColorEncoder16 c: + stat.PackUnitLength = c.PackUnitLength; + stat.UnitByteLength = 2; + break; + } + var sourceTexture = (Texture)Source.objectReferenceValue; + var width = sourceTexture.width; + stat.EffectiveBulkLineCount = SyncTexture.GetEffectiveBulkLineCount(BulkLineCount.intValue, BulkRateOfNetworkSpec.floatValue, width, stat.UnitByteLength, stat.PackUnitLength); + stat.BulkPixelCount = stat.EffectiveBulkLineCount * width; + stat.BulkUnitCount = stat.BulkPixelCount * stat.PackUnitLength; + stat.BulkByteCount = stat.BulkUnitCount * stat.UnitByteLength; + stat.DataLimitRatePerSerialization = (float)stat.BulkByteCount / SyncTexture.MaxBulkBytesPerSerialization; + stat.DataLimitRatePerSecond = (float)stat.BulkByteCount / SyncTexture.MaxBulkBytesPerSecond; + stat.ChunkCount = Mathf.CeilToInt((float)sourceTexture.height / stat.EffectiveBulkLineCount); + return stat; } void CheckTexture2DReadable(SerializedProperty property) diff --git a/SyncTexturesOnLateJoin.asset b/Samples/RequestSyncTexture.asset similarity index 90% rename from SyncTexturesOnLateJoin.asset rename to Samples/RequestSyncTexture.asset index 49d299f..6de43e8 100644 --- a/SyncTexturesOnLateJoin.asset +++ b/Samples/RequestSyncTexture.asset @@ -10,18 +10,18 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} - m_Name: SyncTexturesOnLateJoin + m_Name: RequestSyncTexture m_EditorClassIdentifier: - serializedUdonProgramAsset: {fileID: 11400000, guid: a569f3f0d2dbe8040b35e9bbee881078, + serializedUdonProgramAsset: {fileID: 11400000, guid: affead9b684adb64ebff9b4b7ce384a3, type: 2} udonAssembly: assemblyError: - sourceCsScript: {fileID: 11500000, guid: 207df2a8019c9234d99a50caace66be1, type: 3} + sourceCsScript: {fileID: 11500000, guid: d777506b830ecdf4bb7e0ca3bbbabcbf, type: 3} scriptVersion: 2 compiledVersion: 2 behaviourSyncMode: 1 - hasInteractEvent: 0 - scriptID: 8100210175251213104 + hasInteractEvent: 1 + scriptID: -9113643327544977197 serializationData: SerializedFormat: 2 SerializedBytes: @@ -50,13 +50,13 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: SyncTextureManager + Data: syncTextureManager - Name: $v Entry: 7 Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: SyncTextureManager + Data: syncTextureManager - Name: k__BackingField Entry: 7 Data: 3|System.RuntimeType, mscorlib @@ -116,25 +116,25 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: ForceSyncOnStart + Data: syncTexture - Name: $v Entry: 7 Data: 7|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: ForceSyncOnStart + Data: syncTexture - Name: k__BackingField Entry: 7 Data: 8|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: System.Boolean, mscorlib + Data: net.narazaka.vrchat.sync_texture.SyncTexture, SyncTexture - Name: Entry: 8 Data: - Name: k__BackingField Entry: 9 - Data: 8 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -176,19 +176,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: Delay + Data: resendWhenExistsAndNowSending - Name: $v Entry: 7 Data: 11|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: Delay + Data: resendWhenExistsAndNowSending - Name: k__BackingField Entry: 7 Data: 12|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: System.Single, mscorlib + Data: System.Boolean, mscorlib - Name: Entry: 8 Data: diff --git a/SyncTexturesOnLateJoin.asset.meta b/Samples/RequestSyncTexture.asset.meta similarity index 79% rename from SyncTexturesOnLateJoin.asset.meta rename to Samples/RequestSyncTexture.asset.meta index 667c600..b3c013a 100644 --- a/SyncTexturesOnLateJoin.asset.meta +++ b/Samples/RequestSyncTexture.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 24d6b7e14c438bc40b18fb76e476c430 +guid: 64d328ee1ddc3dc429b432dcd67aee4d NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Samples/RequestSyncTexture.cs b/Samples/RequestSyncTexture.cs new file mode 100644 index 0000000..df94d59 --- /dev/null +++ b/Samples/RequestSyncTexture.cs @@ -0,0 +1,25 @@ +using UdonSharp; +using UnityEngine; +using VRC.SDKBase; +using VRC.Udon; + +namespace net.narazaka.vrchat.sync_texture.samples +{ + [UdonBehaviourSyncMode(BehaviourSyncMode.None)] + public class RequestSyncTexture : UdonSharpBehaviour + { + [SerializeField] SyncTextureManager syncTextureManager; + [SerializeField] SyncTexture syncTexture; + [SerializeField] bool resendWhenExistsAndNowSending = true; + + public override void Interact() + { + Send(); + } + + public void Send() + { + syncTextureManager.RequestSyncTexture(syncTexture, resendWhenExistsAndNowSending); + } + } +} diff --git a/SyncTexturesOnLateJoin.cs.meta b/Samples/RequestSyncTexture.cs.meta similarity index 83% rename from SyncTexturesOnLateJoin.cs.meta rename to Samples/RequestSyncTexture.cs.meta index 0af0073..29d0a9f 100644 --- a/SyncTexturesOnLateJoin.cs.meta +++ b/Samples/RequestSyncTexture.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 207df2a8019c9234d99a50caace66be1 +guid: d777506b830ecdf4bb7e0ca3bbbabcbf MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Samples/SyncTexture.Samples.asmdef b/Samples/SyncTexture.Samples.asmdef index b3ae21f..37f13c1 100644 --- a/Samples/SyncTexture.Samples.asmdef +++ b/Samples/SyncTexture.Samples.asmdef @@ -1,9 +1,11 @@ { "name": "SyncTexture.Samples", + "rootNamespace": "", "references": [ - "GUID:3c1bc1267eab5884ebe7f232c09ee0d9", - "GUID:f70a94b0bedfa8ec50ed757f72032810", - "GUID:99835874ee819da44948776e0df4ff1d" + "VRC.Udon", + "VRC.Udon.Serialization.OdinSerializer", + "UdonSharp.Runtime", + "SyncTexture" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Samples/SyncTextureSamples.unity b/Samples/SyncTextureSamples.unity index 3502e5f..dc113a3 100644 --- a/Samples/SyncTextureSamples.unity +++ b/Samples/SyncTextureSamples.unity @@ -43,7 +43,7 @@ RenderSettings: --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 11 + serializedVersion: 12 m_GIWorkflowMode: 1 m_GISettings: serializedVersion: 2 @@ -98,13 +98,13 @@ LightmapSettings: m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} - m_UseShadowmask: 1 + m_LightingSettings: {fileID: 0} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 m_ObjectHideFlags: 0 m_BuildSettings: - serializedVersion: 2 + serializedVersion: 3 agentTypeID: 0 agentRadius: 0.5 agentHeight: 2 @@ -117,10 +117,258 @@ NavMeshSettings: cellSize: 0.16666667 manualTileSize: 0 tileSize: 256 - accuratePlacement: 0 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &16793033 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 16793034} + - component: {fileID: 16793036} + - component: {fileID: 16793035} + m_Layer: 0 + m_Name: SyncTextureData11 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &16793034 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 16793033} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2021254493} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &16793035 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 16793033} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: e14ad8bbbe317f74e8b050f0bbabd55a, + type: 2} + programSource: {fileID: 11400000, guid: e04f11ced1e2b264b8544cc31e39e589, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &16793036 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 16793033} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f6f16f5f2033874bb6b117cc9d093a3, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 16793035} + SyncTexture2D: {fileID: 2021254492} +--- !u!1 &34157019 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 34157020} + - component: {fileID: 34157022} + - component: {fileID: 34157021} + m_Layer: 0 + m_Name: SyncTextureData6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &34157020 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 34157019} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &34157021 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 34157019} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &34157022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 34157019} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 34157021} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &44284414 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 44284415} + - component: {fileID: 44284417} + - component: {fileID: 44284416} + m_Layer: 0 + m_Name: SyncTextureData27 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &44284415 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 44284414} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &44284416 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 44284414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &44284417 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 44284414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 44284416} + SyncTexture2D: {fileID: 311265199} --- !u!1 &129545387 GameObject: m_ObjectHideFlags: 0 @@ -194,12 +442,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 129545387} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0.79528683, y: 1.214683, z: 0.24117988} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 16 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &146355948 GameObject: @@ -228,9 +477,17 @@ MeshCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 146355948} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 4 + serializedVersion: 5 m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} @@ -245,10 +502,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -273,6 +532,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &146355951 MeshFilter: m_ObjectHideFlags: 0 @@ -288,14 +548,15 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 146355948} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &311265198 +--- !u!1 &204513199 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -303,26 +564,41 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 311265201} - - component: {fileID: 311265199} - - component: {fileID: 311265200} + - component: {fileID: 204513200} + - component: {fileID: 204513201} + - component: {fileID: 204513202} m_Layer: 0 - m_Name: SyncTexture + m_Name: SyncTextureData3 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &311265199 +--- !u!4 &204513200 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 204513199} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &204513201 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 311265198} + m_GameObject: {fileID: 204513199} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 589a13ae5f946344da6dcbc877896c84, type: 3} + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} m_Name: m_EditorClassIdentifier: serializationData: @@ -334,25 +610,15 @@ MonoBehaviour: PrefabModificationsReferencedUnityObjects: [] PrefabModifications: [] SerializationNodes: [] - _udonSharpBackingUdonBehaviour: {fileID: 311265200} - SyncEnabled: 1 - CallbackListeners: - - {fileID: 747020614} - BulkCount: 3000 - SyncInterval: 1 - ShowProgress: 1 - PrepareCallbackAsync: 0 - Source: {fileID: 2800000, guid: 79a97e948433e9b42a4a716fd8cb3808, type: 3} - Target: {fileID: 2800000, guid: 86c8a8e2b7e199e4ca98d930a9de27c0, type: 3} - GetPixelsBulkCount: 8 - ColorEncoder: {fileID: 129545389} ---- !u!114 &311265200 + _udonSharpBackingUdonBehaviour: {fileID: 204513202} + SyncTexture2D: {fileID: 311265199} +--- !u!114 &204513202 MonoBehaviour: m_ObjectHideFlags: 2 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 311265198} + m_GameObject: {fileID: 204513199} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} @@ -366,27 +632,13 @@ MonoBehaviour: AllowCollisionOwnershipTransfer: 0 Reliable: 0 _syncMethod: 3 - serializedProgramAsset: {fileID: 11400000, guid: 56df2d14756912b4c9e7b5f9e5d5222b, + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, type: 2} - programSource: {fileID: 11400000, guid: 9a856fb9bdef904438e453381be290e9, type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF publicVariablesUnityEngineObjects: [] publicVariablesSerializationDataFormat: 0 ---- !u!4 &311265201 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 311265198} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &382090518 +--- !u!1 &222416789 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -394,26 +646,41 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 382090521} - - component: {fileID: 382090520} - - component: {fileID: 382090519} + - component: {fileID: 222416790} + - component: {fileID: 222416792} + - component: {fileID: 222416791} m_Layer: 0 - m_Name: ClearTexture2D + m_Name: SyncTextureData18 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &382090519 -MonoBehaviour: - m_ObjectHideFlags: 2 +--- !u!4 &222416790 +Transform: + m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 382090518} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_GameObject: {fileID: 222416789} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &222416791 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 222416789} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} m_Name: m_EditorClassIdentifier: interactTextPlacement: {fileID: 0} @@ -423,23 +690,23 @@ MonoBehaviour: SynchronizePosition: 0 AllowCollisionOwnershipTransfer: 0 Reliable: 0 - _syncMethod: 1 - serializedProgramAsset: {fileID: 11400000, guid: 830ea89d50aca354582c223010c8472c, + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, type: 2} - programSource: {fileID: 11400000, guid: 8cc8b2ced7a8efb4fb3f75e4992c2725, type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF publicVariablesUnityEngineObjects: [] publicVariablesSerializationDataFormat: 0 ---- !u!114 &382090520 +--- !u!114 &222416792 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 382090518} + m_GameObject: {fileID: 222416789} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 953b1c752dfc8d940bd07a7e5df0b193, type: 3} + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} m_Name: m_EditorClassIdentifier: serializationData: @@ -451,25 +718,9 @@ MonoBehaviour: PrefabModificationsReferencedUnityObjects: [] PrefabModifications: [] SerializationNodes: [] - _udonSharpBackingUdonBehaviour: {fileID: 382090519} - Textures: - - {fileID: 2800000, guid: 86c8a8e2b7e199e4ca98d930a9de27c0, type: 3} - - {fileID: 2800000, guid: 503b8ec2b8b04de42ab35eb3f8e8b73a, type: 3} ---- !u!4 &382090521 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 382090518} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.67021203, y: 0.11353397, z: 3.5993576} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 8 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &589968566 + _udonSharpBackingUdonBehaviour: {fileID: 222416791} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &227920577 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -477,23 +728,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 589968569} - - component: {fileID: 589968568} - - component: {fileID: 589968567} + - component: {fileID: 227920578} + - component: {fileID: 227920580} + - component: {fileID: 227920579} m_Layer: 0 - m_Name: SyncTexturesOnLateJoin + m_Name: SyncTextureData26 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &589968567 +--- !u!4 &227920578 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 227920577} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &227920579 MonoBehaviour: m_ObjectHideFlags: 2 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 589968566} + m_GameObject: {fileID: 227920577} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} @@ -506,23 +772,23 @@ MonoBehaviour: SynchronizePosition: 0 AllowCollisionOwnershipTransfer: 0 Reliable: 0 - _syncMethod: 1 - serializedProgramAsset: {fileID: 11400000, guid: a569f3f0d2dbe8040b35e9bbee881078, + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, type: 2} - programSource: {fileID: 11400000, guid: 24d6b7e14c438bc40b18fb76e476c430, type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF publicVariablesUnityEngineObjects: [] publicVariablesSerializationDataFormat: 0 ---- !u!114 &589968568 +--- !u!114 &227920580 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 589968566} + m_GameObject: {fileID: 227920577} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 207df2a8019c9234d99a50caace66be1, type: 3} + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} m_Name: m_EditorClassIdentifier: serializationData: @@ -534,24 +800,9 @@ MonoBehaviour: PrefabModificationsReferencedUnityObjects: [] PrefabModifications: [] SerializationNodes: [] - _udonSharpBackingUdonBehaviour: {fileID: 589968567} - SyncTextureManager: {fileID: 747020613} - Delay: 5 ---- !u!4 &589968569 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 589968566} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2.297744, y: -0.43589795, z: 4.5522685} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 7 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &625500941 + _udonSharpBackingUdonBehaviour: {fileID: 227920579} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &301041438 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -559,78 +810,81 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 625500944} - - component: {fileID: 625500943} - - component: {fileID: 625500942} + - component: {fileID: 301041439} + - component: {fileID: 301041441} + - component: {fileID: 301041440} m_Layer: 0 - m_Name: SourceTextureView0 + m_Name: SyncTextureData28 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!23 &625500942 -MeshRenderer: +--- !u!4 &301041439 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 625500941} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 11fb53ed03fd1a44f912e18acf63c731, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 ---- !u!33 &625500943 -MeshFilter: - m_ObjectHideFlags: 0 + m_GameObject: {fileID: 301041438} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &301041440 +MonoBehaviour: + m_ObjectHideFlags: 2 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 625500941} - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &625500944 -Transform: + m_GameObject: {fileID: 301041438} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &301041441 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 625500941} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 2, z: 0} - m_LocalScale: {x: 2, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 9 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &652983082 + m_GameObject: {fileID: 301041438} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 301041440} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &306667786 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -638,134 +892,108 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 652983085} - - component: {fileID: 652983084} - - component: {fileID: 652983083} + - component: {fileID: 306667787} + - component: {fileID: 306667788} + - component: {fileID: 306667789} m_Layer: 0 - m_Name: SyncTextureView0 + m_Name: SyncTextureData1 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!23 &652983083 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 652983082} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: b7e473bc3e3cf234a83186c65990b456, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 ---- !u!33 &652983084 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 652983082} - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &652983085 +--- !u!4 &306667787 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 652983082} + m_GameObject: {fileID: 306667786} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: 0} - m_LocalScale: {x: 2, y: 1, z: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 11 + m_Father: {fileID: 311265201} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &681807400 -GameObject: +--- !u!114 &306667788 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 681807406} - - component: {fileID: 681807405} - - component: {fileID: 681807404} - - component: {fileID: 681807403} - - component: {fileID: 681807402} - - component: {fileID: 681807401} - m_Layer: 0 - m_Name: SyncCancelButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &681807401 + m_GameObject: {fileID: 306667786} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 306667789} + SyncTexture2D: {fileID: 311265199} +--- !u!114 &306667789 MonoBehaviour: m_ObjectHideFlags: 2 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 681807400} + m_GameObject: {fileID: 306667786} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} m_Name: m_EditorClassIdentifier: interactTextPlacement: {fileID: 0} - interactText: CancelSync + interactText: Use interactTextGO: {fileID: 0} proximity: 2 SynchronizePosition: 0 AllowCollisionOwnershipTransfer: 0 Reliable: 0 - _syncMethod: 1 - serializedProgramAsset: {fileID: 11400000, guid: 9622787364a935643ba841fa107a121f, + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, type: 2} - programSource: {fileID: 11400000, guid: a3fd01749ce2c7c40be4ec8596f90f17, type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF publicVariablesUnityEngineObjects: [] publicVariablesSerializationDataFormat: 0 ---- !u!114 &681807402 -MonoBehaviour: +--- !u!1 &311265198 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 681807400} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ac81d5c133a5c284bac490f915c51062, type: 3} + serializedVersion: 6 + m_Component: + - component: {fileID: 311265201} + - component: {fileID: 311265199} + - component: {fileID: 311265200} + m_Layer: 0 + m_Name: SyncTexture + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &311265199 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 311265198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 589a13ae5f946344da6dcbc877896c84, type: 3} m_Name: m_EditorClassIdentifier: serializationData: @@ -777,84 +1005,125 @@ MonoBehaviour: PrefabModificationsReferencedUnityObjects: [] PrefabModifications: [] SerializationNodes: [] - _udonSharpBackingUdonBehaviour: {fileID: 681807401} - Target: {fileID: 747020613} - EventName: CancelSync ---- !u!65 &681807403 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 681807400} - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &681807404 -MeshRenderer: - m_ObjectHideFlags: 0 + _udonSharpBackingUdonBehaviour: {fileID: 311265200} + CallbackListeners: + - {fileID: 747020614} + ReceiveEnabled: 1 + BulkLineCount: 0 + BulkRateOfNetworkSpec: 0.8 + SyncInterval: 1 + PrepareCallbackAsync: 0 + Source: {fileID: 2800000, guid: 79a97e948433e9b42a4a716fd8cb3808, type: 3} + Target: {fileID: 2800000, guid: 86c8a8e2b7e199e4ca98d930a9de27c0, type: 3} + GetPixelsBulkCount: 8 + ColorEncoder: {fileID: 129545389} + DataList: + - {fileID: 1233531643} + - {fileID: 306667788} + - {fileID: 1462813920} + - {fileID: 204513201} + - {fileID: 1430379361} + - {fileID: 1903809115} + - {fileID: 34157022} + - {fileID: 1497427291} + - {fileID: 1663589675} + - {fileID: 1149690037} + - {fileID: 842872305} + - {fileID: 333788926} + - {fileID: 1139580073} + - {fileID: 1006220936} + - {fileID: 1249734804} + - {fileID: 1229140814} + - {fileID: 837361823} + - {fileID: 1617044212} + - {fileID: 222416792} + - {fileID: 556482368} + - {fileID: 784329896} + - {fileID: 660165361} + - {fileID: 370625090} + - {fileID: 897011093} + - {fileID: 713325944} + - {fileID: 936429033} + - {fileID: 227920580} + - {fileID: 44284417} + - {fileID: 301041441} + - {fileID: 955273703} + - {fileID: 1831621300} + - {fileID: 1424549158} +--- !u!114 &311265200 +MonoBehaviour: + m_ObjectHideFlags: 2 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 681807400} + m_GameObject: {fileID: 311265198} m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 ---- !u!33 &681807405 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 681807400} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &681807406 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 1 + serializedProgramAsset: {fileID: 11400000, guid: 56df2d14756912b4c9e7b5f9e5d5222b, + type: 2} + programSource: {fileID: 11400000, guid: 9a856fb9bdef904438e453381be290e9, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!4 &311265201 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 681807400} + m_GameObject: {fileID: 311265198} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1, y: 0.7, z: 0} - m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} - m_Children: [] + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1233531642} + - {fileID: 306667787} + - {fileID: 1462813919} + - {fileID: 204513200} + - {fileID: 1430379362} + - {fileID: 1903809113} + - {fileID: 34157020} + - {fileID: 1497427289} + - {fileID: 1663589673} + - {fileID: 1149690035} + - {fileID: 842872303} + - {fileID: 333788924} + - {fileID: 1139580071} + - {fileID: 1006220934} + - {fileID: 1249734802} + - {fileID: 1229140812} + - {fileID: 837361821} + - {fileID: 1617044210} + - {fileID: 222416790} + - {fileID: 556482366} + - {fileID: 784329894} + - {fileID: 660165359} + - {fileID: 370625088} + - {fileID: 897011091} + - {fileID: 713325942} + - {fileID: 936429031} + - {fileID: 227920578} + - {fileID: 44284415} + - {fileID: 301041439} + - {fileID: 955273701} + - {fileID: 1831621298} + - {fileID: 1424549156} m_Father: {fileID: 0} - m_RootOrder: 14 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &747020612 +--- !u!1 &333788923 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -862,26 +1131,67 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 747020615} - - component: {fileID: 747020613} - - component: {fileID: 747020614} + - component: {fileID: 333788924} + - component: {fileID: 333788926} + - component: {fileID: 333788925} m_Layer: 0 - m_Name: SyncTextureManager + m_Name: SyncTextureData11 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &747020613 +--- !u!4 &333788924 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333788923} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &333788925 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 333788923} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &333788926 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 747020612} + m_GameObject: {fileID: 333788923} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: cfd6c44412e62364b90f8538d42c5692, type: 3} + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} m_Name: m_EditorClassIdentifier: serializationData: @@ -893,17 +1203,48 @@ MonoBehaviour: PrefabModificationsReferencedUnityObjects: [] PrefabModifications: [] SerializationNodes: [] - _udonSharpBackingUdonBehaviour: {fileID: 747020614} - SyncTextures: - - {fileID: 311265199} - - {fileID: 2021254492} ---- !u!114 &747020614 + _udonSharpBackingUdonBehaviour: {fileID: 333788925} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &370625087 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 370625088} + - component: {fileID: 370625090} + - component: {fileID: 370625089} + m_Layer: 0 + m_Name: SyncTextureData22 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &370625088 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 370625087} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &370625089 MonoBehaviour: m_ObjectHideFlags: 2 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 747020612} + m_GameObject: {fileID: 370625087} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} @@ -917,27 +1258,36 @@ MonoBehaviour: AllowCollisionOwnershipTransfer: 0 Reliable: 0 _syncMethod: 3 - serializedProgramAsset: {fileID: 11400000, guid: dfc78fa95e104724b8ceb218f1824c66, + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, type: 2} - programSource: {fileID: 11400000, guid: 81eea18ac383db44283f2735334f6a60, type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF publicVariablesUnityEngineObjects: [] publicVariablesSerializationDataFormat: 0 ---- !u!4 &747020615 -Transform: +--- !u!114 &370625090 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 747020612} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.2092935, y: 0.4403559, z: 4.7554116} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &773843031 + m_GameObject: {fileID: 370625087} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 370625089} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &382090518 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -945,143 +1295,83 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 773843034} - - component: {fileID: 773843033} - - component: {fileID: 773843032} + - component: {fileID: 382090521} + - component: {fileID: 382090520} + - component: {fileID: 382090519} m_Layer: 0 - m_Name: VRCWorld + m_Name: ClearTexture2D m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &773843032 +--- !u!114 &382090519 MonoBehaviour: - m_ObjectHideFlags: 0 + m_ObjectHideFlags: 2 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 773843031} + m_GameObject: {fileID: 382090518} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -1427037861, guid: 4ecd63eff847044b68db9453ce219299, type: 3} + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} m_Name: m_EditorClassIdentifier: - launchedFromSDKPipeline: 0 - completedSDKPipeline: 0 - blueprintId: - contentType: 0 - assetBundleUnityVersion: - fallbackStatus: 0 ---- !u!114 &773843033 + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 1 + serializedProgramAsset: {fileID: 11400000, guid: 830ea89d50aca354582c223010c8472c, + type: 2} + programSource: {fileID: 11400000, guid: 8cc8b2ced7a8efb4fb3f75e4992c2725, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &382090520 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 773843031} + m_GameObject: {fileID: 382090518} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -17141911, guid: 661092b4961be7145bfbe56e1e62337b, type: 3} + m_Script: {fileID: 11500000, guid: 953b1c752dfc8d940bd07a7e5df0b193, type: 3} m_Name: m_EditorClassIdentifier: - spawns: - - {fileID: 773843034} - spawnOrder: 2 - spawnOrientation: 0 - ReferenceCamera: {fileID: 0} - RespawnHeightY: -1 - ObjectBehaviourAtRespawnHeight: 0 - ForbidUserPortals: 0 - interactThruLayers: 0 - autoSpatializeAudioSources: 0 - gravity: {x: 0, y: -9.81, z: 0} - layerCollisionArr: - capacity: 0 - contentSex: 0 - contentViolence: 0 - contentGore: 0 - contentOther: 0 - releasePublic: 0 - unityVersion: - Name: - NSFW: 0 - SpawnPosition: {x: 0, y: 0, z: 0} - SpawnLocation: {fileID: 0} - DrawDistance: 0 - useAssignedLayers: 0 - DynamicPrefabs: [] - DynamicMaterials: [] - LightMapsNear: [] - LightMapsFar: [] - LightMode: 0 - RenderAmbientEquatorColor: {r: 0, g: 0, b: 0, a: 0} - RenderAmbientGroundColor: {r: 0, g: 0, b: 0, a: 0} - RenderAmbientIntensity: 0 - RenderAmbientLight: {r: 0, g: 0, b: 0, a: 0} - RenderAmbientMode: 0 - RenderAmbientProbe: - sh[ 0]: 0 - sh[ 1]: 0 - sh[ 2]: 0 - sh[ 3]: 0 - sh[ 4]: 0 - sh[ 5]: 0 - sh[ 6]: 0 - sh[ 7]: 0 - sh[ 8]: 0 - sh[ 9]: 0 - sh[10]: 0 - sh[11]: 0 - sh[12]: 0 - sh[13]: 0 - sh[14]: 0 - sh[15]: 0 - sh[16]: 0 - sh[17]: 0 - sh[18]: 0 - sh[19]: 0 - sh[20]: 0 - sh[21]: 0 - sh[22]: 0 - sh[23]: 0 - sh[24]: 0 - sh[25]: 0 - sh[26]: 0 - RenderAmbientSkyColor: {r: 0, g: 0, b: 0, a: 0} - RenderFog: 0 - RenderFogColor: {r: 0, g: 0, b: 0, a: 0} - RenderFogMode: 0 - RenderFogDensity: 0 - RenderFogLinearStart: 0 - RenderFogLinearEnd: 0 - RenderHaloStrength: 0 - RenderFlareFadeSpeed: 0 - RenderFlareStrength: 0 - RenderCustomReflection: {fileID: 0} - RenderDefaultReflectionMode: 0 - RenderDefaultReflectionResolution: 0 - RenderReflectionBounces: 0 - RenderReflectionIntensity: 0 - RenderSkybox: {fileID: 0} - NetworkIDs: [] - portraitCameraPositionOffset: {x: 0, y: 0, z: 0} - portraitCameraRotationOffset: {x: 0, y: 1, z: 0, w: -0.00000004371139} ---- !u!4 &773843034 + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 382090519} + Textures: + - {fileID: 2800000, guid: 86c8a8e2b7e199e4ca98d930a9de27c0, type: 3} + - {fileID: 2800000, guid: 503b8ec2b8b04de42ab35eb3f8e8b73a, type: 3} +--- !u!4 &382090521 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 773843031} + m_GameObject: {fileID: 382090518} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -3} + m_LocalPosition: {x: -0.67021203, y: 0.11353397, z: 3.5993576} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1481526987 +--- !u!1 &508852273 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1089,91 +1379,81 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1481526989} - - component: {fileID: 1481526988} + - component: {fileID: 508852274} + - component: {fileID: 508852276} + - component: {fileID: 508852275} m_Layer: 0 - m_Name: Directional Light + m_Name: SyncTextureData9 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!108 &1481526988 -Light: +--- !u!4 &508852274 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1481526987} + m_GameObject: {fileID: 508852273} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2021254493} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &508852275 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 508852273} m_Enabled: 1 - serializedVersion: 10 - m_Type: 1 - m_Shape: 0 - m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} - m_Intensity: 1 - m_Range: 10 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 2 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!4 &1481526989 -Transform: + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: e14ad8bbbe317f74e8b050f0bbabd55a, + type: 2} + programSource: {fileID: 11400000, guid: e04f11ced1e2b264b8544cc31e39e589, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &508852276 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1481526987} - m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} - m_LocalPosition: {x: 0, y: 3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} ---- !u!1 &1623243516 + m_GameObject: {fileID: 508852273} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f6f16f5f2033874bb6b117cc9d093a3, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 508852275} + SyncTexture2D: {fileID: 2021254492} +--- !u!1 &556482365 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1181,41 +1461,2903 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1623243519} - - component: {fileID: 1623243518} - - component: {fileID: 1623243517} + - component: {fileID: 556482366} + - component: {fileID: 556482368} + - component: {fileID: 556482367} m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera + m_Name: SyncTextureData19 + m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!81 &1623243517 -AudioListener: +--- !u!4 &556482366 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1623243516} + m_GameObject: {fileID: 556482365} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &556482367 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 556482365} m_Enabled: 1 ---- !u!20 &1623243518 -Camera: + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &556482368 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1623243516} + m_GameObject: {fileID: 556482365} m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 556482367} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &602472125 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 602472126} + - component: {fileID: 602472128} + - component: {fileID: 602472127} + m_Layer: 0 + m_Name: SyncTextureData12 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &602472126 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 602472125} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2021254493} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &602472127 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 602472125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: e14ad8bbbe317f74e8b050f0bbabd55a, + type: 2} + programSource: {fileID: 11400000, guid: e04f11ced1e2b264b8544cc31e39e589, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &602472128 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 602472125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f6f16f5f2033874bb6b117cc9d093a3, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 602472127} + SyncTexture2D: {fileID: 2021254492} +--- !u!1 &625500941 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 625500944} + - component: {fileID: 625500943} + - component: {fileID: 625500942} + m_Layer: 0 + m_Name: SourceTextureView0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &625500942 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 625500941} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 11fb53ed03fd1a44f912e18acf63c731, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &625500943 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 625500941} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &625500944 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 625500941} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 2, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &652983082 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 652983085} + - component: {fileID: 652983084} + - component: {fileID: 652983083} + m_Layer: 0 + m_Name: SyncTextureView0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &652983083 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 652983082} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: b7e473bc3e3cf234a83186c65990b456, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &652983084 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 652983082} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &652983085 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 652983082} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &660165358 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 660165359} + - component: {fileID: 660165361} + - component: {fileID: 660165360} + m_Layer: 0 + m_Name: SyncTextureData21 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &660165359 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 660165358} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &660165360 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 660165358} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &660165361 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 660165358} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 660165360} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &681807400 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 681807406} + - component: {fileID: 681807405} + - component: {fileID: 681807404} + - component: {fileID: 681807403} + - component: {fileID: 681807408} + - component: {fileID: 681807407} + m_Layer: 0 + m_Name: Sync2Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &681807403 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 681807400} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 1 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &681807404 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 681807400} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &681807405 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 681807400} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &681807406 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 681807400} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1, y: 0.7, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &681807407 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 681807400} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Sync 2 + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 1 + serializedProgramAsset: {fileID: 11400000, guid: affead9b684adb64ebff9b4b7ce384a3, + type: 2} + programSource: {fileID: 11400000, guid: 64d328ee1ddc3dc429b432dcd67aee4d, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &681807408 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 681807400} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d777506b830ecdf4bb7e0ca3bbbabcbf, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 681807407} + syncTextureManager: {fileID: 747020613} + syncTexture: {fileID: 2021254492} + resendWhenExistsAndNowSending: 1 +--- !u!1 &713325941 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 713325942} + - component: {fileID: 713325944} + - component: {fileID: 713325943} + m_Layer: 0 + m_Name: SyncTextureData24 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &713325942 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 713325941} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &713325943 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 713325941} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &713325944 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 713325941} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 713325943} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &728215156 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 728215157} + - component: {fileID: 728215159} + - component: {fileID: 728215158} + m_Layer: 0 + m_Name: SyncTextureData3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &728215157 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 728215156} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2021254493} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &728215158 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 728215156} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: e14ad8bbbe317f74e8b050f0bbabd55a, + type: 2} + programSource: {fileID: 11400000, guid: e04f11ced1e2b264b8544cc31e39e589, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &728215159 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 728215156} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f6f16f5f2033874bb6b117cc9d093a3, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 728215158} + SyncTexture2D: {fileID: 2021254492} +--- !u!1 &747020612 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 747020615} + - component: {fileID: 747020613} + - component: {fileID: 747020614} + m_Layer: 0 + m_Name: SyncTextureManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &747020613 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 747020612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cfd6c44412e62364b90f8538d42c5692, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 747020614} + SyncTextures: + - {fileID: 311265199} + - {fileID: 2021254492} +--- !u!114 &747020614 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 747020612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: dfc78fa95e104724b8ceb218f1824c66, + type: 2} + programSource: {fileID: 11400000, guid: 81eea18ac383db44283f2735334f6a60, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!4 &747020615 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 747020612} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.2092935, y: 0.4403559, z: 4.7554116} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &773843031 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 773843034} + - component: {fileID: 773843033} + - component: {fileID: 773843032} + m_Layer: 0 + m_Name: VRCWorld + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &773843032 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 773843031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1427037861, guid: 4ecd63eff847044b68db9453ce219299, type: 3} + m_Name: + m_EditorClassIdentifier: + launchedFromSDKPipeline: 0 + completedSDKPipeline: 0 + blueprintId: + contentType: 1 + assetBundleUnityVersion: + fallbackStatus: 0 +--- !u!114 &773843033 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 773843031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -17141911, guid: 661092b4961be7145bfbe56e1e62337b, type: 3} + m_Name: + m_EditorClassIdentifier: + spawns: + - {fileID: 773843034} + spawnOrder: 2 + spawnOrientation: 0 + ReferenceCamera: {fileID: 0} + RespawnHeightY: -1 + ObjectBehaviourAtRespawnHeight: 0 + ForbidUserPortals: 0 + interactThruLayers: 0 + autoSpatializeAudioSources: 0 + gravity: {x: 0, y: -9.81, z: 0} + layerCollisionArr: 01010101010001010101010100010001010101000101010101010101010101010101010101000101010101010001000101010100010101010101010101010101010101010100010101010101000100010101010001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101000101010101010001000101010100010101010101010101010101000000010000010100000000000000000000000000000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010100010101010101000100010101010001010101010101010101010101010101010001010100000100000000000001000101010101010101010101010101010101000101010000010000000000000100010101010101010101010101010101010100010101010101000100010101010001010101010101010101010100000001000001010000000000000000000000000000010101010101010101010101010101000101010000010001010101010000000001010101010101010101000000010000010100000000000100000000000000000101010101010101010101010101010001010100000100010001010101000101010101010101010101010101010101000101010000010001000101010100010101010101010101010101010101010100010101000001000100010101010001010101010101010101010101010101010001010101010100000001010101000101010101010101010101010000000100000101000000000000000000000000000001010101010101010101010101010100010101010101000000010101010001010101010101010101010101010101010001010101010100000001010101000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101 + capacity: 0 + contentSex: 0 + contentViolence: 0 + contentGore: 0 + contentOther: 0 + releasePublic: 0 + unityVersion: 2022.3.22f1 + udonProducts: [] + Name: + NSFW: 0 + SpawnPosition: {x: 0, y: 0, z: 0} + SpawnLocation: {fileID: 0} + DrawDistance: 0 + useAssignedLayers: 0 + DynamicPrefabs: [] + DynamicMaterials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 2100000, guid: 11fb53ed03fd1a44f912e18acf63c731, type: 2} + - {fileID: 2100000, guid: b7e473bc3e3cf234a83186c65990b456, type: 2} + - {fileID: 2100000, guid: 61212d531c4efcc44bf051dcd80de264, type: 2} + - {fileID: 2100000, guid: 19fc1beea3e83b24d99de8c3476771e0, type: 2} + LightMapsNear: [] + LightMapsFar: [] + LightMode: 0 + RenderAmbientEquatorColor: {r: 0, g: 0, b: 0, a: 0} + RenderAmbientGroundColor: {r: 0, g: 0, b: 0, a: 0} + RenderAmbientIntensity: 0 + RenderAmbientLight: {r: 0, g: 0, b: 0, a: 0} + RenderAmbientMode: 0 + RenderAmbientProbe: + sh[ 0]: 0 + sh[ 1]: 0 + sh[ 2]: 0 + sh[ 3]: 0 + sh[ 4]: 0 + sh[ 5]: 0 + sh[ 6]: 0 + sh[ 7]: 0 + sh[ 8]: 0 + sh[ 9]: 0 + sh[10]: 0 + sh[11]: 0 + sh[12]: 0 + sh[13]: 0 + sh[14]: 0 + sh[15]: 0 + sh[16]: 0 + sh[17]: 0 + sh[18]: 0 + sh[19]: 0 + sh[20]: 0 + sh[21]: 0 + sh[22]: 0 + sh[23]: 0 + sh[24]: 0 + sh[25]: 0 + sh[26]: 0 + RenderAmbientSkyColor: {r: 0, g: 0, b: 0, a: 0} + RenderFog: 0 + RenderFogColor: {r: 0, g: 0, b: 0, a: 0} + RenderFogMode: 0 + RenderFogDensity: 0 + RenderFogLinearStart: 0 + RenderFogLinearEnd: 0 + RenderHaloStrength: 0 + RenderFlareFadeSpeed: 0 + RenderFlareStrength: 0 + RenderCustomReflection: {fileID: 0} + RenderDefaultReflectionMode: 0 + RenderDefaultReflectionResolution: 0 + RenderReflectionBounces: 0 + RenderReflectionIntensity: 0 + RenderSkybox: {fileID: 0} + NetworkIDs: + - gameObject: {fileID: 382090518} + ID: 10 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 2076377246} + ID: 11 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 129545387} + ID: 12 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1778580713} + ID: 13 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1910169624} + ID: 14 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 681807400} + ID: 15 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 311265198} + ID: 16 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 2021254490} + ID: 17 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 2050241593} + ID: 18 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 783660203} + ID: 19 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1247389175} + ID: 20 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1233531641} + ID: 21 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 306667786} + ID: 22 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1462813918} + ID: 23 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 204513199} + ID: 24 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1430379360} + ID: 25 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 747020612} + ID: 26 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + portraitCameraPositionOffset: {x: 0, y: 0, z: 0} + portraitCameraRotationOffset: {x: 0, y: 1, z: 0, w: -0.00000004371139} + NavigationAreas: [] +--- !u!4 &773843034 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 773843031} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &783660203 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 783660204} + - component: {fileID: 783660206} + - component: {fileID: 783660205} + m_Layer: 0 + m_Name: SyncTextureData1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &783660204 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 783660203} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2021254493} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &783660205 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 783660203} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: e14ad8bbbe317f74e8b050f0bbabd55a, + type: 2} + programSource: {fileID: 11400000, guid: e04f11ced1e2b264b8544cc31e39e589, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &783660206 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 783660203} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f6f16f5f2033874bb6b117cc9d093a3, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 783660205} + SyncTexture2D: {fileID: 2021254492} +--- !u!1 &784329893 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 784329894} + - component: {fileID: 784329896} + - component: {fileID: 784329895} + m_Layer: 0 + m_Name: SyncTextureData20 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &784329894 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 784329893} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &784329895 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 784329893} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &784329896 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 784329893} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 784329895} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &837361820 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 837361821} + - component: {fileID: 837361823} + - component: {fileID: 837361822} + m_Layer: 0 + m_Name: SyncTextureData16 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &837361821 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 837361820} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &837361822 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 837361820} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &837361823 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 837361820} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 837361822} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &842872302 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 842872303} + - component: {fileID: 842872305} + - component: {fileID: 842872304} + m_Layer: 0 + m_Name: SyncTextureData10 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &842872303 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 842872302} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &842872304 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 842872302} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &842872305 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 842872302} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 842872304} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &897011090 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 897011091} + - component: {fileID: 897011093} + - component: {fileID: 897011092} + m_Layer: 0 + m_Name: SyncTextureData23 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &897011091 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 897011090} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &897011092 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 897011090} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &897011093 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 897011090} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 897011092} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &936429030 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 936429031} + - component: {fileID: 936429033} + - component: {fileID: 936429032} + m_Layer: 0 + m_Name: SyncTextureData25 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &936429031 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 936429030} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &936429032 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 936429030} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &936429033 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 936429030} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 936429032} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &955273700 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 955273701} + - component: {fileID: 955273703} + - component: {fileID: 955273702} + m_Layer: 0 + m_Name: SyncTextureData29 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &955273701 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 955273700} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &955273702 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 955273700} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &955273703 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 955273700} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 955273702} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &1006220933 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1006220934} + - component: {fileID: 1006220936} + - component: {fileID: 1006220935} + m_Layer: 0 + m_Name: SyncTextureData13 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1006220934 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1006220933} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1006220935 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1006220933} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1006220936 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1006220933} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1006220935} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &1139580070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1139580071} + - component: {fileID: 1139580073} + - component: {fileID: 1139580072} + m_Layer: 0 + m_Name: SyncTextureData12 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1139580071 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1139580070} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1139580072 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1139580070} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1139580073 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1139580070} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1139580072} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &1149690034 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1149690035} + - component: {fileID: 1149690037} + - component: {fileID: 1149690036} + m_Layer: 0 + m_Name: SyncTextureData9 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1149690035 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1149690034} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1149690036 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1149690034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1149690037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1149690034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1149690036} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &1229140811 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1229140812} + - component: {fileID: 1229140814} + - component: {fileID: 1229140813} + m_Layer: 0 + m_Name: SyncTextureData15 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1229140812 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229140811} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1229140813 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229140811} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1229140814 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229140811} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1229140813} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &1233531641 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1233531642} + - component: {fileID: 1233531643} + - component: {fileID: 1233531644} + m_Layer: 0 + m_Name: SyncTextureData0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1233531642 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1233531641} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1233531643 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1233531641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1233531644} + SyncTexture2D: {fileID: 311265199} +--- !u!114 &1233531644 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1233531641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!1 &1247389175 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1247389178} + - component: {fileID: 1247389176} + - component: {fileID: 1247389177} + m_Layer: 0 + m_Name: SyncTextureData2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1247389176 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1247389175} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f6f16f5f2033874bb6b117cc9d093a3, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1247389177} + SyncTexture2D: {fileID: 2021254492} +--- !u!114 &1247389177 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1247389175} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: e14ad8bbbe317f74e8b050f0bbabd55a, + type: 2} + programSource: {fileID: 11400000, guid: e04f11ced1e2b264b8544cc31e39e589, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!4 &1247389178 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1247389175} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2021254493} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1249734801 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1249734802} + - component: {fileID: 1249734804} + - component: {fileID: 1249734803} + m_Layer: 0 + m_Name: SyncTextureData14 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1249734802 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1249734801} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1249734803 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1249734801} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1249734804 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1249734801} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1249734803} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &1315241277 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1315241278} + - component: {fileID: 1315241280} + - component: {fileID: 1315241279} + m_Layer: 0 + m_Name: SyncTextureData4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1315241278 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1315241277} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2021254493} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1315241279 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1315241277} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: e14ad8bbbe317f74e8b050f0bbabd55a, + type: 2} + programSource: {fileID: 11400000, guid: e04f11ced1e2b264b8544cc31e39e589, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1315241280 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1315241277} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f6f16f5f2033874bb6b117cc9d093a3, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1315241279} + SyncTexture2D: {fileID: 2021254492} +--- !u!1 &1424549155 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1424549156} + - component: {fileID: 1424549158} + - component: {fileID: 1424549157} + m_Layer: 0 + m_Name: SyncTextureData31 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1424549156 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1424549155} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1424549157 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1424549155} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1424549158 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1424549155} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1424549157} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &1430379360 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1430379362} + - component: {fileID: 1430379361} + - component: {fileID: 1430379363} + m_Layer: 0 + m_Name: SyncTextureData4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1430379361 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1430379360} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1430379363} + SyncTexture2D: {fileID: 311265199} +--- !u!4 &1430379362 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1430379360} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1430379363 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1430379360} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!1 &1462813918 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1462813919} + - component: {fileID: 1462813920} + - component: {fileID: 1462813921} + m_Layer: 0 + m_Name: SyncTextureData2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1462813919 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462813918} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1462813920 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462813918} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1462813921} + SyncTexture2D: {fileID: 311265199} +--- !u!114 &1462813921 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462813918} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!1 &1481526987 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1481526989} + - component: {fileID: 1481526988} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1481526988 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1481526987} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1481526989 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1481526987} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1497427288 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1497427289} + - component: {fileID: 1497427291} + - component: {fileID: 1497427290} + m_Layer: 0 + m_Name: SyncTextureData7 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1497427289 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1497427288} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1497427290 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1497427288} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1497427291 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1497427288} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1497427290} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &1608137062 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1608137063} + - component: {fileID: 1608137065} + - component: {fileID: 1608137064} + m_Layer: 0 + m_Name: SyncTextureData5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1608137063 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1608137062} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2021254493} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1608137064 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1608137062} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: e14ad8bbbe317f74e8b050f0bbabd55a, + type: 2} + programSource: {fileID: 11400000, guid: e04f11ced1e2b264b8544cc31e39e589, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1608137065 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1608137062} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f6f16f5f2033874bb6b117cc9d093a3, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1608137064} + SyncTexture2D: {fileID: 2021254492} +--- !u!1 &1617044209 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1617044210} + - component: {fileID: 1617044212} + - component: {fileID: 1617044211} + m_Layer: 0 + m_Name: SyncTextureData17 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1617044210 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1617044209} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1617044211 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1617044209} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1617044212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1617044209} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1617044211} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &1623243516 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1623243519} + - component: {fileID: 1623243518} + - component: {fileID: 1623243517} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1623243517 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1623243516} + m_Enabled: 1 +--- !u!20 &1623243518 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1623243516} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 m_SensorSize: {x: 36, y: 24} m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -1248,15 +4390,591 @@ Transform: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1623243516} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1680143321 + m_GameObject: {fileID: 1623243516} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1660047609 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1660047610} + - component: {fileID: 1660047612} + - component: {fileID: 1660047611} + m_Layer: 0 + m_Name: SyncTextureData6 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1660047610 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1660047609} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2021254493} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1660047611 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1660047609} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: e14ad8bbbe317f74e8b050f0bbabd55a, + type: 2} + programSource: {fileID: 11400000, guid: e04f11ced1e2b264b8544cc31e39e589, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1660047612 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1660047609} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f6f16f5f2033874bb6b117cc9d093a3, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1660047611} + SyncTexture2D: {fileID: 2021254492} +--- !u!1 &1663589672 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1663589673} + - component: {fileID: 1663589675} + - component: {fileID: 1663589674} + m_Layer: 0 + m_Name: SyncTextureData8 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1663589673 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1663589672} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1663589674 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1663589672} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1663589675 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1663589672} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1663589674} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &1680143321 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1680143324} + - component: {fileID: 1680143323} + - component: {fileID: 1680143322} + m_Layer: 0 + m_Name: SourceTextureView1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &1680143322 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1680143321} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 61212d531c4efcc44bf051dcd80de264, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1680143323 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1680143321} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1680143324 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1680143321} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2, y: 2, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1778580713 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1778580716} + - component: {fileID: 1778580715} + - component: {fileID: 1778580714} + m_Layer: 0 + m_Name: ColorEncoderRGBA8888 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1778580714 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1778580713} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 1 + serializedProgramAsset: {fileID: 11400000, guid: 570b164c97211824f82e95354dea518c, + type: 2} + programSource: {fileID: 11400000, guid: b2043cca967d57046981cf13957ca101, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1778580715 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1778580713} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9046deb727255eb4eb38ce4921805c19, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1778580714} +--- !u!4 &1778580716 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1778580713} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.79528683, y: 1.214683, z: 0.24117988} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1831621297 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1831621298} + - component: {fileID: 1831621300} + - component: {fileID: 1831621299} + m_Layer: 0 + m_Name: SyncTextureData30 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1831621298 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1831621297} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1831621299 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1831621297} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1831621300 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1831621297} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1831621299} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &1899920723 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1899920726} + - component: {fileID: 1899920725} + - component: {fileID: 1899920724} + m_Layer: 0 + m_Name: SyncTextureView1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &1899920724 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1899920723} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 19fc1beea3e83b24d99de8c3476771e0, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1899920725 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1899920723} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1899920726 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1899920723} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2, y: 1, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1903809112 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1903809113} + - component: {fileID: 1903809115} + - component: {fileID: 1903809114} + m_Layer: 0 + m_Name: SyncTextureData5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1903809113 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1903809112} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 311265201} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1903809114 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1903809112} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + programSource: {fileID: 11400000, guid: a5caf9f9fb283cc4dbcc1aa6d61028e0, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1903809115 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1903809112} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1903809114} + SyncTexture2D: {fileID: 311265199} +--- !u!1 &1910169624 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1264,35 +4982,61 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1680143324} - - component: {fileID: 1680143323} - - component: {fileID: 1680143322} + - component: {fileID: 1910169630} + - component: {fileID: 1910169629} + - component: {fileID: 1910169628} + - component: {fileID: 1910169627} + - component: {fileID: 1910169632} + - component: {fileID: 1910169631} m_Layer: 0 - m_Name: SourceTextureView1 + m_Name: Sync1Button m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!23 &1680143322 +--- !u!65 &1910169627 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1910169624} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 1 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1910169628 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1680143321} + m_GameObject: {fileID: 1910169624} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 61212d531c4efcc44bf051dcd80de264, type: 2} + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -1313,29 +5057,283 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!33 &1680143323 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1910169629 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1680143321} - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1680143324 + m_GameObject: {fileID: 1910169624} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1910169630 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1680143321} + m_GameObject: {fileID: 1910169624} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.7, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1910169631 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1910169624} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Send 1 + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 1 + serializedProgramAsset: {fileID: 11400000, guid: affead9b684adb64ebff9b4b7ce384a3, + type: 2} + programSource: {fileID: 11400000, guid: 64d328ee1ddc3dc429b432dcd67aee4d, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1910169632 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1910169624} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d777506b830ecdf4bb7e0ca3bbbabcbf, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1910169631} + syncTextureManager: {fileID: 747020613} + syncTexture: {fileID: 311265199} + resendWhenExistsAndNowSending: 1 +--- !u!1 &1925010074 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1925010075} + - component: {fileID: 1925010077} + - component: {fileID: 1925010076} + m_Layer: 0 + m_Name: SyncTextureData10 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1925010075 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1925010074} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2021254493} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1925010076 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1925010074} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: e14ad8bbbe317f74e8b050f0bbabd55a, + type: 2} + programSource: {fileID: 11400000, guid: e04f11ced1e2b264b8544cc31e39e589, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &1925010077 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1925010074} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3f6f16f5f2033874bb6b117cc9d093a3, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 1925010076} + SyncTexture2D: {fileID: 2021254492} +--- !u!1 &2021254490 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2021254493} + - component: {fileID: 2021254492} + - component: {fileID: 2021254491} + m_Layer: 0 + m_Name: SyncTexture (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2021254491 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2021254490} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} + m_Name: + m_EditorClassIdentifier: + interactTextPlacement: {fileID: 0} + interactText: Use + interactTextGO: {fileID: 0} + proximity: 2 + SynchronizePosition: 0 + AllowCollisionOwnershipTransfer: 0 + Reliable: 0 + _syncMethod: 1 + serializedProgramAsset: {fileID: 11400000, guid: 680063fd6f9ab4c4f9f77895ee72ea5f, + type: 2} + programSource: {fileID: 11400000, guid: 723b7431ae780b34ab15aa4e64038638, type: 2} + serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF + publicVariablesUnityEngineObjects: [] + publicVariablesSerializationDataFormat: 0 +--- !u!114 &2021254492 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2021254490} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ef6e0923206b4b4f9ac9638a02d5f33, type: 3} + m_Name: + m_EditorClassIdentifier: + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: [] + _udonSharpBackingUdonBehaviour: {fileID: 2021254491} + CallbackListeners: + - {fileID: 747020614} + ReceiveEnabled: 1 + BulkLineCount: 0 + BulkRateOfNetworkSpec: 0.95 + SyncInterval: 1 + PrepareCallbackAsync: 0 + Source: {fileID: 2800000, guid: 4112bfd370202bb4a94fa6c5f73a7d10, type: 3} + Target: {fileID: 2800000, guid: 503b8ec2b8b04de42ab35eb3f8e8b73a, type: 3} + GetPixelsBulkCount: 0 + ColorEncoder: {fileID: 1778580715} + DataList: + - {fileID: 2050241596} + - {fileID: 783660206} + - {fileID: 1247389176} + - {fileID: 728215159} + - {fileID: 1315241280} + - {fileID: 1608137065} + - {fileID: 1660047612} + - {fileID: 2059662524} + - {fileID: 2058186835} + - {fileID: 508852276} + - {fileID: 1925010077} + - {fileID: 16793036} + - {fileID: 602472128} +--- !u!4 &2021254493 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2021254490} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2, y: 2, z: 0} - m_LocalScale: {x: 2, y: 1, z: 1} - m_Children: [] + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2050241594} + - {fileID: 783660204} + - {fileID: 1247389178} + - {fileID: 728215157} + - {fileID: 1315241278} + - {fileID: 1608137063} + - {fileID: 1660047610} + - {fileID: 2059662522} + - {fileID: 2058186833} + - {fileID: 508852274} + - {fileID: 1925010075} + - {fileID: 16793034} + - {fileID: 602472126} m_Father: {fileID: 0} - m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1778580713 +--- !u!1 &2050241593 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1343,23 +5341,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1778580716} - - component: {fileID: 1778580715} - - component: {fileID: 1778580714} + - component: {fileID: 2050241594} + - component: {fileID: 2050241596} + - component: {fileID: 2050241595} m_Layer: 0 - m_Name: ColorEncoderRGBA8888 + m_Name: SyncTextureData0 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1778580714 +--- !u!4 &2050241594 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2050241593} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2021254493} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2050241595 MonoBehaviour: m_ObjectHideFlags: 2 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1778580713} + m_GameObject: {fileID: 2050241593} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} @@ -1372,23 +5385,23 @@ MonoBehaviour: SynchronizePosition: 0 AllowCollisionOwnershipTransfer: 0 Reliable: 0 - _syncMethod: 1 - serializedProgramAsset: {fileID: 11400000, guid: 570b164c97211824f82e95354dea518c, + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: e14ad8bbbe317f74e8b050f0bbabd55a, type: 2} - programSource: {fileID: 11400000, guid: b2043cca967d57046981cf13957ca101, type: 2} + programSource: {fileID: 11400000, guid: e04f11ced1e2b264b8544cc31e39e589, type: 2} serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF publicVariablesUnityEngineObjects: [] publicVariablesSerializationDataFormat: 0 ---- !u!114 &1778580715 +--- !u!114 &2050241596 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1778580713} + m_GameObject: {fileID: 2050241593} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9046deb727255eb4eb38ce4921805c19, type: 3} + m_Script: {fileID: 11500000, guid: 3f6f16f5f2033874bb6b117cc9d093a3, type: 3} m_Name: m_EditorClassIdentifier: serializationData: @@ -1400,22 +5413,9 @@ MonoBehaviour: PrefabModificationsReferencedUnityObjects: [] PrefabModifications: [] SerializationNodes: [] - _udonSharpBackingUdonBehaviour: {fileID: 1778580714} ---- !u!4 &1778580716 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1778580713} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.79528683, y: 1.214683, z: 0.24117988} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 17 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1899920723 + _udonSharpBackingUdonBehaviour: {fileID: 2050241595} + SyncTexture2D: {fileID: 2021254492} +--- !u!1 &2058186832 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1423,134 +5423,67 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1899920726} - - component: {fileID: 1899920725} - - component: {fileID: 1899920724} + - component: {fileID: 2058186833} + - component: {fileID: 2058186835} + - component: {fileID: 2058186834} m_Layer: 0 - m_Name: SyncTextureView1 + m_Name: SyncTextureData8 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!23 &1899920724 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1899920723} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 19fc1beea3e83b24d99de8c3476771e0, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 ---- !u!33 &1899920725 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1899920723} - m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1899920726 +--- !u!4 &2058186833 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1899920723} + m_GameObject: {fileID: 2058186832} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2, y: 1, z: 0} - m_LocalScale: {x: 2, y: 1, z: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 12 + m_Father: {fileID: 2021254493} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1910169624 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1910169630} - - component: {fileID: 1910169629} - - component: {fileID: 1910169628} - - component: {fileID: 1910169627} - - component: {fileID: 1910169626} - - component: {fileID: 1910169625} - m_Layer: 0 - m_Name: SyncStartButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1910169625 +--- !u!114 &2058186834 MonoBehaviour: m_ObjectHideFlags: 2 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1910169624} + m_GameObject: {fileID: 2058186832} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} m_Name: m_EditorClassIdentifier: interactTextPlacement: {fileID: 0} - interactText: StartSyncAll + interactText: Use interactTextGO: {fileID: 0} proximity: 2 SynchronizePosition: 0 AllowCollisionOwnershipTransfer: 0 Reliable: 0 - _syncMethod: 1 - serializedProgramAsset: {fileID: 11400000, guid: 9622787364a935643ba841fa107a121f, + _syncMethod: 3 + serializedProgramAsset: {fileID: 11400000, guid: e14ad8bbbe317f74e8b050f0bbabd55a, type: 2} - programSource: {fileID: 11400000, guid: a3fd01749ce2c7c40be4ec8596f90f17, type: 2} + programSource: {fileID: 11400000, guid: e04f11ced1e2b264b8544cc31e39e589, type: 2} serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF publicVariablesUnityEngineObjects: [] publicVariablesSerializationDataFormat: 0 ---- !u!114 &1910169626 +--- !u!114 &2058186835 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1910169624} + m_GameObject: {fileID: 2058186832} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ac81d5c133a5c284bac490f915c51062, type: 3} + m_Script: {fileID: 11500000, guid: 3f6f16f5f2033874bb6b117cc9d093a3, type: 3} m_Name: m_EditorClassIdentifier: serializationData: @@ -1562,84 +5495,9 @@ MonoBehaviour: PrefabModificationsReferencedUnityObjects: [] PrefabModifications: [] SerializationNodes: [] - _udonSharpBackingUdonBehaviour: {fileID: 1910169625} - Target: {fileID: 747020613} - EventName: StartSyncAll ---- !u!65 &1910169627 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1910169624} - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1910169628 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1910169624} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 ---- !u!33 &1910169629 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1910169624} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1910169630 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1910169624} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.7, z: 0} - m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 13 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2021254490 + _udonSharpBackingUdonBehaviour: {fileID: 2058186834} + SyncTexture2D: {fileID: 2021254492} +--- !u!1 &2059662521 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1647,23 +5505,38 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2021254493} - - component: {fileID: 2021254492} - - component: {fileID: 2021254491} + - component: {fileID: 2059662522} + - component: {fileID: 2059662524} + - component: {fileID: 2059662523} m_Layer: 0 - m_Name: SyncTexture (1) + m_Name: SyncTextureData7 m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &2021254491 +--- !u!4 &2059662522 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2059662521} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2021254493} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2059662523 MonoBehaviour: m_ObjectHideFlags: 2 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2021254490} + m_GameObject: {fileID: 2059662521} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} @@ -1677,22 +5550,22 @@ MonoBehaviour: AllowCollisionOwnershipTransfer: 0 Reliable: 0 _syncMethod: 3 - serializedProgramAsset: {fileID: 11400000, guid: 680063fd6f9ab4c4f9f77895ee72ea5f, + serializedProgramAsset: {fileID: 11400000, guid: e14ad8bbbe317f74e8b050f0bbabd55a, type: 2} - programSource: {fileID: 11400000, guid: 723b7431ae780b34ab15aa4e64038638, type: 2} + programSource: {fileID: 11400000, guid: e04f11ced1e2b264b8544cc31e39e589, type: 2} serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF publicVariablesUnityEngineObjects: [] publicVariablesSerializationDataFormat: 0 ---- !u!114 &2021254492 +--- !u!114 &2059662524 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2021254490} + m_GameObject: {fileID: 2059662521} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0ef6e0923206b4b4f9ac9638a02d5f33, type: 3} + m_Script: {fileID: 11500000, guid: 3f6f16f5f2033874bb6b117cc9d093a3, type: 3} m_Name: m_EditorClassIdentifier: serializationData: @@ -1704,32 +5577,8 @@ MonoBehaviour: PrefabModificationsReferencedUnityObjects: [] PrefabModifications: [] SerializationNodes: [] - _udonSharpBackingUdonBehaviour: {fileID: 2021254491} - SyncEnabled: 1 - CallbackListeners: - - {fileID: 747020614} - BulkCount: 6000 - SyncInterval: 1 - ShowProgress: 1 - PrepareCallbackAsync: 0 - Source: {fileID: 2800000, guid: 4112bfd370202bb4a94fa6c5f73a7d10, type: 3} - Target: {fileID: 2800000, guid: 503b8ec2b8b04de42ab35eb3f8e8b73a, type: 3} - GetPixelsBulkCount: 0 - ColorEncoder: {fileID: 1778580715} ---- !u!4 &2021254493 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2021254490} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + _udonSharpBackingUdonBehaviour: {fileID: 2059662523} + SyncTexture2D: {fileID: 2021254492} --- !u!1 &2076377246 GameObject: m_ObjectHideFlags: 0 @@ -1809,9 +5658,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2076377246} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 1 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} --- !u!23 &2076377250 @@ -1825,10 +5682,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1853,6 +5712,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &2076377251 MeshFilter: m_ObjectHideFlags: 0 @@ -1868,10 +5728,32 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2076377246} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -1, y: 0.7, z: 0} m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 15 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1623243519} + - {fileID: 1481526989} + - {fileID: 146355952} + - {fileID: 773843034} + - {fileID: 311265201} + - {fileID: 2021254493} + - {fileID: 747020615} + - {fileID: 382090521} + - {fileID: 625500944} + - {fileID: 1680143324} + - {fileID: 652983085} + - {fileID: 1899920726} + - {fileID: 1910169630} + - {fileID: 681807406} + - {fileID: 2076377252} + - {fileID: 129545390} + - {fileID: 1778580716} diff --git a/SyncTexture.cs b/SyncTexture.cs index 2036e31..ea2b3b1 100644 --- a/SyncTexture.cs +++ b/SyncTexture.cs @@ -1,26 +1,44 @@ using JetBrains.Annotations; -using System; using UdonSharp; using UnityEngine; using VRC.SDKBase; -using VRC.Udon; using VRC.Udon.Common; namespace net.narazaka.vrchat.sync_texture { public abstract class SyncTexture : SyncTextureBase { + // cf. https://creators.vrchat.com/worlds/udon/networking/network-details + /// + /// Udon scripts with manual sync are limited to roughly 64690 bytes per serialization. + /// + public const int MaxBulkBytesPerSerialization = 64690; + /// + /// Udon scripts can send out about 11 kilobytes per second. + /// + public const int MaxBulkBytesPerSecond = 11264; // 11 * 1024; + + /// + /// bulk send line count. + /// + /// 0: auto calculate by network spec per second + /// -1: auto calculate by network spec per serialization + /// [SerializeField] - public int BulkCount = 5000; + public int BulkLineCount = 0; + /// + /// rate of network spec. + /// + /// used when BulkLineCount is 0 or -1 + /// [SerializeField] - public float SyncInterval = 1f; + public float BulkRateOfNetworkSpec = 0.8f; [SerializeField] - public bool ShowProgress = true; + public float SyncInterval = 1f; [SerializeField] public bool PrepareCallbackAsync; - [UdonSynced] - short SyncIndex = -1; + protected short SyncIndex = -1; // line index bool Prepareing; @@ -33,29 +51,47 @@ public float Progress get { if (SyncIndex < 0) return 0f; - var dataLen = Width * Height * PackUnitLength; - return (float)SyncIndex * BulkCount / dataLen; + return (float)SyncIndex * BulkUnitCount / AllUnitCount; } } + [PublicAPI] + public float DataLimitRatePerSerialization => (float)BulkByteCount / MaxBulkBytesPerSerialization; + + [PublicAPI] + public float DataLimitRatePerSecond => (float)BulkByteCount / MaxBulkBytesPerSecond; + + [PublicAPI] + public static int GetEffectiveBulkLineCount(int bulkLineCount, float bulkRateOfNetworkSpec, int width, int unitByteLength, int packUnitLength) => + bulkLineCount == 0 + ? (int)(MaxBulkBytesPerSecond * bulkRateOfNetworkSpec) / (width * packUnitLength * unitByteLength) + : bulkLineCount == -1 + ? (int)(MaxBulkBytesPerSerialization * bulkRateOfNetworkSpec) / (width * packUnitLength * unitByteLength) + : bulkLineCount; + [PublicAPI] + public int EffectiveBulkLineCount => GetEffectiveBulkLineCount(BulkLineCount, BulkRateOfNetworkSpec, Width, UnitByteLength, PackUnitLength); + + [PublicAPI] + int BulkPixelCount => EffectiveBulkLineCount * Width; + [PublicAPI] + int BulkUnitCount => BulkPixelCount * PackUnitLength; + [PublicAPI] + int BulkByteCount => BulkUnitCount * UnitByteLength; + + int AllUnitCount => Width * Height * PackUnitLength; + + [PublicAPI] + abstract public int UnitByteLength { get; } + abstract protected int PackUnitLength { get; } + abstract protected int Width { get; } abstract protected int Height { get; } abstract protected bool ReadingSource { get; } abstract protected void StartReadSource(); abstract protected void CancelReadSource(); - abstract protected void ApplyReceiveColors(); - abstract protected void ApplyReceiveColorsPartial(int minHeight, int height); - abstract protected int PackUnitLength { get; } - - abstract protected void InitializeSyncColors(int pixelLength); - abstract protected void InitializeSourceColors(); - abstract protected void InitializeReceiveColors(); abstract protected int SourceColorsLength { get; } - abstract protected bool ReceiveColorsIsEmpty { get; } - abstract protected bool ReceiveColorsIsValid { get; } - abstract protected void CopySourceColorsToSyncColors(int startSourceIndex, int pixelLength); - abstract protected void CopySyncColorsToReceiveColors(int startReceiveIndex); + abstract protected void SyncColors(int startSourceIndex, int pixelLength); /// /// Take ownership and send texture data to other players. @@ -63,7 +99,7 @@ public float Progress [PublicAPI] public override bool StartSync() { - if (!CanStartSync || !SyncEnabled) return false; + if (!CanStartSync) return false; Networking.SetOwner(Networking.LocalPlayer, gameObject); Callback(nameof(SyncTextureCallbackListener.OnPreSync)); if (PrepareCallbackAsync) @@ -97,7 +133,6 @@ public override bool CancelSync() Callback(nameof(SyncTextureCallbackListener.OnPrepareCancel)); } Prepareing = false; - InitializeSyncColors(0); QueueSerialization(); Debug.Log($"[SyncTexture] Send Canceled"); Callback(nameof(SyncTextureCallbackListener.OnSyncCanceled)); @@ -120,7 +155,6 @@ public void OnPrepared() public void PrepareSync() { - InitializeSourceColors(); StartReadSource(); } @@ -139,78 +173,30 @@ public void SyncNext() } ++SyncIndex; var len = SourceColorsLength; - var bulkPixelCount = BulkCount / PackUnitLength; - var startIndex = SyncIndex * bulkPixelCount; - var count = Mathf.Min(bulkPixelCount, len - startIndex); + var startIndex = SyncIndex * BulkPixelCount; + var count = Mathf.Min(BulkPixelCount, len - startIndex); if (count <= 0) { SyncIndex = -1; - InitializeSyncColors(0); QueueSerialization(); + Debug.Log($"[SyncTexture] Sent"); + Callback(nameof(SyncTextureCallbackListener.OnSyncComplete)); return; } Debug.Log($"[SyncTexture] SyncNext from height={startIndex}/{len}"); - InitializeSyncColors(count); - CopySourceColorsToSyncColors(startIndex, count); + SyncColors(startIndex, count); QueueSerialization(); } - public override void OnPostSerialization(SerializationResult result) + // called by one data callback + public void OnOneSyncDone(bool success) { if (SyncIndex == -2) { return; } - if (SyncIndex == -1) - { - Debug.Log($"[SyncTexture] Sent"); - Callback(nameof(SyncTextureCallbackListener.OnSyncComplete)); - return; - } - if (SyncIndex >= 0) - { - Callback(nameof(SyncTextureCallbackListener.OnSync)); - SendCustomEventDelayedSeconds(nameof(SyncNext), SyncInterval); - } - } - - public override void OnDeserialization() - { - if (SyncIndex < 0) - { - if (ReceiveColorsIsEmpty) return; - if (!ShowProgress) - { - ApplyReceiveColors(); - } - if (SyncIndex == -2) - { - Debug.Log($"[SyncTexture] Receive Canceled"); - Callback(nameof(SyncTextureCallbackListener.OnReceiveCanceled)); - return; - } - Debug.Log($"[SyncTexture] Received"); - Callback(nameof(SyncTextureCallbackListener.OnReceiveComplete)); - return; - } - - var packUnitLength = PackUnitLength; - if (SyncIndex == 0 || !ReceiveColorsIsValid) - { - InitializeReceiveColors(); - Callback(nameof(SyncTextureCallbackListener.OnReceiveStart)); - } - CopySyncColorsToReceiveColors(SyncIndex * BulkCount); - if (ShowProgress) - { - var minHeight = SyncIndex * BulkCount / Width / packUnitLength; - var maxHeight = Mathf.Min((SyncIndex + 1) * BulkCount / Width / packUnitLength, Height); - var height = maxHeight - minHeight; - if (height == 0) return; - Debug.Log($"[SyncTexture] Deserialized {minHeight}->{maxHeight}({height}) datalen={height * Width * packUnitLength}"); - ApplyReceiveColorsPartial(minHeight, height); - } - Callback(nameof(SyncTextureCallbackListener.OnReceive)); + Callback(nameof(SyncTextureCallbackListener.OnSync)); + SendCustomEventDelayedSeconds(nameof(SyncNext), SyncInterval); } void Callback(string eventName) @@ -226,11 +212,6 @@ void Callback(string eventName) void QueueSerialization() { - RequestSerialization(); -#if UNITY_EDITOR - OnPostSerialization(default); - OnDeserialization(); -#endif } } } diff --git a/SyncTexture2D.cs b/SyncTexture2D.cs index 93556cb..3e519f1 100644 --- a/SyncTexture2D.cs +++ b/SyncTexture2D.cs @@ -23,13 +23,10 @@ public abstract class SyncTexture2D : SyncTexture protected Color32[] SourceColors = new Color32[0]; void StoreSourceColors(Color32[] colors, int startPixelIndex) => Array.Copy(colors, 0, SourceColors, startPixelIndex, colors.Length); - abstract protected Color[] UnpackReceiveColors(); - abstract protected Color[] UnpackReceiveColorsPartial(int startReceivePixelIndex, int pixelLength); protected override bool ReadingSource => ReadIndex >= 0; protected override int Width => Source.width; protected override int Height => Source.height; - protected override void InitializeSourceColors() => SourceColors = new Color32[Width * Height]; protected override int SourceColorsLength => SourceColors.Length; protected override void StartReadSource() @@ -42,6 +39,7 @@ protected override void StartReadSource() else { ReadIndex = -1; + SourceColors = new Color32[Width * Height]; ReadPixels(); } } @@ -65,7 +63,7 @@ public override void OnAsyncGpuReadbackComplete(VRCAsyncGPUReadbackRequest reque CancelSync(); return; } - StoreSourceColors(colors, 0); + SourceColors = colors; StartSyncNext(); } @@ -95,18 +93,5 @@ public void ReadPixels() StoreSourceColors(colors32, startHeight * Source.width); SendCustomEventDelayedFrames(nameof(ReadPixels), 1); } - - protected override void ApplyReceiveColors() - { - Target.SetPixels(UnpackReceiveColors()); - Target.Apply(); - } - - protected override void ApplyReceiveColorsPartial(int minHeight, int height) - { - var colors = UnpackReceiveColorsPartial(minHeight * Width, height * Width); - Target.SetPixels(0, minHeight, Width, height, colors); - Target.Apply(); - } } } diff --git a/SyncTexture2D16.asset b/SyncTexture2D16.asset index 038be3c..8e2b3a5 100644 --- a/SyncTexture2D16.asset +++ b/SyncTexture2D16.asset @@ -19,7 +19,7 @@ MonoBehaviour: sourceCsScript: {fileID: 11500000, guid: 589a13ae5f946344da6dcbc877896c84, type: 3} scriptVersion: 2 compiledVersion: 2 - behaviourSyncMode: 4 + behaviourSyncMode: 1 hasInteractEvent: 0 scriptID: 8544422356448515794 serializationData: @@ -44,31 +44,37 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 16 + Data: 24 - Name: Entry: 7 Data: - Name: $k Entry: 1 - Data: SyncEnabled + Data: CallbackListeners - Name: $v Entry: 7 Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: SyncEnabled + Data: CallbackListeners - Name: k__BackingField Entry: 7 Data: 3|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: System.Boolean, mscorlib + Data: VRC.Udon.UdonBehaviour[], VRC.Udon - Name: Entry: 8 Data: - Name: k__BackingField - Entry: 9 - Data: 3 + Entry: 7 + Data: 4|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: UnityEngine.Component[], UnityEngine.CoreModule + - Name: + Entry: 8 + Data: - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -83,16 +89,10 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 4|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 2 - - Name: - Entry: 7 - Data: 5|JetBrains.Annotations.PublicAPIAttribute, UnityEngine.CoreModule - - Name: - Entry: 8 - Data: + Data: 1 - Name: Entry: 7 Data: 6|UnityEngine.SerializeField, UnityEngine.CoreModule @@ -116,31 +116,25 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: CallbackListeners + Data: ReceiveEnabled - Name: $v Entry: 7 Data: 7|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: CallbackListeners + Data: ReceiveEnabled - Name: k__BackingField Entry: 7 Data: 8|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: VRC.Udon.UdonBehaviour[], VRC.Udon + Data: System.Boolean, mscorlib - Name: Entry: 8 Data: - Name: k__BackingField - Entry: 7 - Data: 9|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: UnityEngine.Component[], UnityEngine.CoreModule - - Name: - Entry: 8 - Data: + Entry: 9 + Data: 8 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -155,13 +149,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 10|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 11|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 10|JetBrains.Annotations.PublicAPIAttribute, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -182,16 +176,16 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: BulkCount + Data: BulkLineCount - Name: $v Entry: 7 - Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 11|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: BulkCount + Data: BulkLineCount - Name: k__BackingField Entry: 7 - Data: 13|System.RuntimeType, mscorlib + Data: 12|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Int32, mscorlib @@ -200,7 +194,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 13 + Data: 12 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -215,13 +209,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 14|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 13|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 15|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 14|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -242,16 +236,16 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: SyncInterval + Data: BulkRateOfNetworkSpec - Name: $v Entry: 7 - Data: 16|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 15|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: SyncInterval + Data: BulkRateOfNetworkSpec - Name: k__BackingField Entry: 7 - Data: 17|System.RuntimeType, mscorlib + Data: 16|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Single, mscorlib @@ -260,7 +254,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 17 + Data: 16 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -275,13 +269,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 18|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 17|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 19|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 18|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -302,19 +296,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: ShowProgress + Data: SyncInterval - Name: $v Entry: 7 - Data: 20|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 19|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: ShowProgress + Data: SyncInterval - Name: k__BackingField Entry: 9 - Data: 3 + Data: 16 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 16 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -329,13 +323,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 21|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 20|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 22|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 21|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -359,16 +353,16 @@ MonoBehaviour: Data: PrepareCallbackAsync - Name: $v Entry: 7 - Data: 23|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 22|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: PrepareCallbackAsync - Name: k__BackingField Entry: 9 - Data: 3 + Data: 8 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 8 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -383,13 +377,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 24|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 23|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 25|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 24|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -413,13 +407,13 @@ MonoBehaviour: Data: SyncIndex - Name: $v Entry: 7 - Data: 26|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 25|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: SyncIndex - Name: k__BackingField Entry: 7 - Data: 27|System.RuntimeType, mscorlib + Data: 26|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Int16, mscorlib @@ -428,13 +422,13 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 27 + Data: 26 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 3 - Data: 1 + Entry: 6 + Data: - Name: Entry: 8 Data: @@ -443,16 +437,10 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 28|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 27|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 1 - - Name: - Entry: 7 - Data: 29|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - - Name: - Entry: 8 - Data: + Data: 0 - Name: Entry: 13 Data: @@ -473,16 +461,16 @@ MonoBehaviour: Data: Prepareing - Name: $v Entry: 7 - Data: 30|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 28|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: Prepareing - Name: k__BackingField Entry: 9 - Data: 3 + Data: 8 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 8 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -497,7 +485,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 31|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 29|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -521,13 +509,13 @@ MonoBehaviour: Data: Source - Name: $v Entry: 7 - Data: 32|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 30|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: Source - Name: k__BackingField Entry: 7 - Data: 33|System.RuntimeType, mscorlib + Data: 31|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Texture, UnityEngine.CoreModule @@ -536,7 +524,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 33 + Data: 31 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -551,13 +539,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 34|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 32|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 35|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 33|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -581,13 +569,13 @@ MonoBehaviour: Data: Target - Name: $v Entry: 7 - Data: 36|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 34|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: Target - Name: k__BackingField Entry: 7 - Data: 37|System.RuntimeType, mscorlib + Data: 35|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Texture2D, UnityEngine.CoreModule @@ -596,7 +584,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 37 + Data: 35 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -611,13 +599,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 38|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 36|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 39|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 37|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -641,16 +629,16 @@ MonoBehaviour: Data: GetPixelsBulkCount - Name: $v Entry: 7 - Data: 40|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 38|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: GetPixelsBulkCount - Name: k__BackingField Entry: 9 - Data: 13 + Data: 12 - Name: k__BackingField Entry: 9 - Data: 13 + Data: 12 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -665,13 +653,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 41|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 39|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 42|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 40|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -695,16 +683,16 @@ MonoBehaviour: Data: ReadIndex - Name: $v Entry: 7 - Data: 43|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 41|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: ReadIndex - Name: k__BackingField Entry: 9 - Data: 13 + Data: 12 - Name: k__BackingField Entry: 9 - Data: 13 + Data: 12 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -719,7 +707,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 44|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 42|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -743,13 +731,13 @@ MonoBehaviour: Data: SourceColors - Name: $v Entry: 7 - Data: 45|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 43|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: SourceColors - Name: k__BackingField Entry: 7 - Data: 46|System.RuntimeType, mscorlib + Data: 44|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Color32[], UnityEngine.CoreModule @@ -758,7 +746,55 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 46 + Data: 44 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 45|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: packPixelOffset + - Name: $v + Entry: 7 + Data: 46|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: packPixelOffset + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -794,16 +830,310 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: ColorEncoder + Data: startSourceIndex - Name: $v Entry: 7 Data: 48|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: startSourceIndex + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 49|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: pixelLength + - Name: $v + Entry: 7 + Data: 50|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: pixelLength + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 51|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: lineIndexes + - Name: $v + Entry: 7 + Data: 52|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: lineIndexes + - Name: k__BackingField + Entry: 7 + Data: 53|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.Int32[], mscorlib + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 53 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 54|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: dataWidth + - Name: $v + Entry: 7 + Data: 55|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: dataWidth + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 56|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: dataHeight + - Name: $v + Entry: 7 + Data: 57|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: dataHeight + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 58|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: dataUnitByteLength + - Name: $v + Entry: 7 + Data: 59|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: dataUnitByteLength + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 60|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: ColorEncoder + - Name: $v + Entry: 7 + Data: 61|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: ColorEncoder - Name: k__BackingField Entry: 7 - Data: 49|System.RuntimeType, mscorlib + Data: 62|System.RuntimeType, mscorlib - Name: Entry: 1 Data: net.narazaka.vrchat.sync_texture.ColorEncoder16, SyncTexture @@ -812,7 +1142,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 7 - Data: 50|System.RuntimeType, mscorlib + Data: 63|System.RuntimeType, mscorlib - Name: Entry: 1 Data: VRC.Udon.UdonBehaviour, VRC.Udon @@ -833,13 +1163,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 51|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 64|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 52|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 65|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -860,46 +1190,46 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: SyncColors + Data: DataList - Name: $v Entry: 7 - Data: 53|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 66|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: SyncColors + Data: DataList - Name: k__BackingField Entry: 7 - Data: 54|System.RuntimeType, mscorlib + Data: 67|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: System.UInt16[], mscorlib + Data: net.narazaka.vrchat.sync_texture.SyncTextureData16[], SyncTexture - Name: Entry: 8 Data: - Name: k__BackingField Entry: 9 - Data: 54 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 3 - Data: 1 + Entry: 6 + Data: - Name: Entry: 8 Data: - Name: k__BackingField Entry: 5 - Data: false + Data: true - Name: _fieldAttributes Entry: 7 - Data: 55|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 68|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 56|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + Data: 69|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -920,19 +1250,73 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: ReceiveColors + Data: sendData - Name: $v Entry: 7 - Data: 57|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 70|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: ReceiveColors + Data: sendData - Name: k__BackingField + Entry: 7 + Data: 71|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.UInt16[], mscorlib + - Name: + Entry: 8 + Data: + - Name: k__BackingField Entry: 9 - Data: 54 + Data: 71 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 72|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: data + - Name: $v + Entry: 7 + Data: 73|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: data + - Name: k__BackingField + Entry: 9 + Data: 71 - Name: k__BackingField Entry: 9 - Data: 54 + Data: 71 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -947,7 +1331,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 58|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 74|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 diff --git a/SyncTexture2D16.cs b/SyncTexture2D16.cs index 2ddc217..bd81e9e 100644 --- a/SyncTexture2D16.cs +++ b/SyncTexture2D16.cs @@ -4,23 +4,159 @@ namespace net.narazaka.vrchat.sync_texture { - [UdonBehaviourSyncMode(BehaviourSyncMode.Manual)] - public class SyncTexture2D16 : SyncTexture2D + [UdonBehaviourSyncMode(BehaviourSyncMode.None)] + public class SyncTexture2D16 : SyncTexture2DTyped { [SerializeField] public ColorEncoder16 ColorEncoder; - [UdonSynced] - ushort[] SyncColors; - ushort[] ReceiveColors = new ushort[0]; + [SerializeField] + SyncTextureData16[] DataList; + public override int UnitByteLength => 2; protected override int PackUnitLength => ColorEncoder.PackUnitLength; - protected override Color[] UnpackReceiveColors() => ColorEncoder.Unpack(ReceiveColors); - protected override Color[] UnpackReceiveColorsPartial(int startReceivePixelIndex, int pixelLength) => ColorEncoder.Unpack(ReceiveColors, startReceivePixelIndex, new Color[pixelLength], 0, pixelLength); - protected override void InitializeSyncColors(int pixelLength) => SyncColors = new ushort[pixelLength * PackUnitLength]; - protected override void InitializeReceiveColors() => ReceiveColors = new ushort[PackUnitLength * Width * Height]; - protected override bool ReceiveColorsIsEmpty => ReceiveColors == null || ReceiveColors.Length == 0; - protected override bool ReceiveColorsIsValid => ReceiveColors != null && ReceiveColors.Length == PackUnitLength * Width * Height; - protected override void CopySourceColorsToSyncColors(int startSourceIndex, int pixelLength) => ColorEncoder.Pack(SourceColors, startSourceIndex, SyncColors, 0, pixelLength); - protected override void CopySyncColorsToReceiveColors(int startReceiveIndex) => Array.Copy(SyncColors, 0, ReceiveColors, startReceiveIndex, SyncColors.Length); + + ushort[] sendData; + + protected override void InitializeSendData(int pixelLength) + { + sendData = new ushort[pixelLength * PackUnitLength]; + } + + protected override void PackColorsPartial(int startColorIndex, int startPixelIndex, int pixelLength) + { + ColorEncoder.Pack(SourceColors, startColorIndex, sendData, startPixelIndex, pixelLength); + } + + protected override void DoSyncColors() + { + DataList[SyncIndex].Send(sendData); +#if UNITY_EDITOR + DataList[SyncIndex].OnDeserialization(); + DataList[SyncIndex].OnPostSerialization(new VRC.Udon.Common.SerializationResult(true, 1)); +#endif + } + + ushort[] data = new ushort[0]; + + public void ApplyReceiveColorsPartial(SyncTextureData16 data) + { + if (!ReceiveEnabled) return; + var syncIndex = Array.IndexOf(DataList, data); + if (syncIndex == -1) return; + var minHeight = syncIndex * EffectiveBulkLineCount; + var height = Mathf.Min(EffectiveBulkLineCount, Height - minHeight); + var toCall = linesEmpty; + EnsureData(); + PushLines(minHeight, height); + PushData(data.Data); + if (toCall) + { + ApplyReceiveColorsPartialLine(); + } + } + + protected override Color[] UnpackLineColors(int index) => ColorEncoder.Unpack(data, index * Width, Width); + + protected void PushData(ushort[] pushData) + { + var newData = new ushort[data.Length + pushData.Length]; + data.CopyTo(newData, 0); + pushData.CopyTo(newData, data.Length); + data = newData; + } + + protected override void ShiftData(int count) + { + var newData = new ushort[data.Length - count * Width * PackUnitLength]; + Array.Copy(data, count * Width * PackUnitLength, newData, 0, newData.Length); + data = newData; + } + + protected override void ClearData() => data = new ushort[0]; + + /* + int[] lines = new int[0]; + ushort[] data = new ushort[0]; + int dataWidth; + int dataHeight; + int dataUnitByteLength; + const int MaxBulkSetPixelLineCount = 4; + + + public void ApplyReceiveColorsPartial(SyncTextureData16 data) + { + var syncIndex = Array.IndexOf(DataList, data); + if (syncIndex == -1) return; + var minHeight = syncIndex * EffectiveBulkLineCount; + var height = Mathf.Min(EffectiveBulkLineCount, Height - minHeight); + var toCall = lines.Length == 0; + EnsureData(); + PushData(data.Data, minHeight, height); + if (toCall) + { + ApplyReceiveColorsPartialLine(); + } + } + + public void ApplyReceiveColorsPartialLine() + { + EnsureData(); + if (lines.Length == 0) return; + + var count = Mathf.Min(MaxBulkSetPixelLineCount, lines.Length); + for (var i = 0; i < count; i++) + { + var minHeight = lines[i]; + var colors = ColorEncoder.Unpack(data, i * Width * PackUnitLength, Width * PackUnitLength); + Target.SetPixels(0, minHeight, Width, 1, colors); + } + Target.Apply(); + + var newLines = new int[lines.Length - count]; + Array.Copy(lines, count, newLines, 0, newLines.Length); + lines = newLines; + var newData = new ushort[data.Length - count * Width * PackUnitLength]; + Array.Copy(data, count * Width * PackUnitLength, newData, 0, newData.Length); + data = newData; + + if (lines.Length == 0) return; + + SendCustomEventDelayedFrames(nameof(ApplyReceiveColorsPartialLine), 1); + } + + void PushData(ushort[] pushData, int minHeight, int heightCount) + { + var len = lines.Length; + var newLines = new int[len + heightCount]; + lines.CopyTo(newLines, 0); + for (int i = 0; i < heightCount; i++) + { + newLines[len + i] = minHeight + i; + } + lines = newLines; + + var newData = new ushort[data.Length + pushData.Length]; + data.CopyTo(newData, 0); + pushData.CopyTo(newData, data.Length); + data = newData; + } + + void EnsureData() + { + if (dataWidth != Width || dataHeight != Height || dataUnitByteLength != UnitByteLength) + { + lines = new int[0]; + ClearData(); + } + dataWidth = Width; + dataHeight = Height; + dataUnitByteLength = UnitByteLength; + } + + void ClearData() + { + data = new ushort[0]; + } + */ } } diff --git a/SyncTexture2D8.asset b/SyncTexture2D8.asset index 55fb5f3..b8c6bee 100644 --- a/SyncTexture2D8.asset +++ b/SyncTexture2D8.asset @@ -19,7 +19,7 @@ MonoBehaviour: sourceCsScript: {fileID: 11500000, guid: 0ef6e0923206b4b4f9ac9638a02d5f33, type: 3} scriptVersion: 2 compiledVersion: 2 - behaviourSyncMode: 4 + behaviourSyncMode: 1 hasInteractEvent: 0 scriptID: 4007845635593762838 serializationData: @@ -44,31 +44,37 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 16 + Data: 24 - Name: Entry: 7 Data: - Name: $k Entry: 1 - Data: SyncEnabled + Data: CallbackListeners - Name: $v Entry: 7 Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: SyncEnabled + Data: CallbackListeners - Name: k__BackingField Entry: 7 Data: 3|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: System.Boolean, mscorlib + Data: VRC.Udon.UdonBehaviour[], VRC.Udon - Name: Entry: 8 Data: - Name: k__BackingField - Entry: 9 - Data: 3 + Entry: 7 + Data: 4|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: UnityEngine.Component[], UnityEngine.CoreModule + - Name: + Entry: 8 + Data: - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -83,16 +89,10 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 4|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 2 - - Name: - Entry: 7 - Data: 5|JetBrains.Annotations.PublicAPIAttribute, UnityEngine.CoreModule - - Name: - Entry: 8 - Data: + Data: 1 - Name: Entry: 7 Data: 6|UnityEngine.SerializeField, UnityEngine.CoreModule @@ -116,31 +116,25 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: CallbackListeners + Data: ReceiveEnabled - Name: $v Entry: 7 Data: 7|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: CallbackListeners + Data: ReceiveEnabled - Name: k__BackingField Entry: 7 Data: 8|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: VRC.Udon.UdonBehaviour[], VRC.Udon + Data: System.Boolean, mscorlib - Name: Entry: 8 Data: - Name: k__BackingField - Entry: 7 - Data: 9|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: UnityEngine.Component[], UnityEngine.CoreModule - - Name: - Entry: 8 - Data: + Entry: 9 + Data: 8 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -155,13 +149,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 10|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 11|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 10|JetBrains.Annotations.PublicAPIAttribute, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -182,16 +176,16 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: BulkCount + Data: BulkLineCount - Name: $v Entry: 7 - Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 11|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: BulkCount + Data: BulkLineCount - Name: k__BackingField Entry: 7 - Data: 13|System.RuntimeType, mscorlib + Data: 12|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Int32, mscorlib @@ -200,7 +194,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 13 + Data: 12 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -215,13 +209,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 14|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 13|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 15|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 14|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -242,16 +236,16 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: SyncInterval + Data: BulkRateOfNetworkSpec - Name: $v Entry: 7 - Data: 16|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 15|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: SyncInterval + Data: BulkRateOfNetworkSpec - Name: k__BackingField Entry: 7 - Data: 17|System.RuntimeType, mscorlib + Data: 16|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Single, mscorlib @@ -260,7 +254,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 17 + Data: 16 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -275,13 +269,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 18|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 17|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 19|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 18|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -302,19 +296,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: ShowProgress + Data: SyncInterval - Name: $v Entry: 7 - Data: 20|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 19|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: ShowProgress + Data: SyncInterval - Name: k__BackingField Entry: 9 - Data: 3 + Data: 16 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 16 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -329,13 +323,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 21|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 20|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 22|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 21|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -359,16 +353,16 @@ MonoBehaviour: Data: PrepareCallbackAsync - Name: $v Entry: 7 - Data: 23|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 22|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: PrepareCallbackAsync - Name: k__BackingField Entry: 9 - Data: 3 + Data: 8 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 8 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -383,13 +377,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 24|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 23|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 25|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 24|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -413,13 +407,13 @@ MonoBehaviour: Data: SyncIndex - Name: $v Entry: 7 - Data: 26|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 25|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: SyncIndex - Name: k__BackingField Entry: 7 - Data: 27|System.RuntimeType, mscorlib + Data: 26|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Int16, mscorlib @@ -428,13 +422,13 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 27 + Data: 26 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 3 - Data: 1 + Entry: 6 + Data: - Name: Entry: 8 Data: @@ -443,16 +437,10 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 28|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 27|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 1 - - Name: - Entry: 7 - Data: 29|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - - Name: - Entry: 8 - Data: + Data: 0 - Name: Entry: 13 Data: @@ -473,16 +461,16 @@ MonoBehaviour: Data: Prepareing - Name: $v Entry: 7 - Data: 30|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 28|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: Prepareing - Name: k__BackingField Entry: 9 - Data: 3 + Data: 8 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 8 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -497,7 +485,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 31|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 29|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -521,13 +509,13 @@ MonoBehaviour: Data: Source - Name: $v Entry: 7 - Data: 32|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 30|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: Source - Name: k__BackingField Entry: 7 - Data: 33|System.RuntimeType, mscorlib + Data: 31|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Texture, UnityEngine.CoreModule @@ -536,7 +524,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 33 + Data: 31 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -551,13 +539,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 34|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 32|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 35|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 33|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -581,13 +569,13 @@ MonoBehaviour: Data: Target - Name: $v Entry: 7 - Data: 36|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 34|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: Target - Name: k__BackingField Entry: 7 - Data: 37|System.RuntimeType, mscorlib + Data: 35|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Texture2D, UnityEngine.CoreModule @@ -596,7 +584,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 37 + Data: 35 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -611,13 +599,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 38|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 36|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 39|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 37|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -641,16 +629,16 @@ MonoBehaviour: Data: GetPixelsBulkCount - Name: $v Entry: 7 - Data: 40|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 38|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: GetPixelsBulkCount - Name: k__BackingField Entry: 9 - Data: 13 + Data: 12 - Name: k__BackingField Entry: 9 - Data: 13 + Data: 12 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -665,13 +653,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 41|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 39|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 42|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 40|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -695,16 +683,16 @@ MonoBehaviour: Data: ReadIndex - Name: $v Entry: 7 - Data: 43|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 41|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: ReadIndex - Name: k__BackingField Entry: 9 - Data: 13 + Data: 12 - Name: k__BackingField Entry: 9 - Data: 13 + Data: 12 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -719,7 +707,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 44|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 42|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -743,13 +731,13 @@ MonoBehaviour: Data: SourceColors - Name: $v Entry: 7 - Data: 45|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 43|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: SourceColors - Name: k__BackingField Entry: 7 - Data: 46|System.RuntimeType, mscorlib + Data: 44|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Color32[], UnityEngine.CoreModule @@ -758,7 +746,55 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 46 + Data: 44 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 45|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: packPixelOffset + - Name: $v + Entry: 7 + Data: 46|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: packPixelOffset + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -794,16 +830,310 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: ColorEncoder + Data: startSourceIndex - Name: $v Entry: 7 Data: 48|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: startSourceIndex + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 49|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: pixelLength + - Name: $v + Entry: 7 + Data: 50|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: pixelLength + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 51|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: lineIndexes + - Name: $v + Entry: 7 + Data: 52|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: lineIndexes + - Name: k__BackingField + Entry: 7 + Data: 53|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.Int32[], mscorlib + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 53 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 54|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: dataWidth + - Name: $v + Entry: 7 + Data: 55|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: dataWidth + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 56|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: dataHeight + - Name: $v + Entry: 7 + Data: 57|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: dataHeight + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 58|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: dataUnitByteLength + - Name: $v + Entry: 7 + Data: 59|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: dataUnitByteLength + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 60|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: ColorEncoder + - Name: $v + Entry: 7 + Data: 61|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: ColorEncoder - Name: k__BackingField Entry: 7 - Data: 49|System.RuntimeType, mscorlib + Data: 62|System.RuntimeType, mscorlib - Name: Entry: 1 Data: net.narazaka.vrchat.sync_texture.ColorEncoder8, SyncTexture @@ -812,7 +1142,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 7 - Data: 50|System.RuntimeType, mscorlib + Data: 63|System.RuntimeType, mscorlib - Name: Entry: 1 Data: VRC.Udon.UdonBehaviour, VRC.Udon @@ -833,13 +1163,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 51|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 64|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 52|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 65|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -860,46 +1190,46 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: SyncColors + Data: DataList - Name: $v Entry: 7 - Data: 53|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 66|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: SyncColors + Data: DataList - Name: k__BackingField Entry: 7 - Data: 54|System.RuntimeType, mscorlib + Data: 67|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: System.Byte[], mscorlib + Data: net.narazaka.vrchat.sync_texture.SyncTextureData8[], SyncTexture - Name: Entry: 8 Data: - Name: k__BackingField Entry: 9 - Data: 54 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 3 - Data: 1 + Entry: 6 + Data: - Name: Entry: 8 Data: - Name: k__BackingField Entry: 5 - Data: false + Data: true - Name: _fieldAttributes Entry: 7 - Data: 55|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 68|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 56|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + Data: 69|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -920,19 +1250,73 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: ReceiveColors + Data: sendData - Name: $v Entry: 7 - Data: 57|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 70|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: ReceiveColors + Data: sendData - Name: k__BackingField + Entry: 7 + Data: 71|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.Byte[], mscorlib + - Name: + Entry: 8 + Data: + - Name: k__BackingField Entry: 9 - Data: 54 + Data: 71 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 72|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: data + - Name: $v + Entry: 7 + Data: 73|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: data + - Name: k__BackingField + Entry: 9 + Data: 71 - Name: k__BackingField Entry: 9 - Data: 54 + Data: 71 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -947,7 +1331,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 58|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 74|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 diff --git a/SyncTexture2D8.cs b/SyncTexture2D8.cs index 681788a..ff8e0d8 100644 --- a/SyncTexture2D8.cs +++ b/SyncTexture2D8.cs @@ -4,23 +4,74 @@ namespace net.narazaka.vrchat.sync_texture { - [UdonBehaviourSyncMode(BehaviourSyncMode.Manual)] - public class SyncTexture2D8 : SyncTexture2D + [UdonBehaviourSyncMode(BehaviourSyncMode.None)] + public class SyncTexture2D8 : SyncTexture2DTyped { [SerializeField] public ColorEncoder8 ColorEncoder; - [UdonSynced] - byte[] SyncColors; - byte[] ReceiveColors = new byte[0]; + [SerializeField] + SyncTextureData8[] DataList; + public override int UnitByteLength => 1; protected override int PackUnitLength => ColorEncoder.PackUnitLength; - protected override Color[] UnpackReceiveColors() => ColorEncoder.Unpack(ReceiveColors); - protected override Color[] UnpackReceiveColorsPartial(int startReceivePixelIndex, int pixelLength) => ColorEncoder.Unpack(ReceiveColors, startReceivePixelIndex, new Color[pixelLength], 0, pixelLength); - protected override void InitializeSyncColors(int pixelLength) => SyncColors = new byte[pixelLength * PackUnitLength]; - protected override void InitializeReceiveColors() => ReceiveColors = new byte[PackUnitLength * Width * Height]; - protected override bool ReceiveColorsIsEmpty => ReceiveColors == null || ReceiveColors.Length == 0; - protected override bool ReceiveColorsIsValid => ReceiveColors != null && ReceiveColors.Length == PackUnitLength * Width * Height; - protected override void CopySourceColorsToSyncColors(int startSourceIndex, int pixelLength) => ColorEncoder.Pack(SourceColors, startSourceIndex, SyncColors, 0, pixelLength); - protected override void CopySyncColorsToReceiveColors(int startReceiveIndex) => Array.Copy(SyncColors, 0, ReceiveColors, startReceiveIndex, SyncColors.Length); + + byte[] sendData; + + protected override void InitializeSendData(int pixelLength) + { + sendData = new byte[pixelLength * PackUnitLength]; + } + + protected override void PackColorsPartial(int startColorIndex, int startPixelIndex, int pixelLength) + { + ColorEncoder.Pack(SourceColors, startColorIndex, sendData, startPixelIndex, pixelLength); + } + + protected override void DoSyncColors() + { + DataList[SyncIndex].Send(sendData); +#if UNITY_EDITOR + DataList[SyncIndex].OnDeserialization(); + DataList[SyncIndex].OnPostSerialization(new VRC.Udon.Common.SerializationResult(true, 1)); +#endif + } + + byte[] data = new byte[0]; + + public void ApplyReceiveColorsPartial(SyncTextureData8 data) + { + if (!ReceiveEnabled) return; + var syncIndex = Array.IndexOf(DataList, data); + if (syncIndex == -1) return; + var minHeight = syncIndex * EffectiveBulkLineCount; + var height = Mathf.Min(EffectiveBulkLineCount, Height - minHeight); + var toCall = linesEmpty; + EnsureData(); + PushLines(minHeight, height); + PushData(data.Data); + if (toCall) + { + ApplyReceiveColorsPartialLine(); + } + } + + protected override Color[] UnpackLineColors(int index) => ColorEncoder.Unpack(data, index * Width, Width); + + protected void PushData(byte[] pushData) + { + var newData = new byte[data.Length + pushData.Length]; + data.CopyTo(newData, 0); + pushData.CopyTo(newData, data.Length); + data = newData; + } + + protected override void ShiftData(int count) + { + var newData = new byte[data.Length - count * Width * PackUnitLength]; + Array.Copy(data, count * Width * PackUnitLength, newData, 0, newData.Length); + data = newData; + } + + protected override void ClearData() => data = new byte[0]; } } diff --git a/SyncTexture2DTyped.cs b/SyncTexture2DTyped.cs new file mode 100644 index 0000000..c8194c4 --- /dev/null +++ b/SyncTexture2DTyped.cs @@ -0,0 +1,105 @@ +using System; +using UnityEngine; + +namespace net.narazaka.vrchat.sync_texture +{ + public abstract class SyncTexture2DTyped : SyncTexture2D + { + protected abstract void InitializeSendData(int pixelLength); + protected abstract void PackColorsPartial(int startColorIndex, int startPixelIndex, int pixelLength); + protected abstract void DoSyncColors(); + + int packPixelOffset = -1; + int startSourceIndex; + int pixelLength; + const int MaxBulkPackPixelCount = 4096; + + protected override void SyncColors(int startSourceIndex, int pixelLength) + { + InitializeSendData(pixelLength); + packPixelOffset = 0; + this.startSourceIndex = startSourceIndex; + this.pixelLength = pixelLength; + PackColorsPartial(); + } + + public void PackColorsPartial() + { + var len = Mathf.Min(MaxBulkPackPixelCount, pixelLength - packPixelOffset); + PackColorsPartial(startSourceIndex + packPixelOffset, packPixelOffset, len); + packPixelOffset += len; + if (packPixelOffset < pixelLength) + { + SendCustomEventDelayedFrames(nameof(PackColorsPartial), 1); + } + else + { + DoSyncColors(); + } + } + + protected abstract void ClearData(); + protected abstract void ShiftData(int count); + protected abstract Color[] UnpackLineColors(int index); + + int[] lineIndexes = new int[0]; + protected bool linesEmpty => lineIndexes.Length == 0; + int dataWidth; + int dataHeight; + int dataUnitByteLength; + const int MaxBulkSetPixelLineCount = 4; + + public void ApplyReceiveColorsPartialLine() + { + EnsureData(); + if (linesEmpty) return; + + var count = Mathf.Min(MaxBulkSetPixelLineCount, lineIndexes.Length); + for (var i = 0; i < count; i++) + { + var minHeight = lineIndexes[i]; + var colors = UnpackLineColors(i); + Target.SetPixels(0, minHeight, Width, 1, colors); + } + Target.Apply(); + + ShiftLines(count); + ShiftData(count); + + if (linesEmpty) return; + + SendCustomEventDelayedFrames(nameof(ApplyReceiveColorsPartialLine), 1); + } + + protected void PushLines(int minHeight, int heightCount) + { + var len = lineIndexes.Length; + var newLines = new int[len + heightCount]; + lineIndexes.CopyTo(newLines, 0); + for (int i = 0; i < heightCount; i++) + { + newLines[len + i] = minHeight + i; + } + lineIndexes = newLines; + } + + void ShiftLines(int count) + { + var newLines = new int[lineIndexes.Length - count]; + Array.Copy(lineIndexes, count, newLines, 0, newLines.Length); + lineIndexes = newLines; + } + + protected void EnsureData() + { + if (dataWidth != Width || dataHeight != Height || dataUnitByteLength != UnitByteLength) + { + lineIndexes = new int[0]; + ClearData(); + } + dataWidth = Width; + dataHeight = Height; + dataUnitByteLength = UnitByteLength; + } + } +} diff --git a/SyncTexture2DTyped.cs.meta b/SyncTexture2DTyped.cs.meta new file mode 100644 index 0000000..0770f99 --- /dev/null +++ b/SyncTexture2DTyped.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7f9e21b3ceee4cf46a8cb99db49d1798 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/SyncTextureBase.cs b/SyncTextureBase.cs index 0666d52..bcc29eb 100644 --- a/SyncTextureBase.cs +++ b/SyncTextureBase.cs @@ -10,19 +10,16 @@ namespace net.narazaka.vrchat.sync_texture { public abstract class SyncTextureBase : UdonSharpBehaviour { - /// - /// If false, do nothing. - /// - [PublicAPI] - [SerializeField] - public bool SyncEnabled = true; [SerializeField] public UdonBehaviour[] CallbackListeners; /// - /// Take ownership and send texture data to other players. - /// - /// If not SyncEnabled, do nothing. + /// receive texture data from other players. + /// + [PublicAPI] + public bool ReceiveEnabled = true; + /// + /// send texture data to other players. /// /// /// actually started or not @@ -30,7 +27,7 @@ public abstract class SyncTextureBase : UdonSharpBehaviour [PublicAPI] public abstract bool StartSync(); /// - /// Take ownership and stop sending. + /// stop sending. /// /// /// actually canceled or not @@ -38,7 +35,7 @@ public abstract class SyncTextureBase : UdonSharpBehaviour [PublicAPI] public abstract bool CancelSync(); /// - /// Take ownership and force start sending. + /// force start sending. /// /// If already sending, abort and restart sending. /// If not SyncEnabled, do nothing. diff --git a/SyncTextureData.cs b/SyncTextureData.cs new file mode 100644 index 0000000..56ebd22 --- /dev/null +++ b/SyncTextureData.cs @@ -0,0 +1,14 @@ +using System.Collections; +using System.Collections.Generic; +using UdonSharp; +using UnityEngine; +using VRC.Udon; + +namespace net.narazaka.vrchat.sync_texture +{ + [DisallowMultipleComponent] + public abstract class SyncTextureData : UdonSharpBehaviour + { + + } +} diff --git a/SyncTextureData.cs.meta b/SyncTextureData.cs.meta new file mode 100644 index 0000000..4ffa167 --- /dev/null +++ b/SyncTextureData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b589c7a872a222a4287ca57140352a48 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/SyncTextureData16.asset b/SyncTextureData16.asset new file mode 100644 index 0000000..6fbba6d --- /dev/null +++ b/SyncTextureData16.asset @@ -0,0 +1,185 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} + m_Name: SyncTextureData16 + m_EditorClassIdentifier: + serializedUdonProgramAsset: {fileID: 11400000, guid: 8e32a0b20ad8af94199b0b57f57cd8b3, + type: 2} + udonAssembly: + assemblyError: + sourceCsScript: {fileID: 11500000, guid: 545f9c9b3331aae47a7eafd3ce1a0f7c, type: 3} + scriptVersion: 2 + compiledVersion: 2 + behaviourSyncMode: 4 + hasInteractEvent: 0 + scriptID: 3376368633524566412 + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: + - Name: fieldDefinitions + Entry: 7 + Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[UdonSharp.Compiler.FieldDefinition, + UdonSharp.Editor]], mscorlib + - Name: comparer + Entry: 7 + Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String, + mscorlib]], mscorlib + - Name: + Entry: 8 + Data: + - Name: + Entry: 12 + Data: 2 + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: SyncTexture2D + - Name: $v + Entry: 7 + Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: SyncTexture2D + - Name: k__BackingField + Entry: 7 + Data: 3|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: net.narazaka.vrchat.sync_texture.SyncTexture2D16, SyncTexture + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 7 + Data: 4|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: VRC.Udon.UdonBehaviour, VRC.Udon + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 6|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: Data + - Name: $v + Entry: 7 + Data: 7|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: Data + - Name: k__BackingField + Entry: 7 + Data: 8|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.UInt16[], mscorlib + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 8 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 3 + Data: 1 + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 2 + - Name: + Entry: 7 + Data: 10|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: 11|System.NonSerializedAttribute, mscorlib + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: diff --git a/SyncTextureData16.asset.meta b/SyncTextureData16.asset.meta new file mode 100644 index 0000000..9ed497c --- /dev/null +++ b/SyncTextureData16.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a5caf9f9fb283cc4dbcc1aa6d61028e0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/SyncTextureData16.cs b/SyncTextureData16.cs new file mode 100644 index 0000000..e7b6b9f --- /dev/null +++ b/SyncTextureData16.cs @@ -0,0 +1,34 @@ +using System; +using UdonSharp; +using UnityEngine; +using VRC.Udon.Common; + +namespace net.narazaka.vrchat.sync_texture +{ + [UdonBehaviourSyncMode(BehaviourSyncMode.Manual)] + public class SyncTextureData16 : SyncTextureData + { + [SerializeField] + SyncTexture2D16 SyncTexture2D; + [UdonSynced, NonSerialized] + public ushort[] Data = new ushort[0]; + + public void Send(ushort[] data) + { + Data = data; + RequestSerialization(); + } + + public override void OnPostSerialization(SerializationResult result) + { + SyncTexture2D.OnOneSyncDone(result.success); + } + + public override void OnDeserialization() + { + if (Data == null || Data.Length == 0) return; + + SyncTexture2D.ApplyReceiveColorsPartial(this); + } + } +} diff --git a/SyncTextureData16.cs.meta b/SyncTextureData16.cs.meta new file mode 100644 index 0000000..06b6a53 --- /dev/null +++ b/SyncTextureData16.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 545f9c9b3331aae47a7eafd3ce1a0f7c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/SyncTextureData8.asset b/SyncTextureData8.asset new file mode 100644 index 0000000..f4040eb --- /dev/null +++ b/SyncTextureData8.asset @@ -0,0 +1,185 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} + m_Name: SyncTextureData8 + m_EditorClassIdentifier: + serializedUdonProgramAsset: {fileID: 11400000, guid: e14ad8bbbe317f74e8b050f0bbabd55a, + type: 2} + udonAssembly: + assemblyError: + sourceCsScript: {fileID: 11500000, guid: 3f6f16f5f2033874bb6b117cc9d093a3, type: 3} + scriptVersion: 2 + compiledVersion: 2 + behaviourSyncMode: 4 + hasInteractEvent: 0 + scriptID: -3639462960171375529 + serializationData: + SerializedFormat: 2 + SerializedBytes: + ReferencedUnityObjects: [] + SerializedBytesString: + Prefab: {fileID: 0} + PrefabModificationsReferencedUnityObjects: [] + PrefabModifications: [] + SerializationNodes: + - Name: fieldDefinitions + Entry: 7 + Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[UdonSharp.Compiler.FieldDefinition, + UdonSharp.Editor]], mscorlib + - Name: comparer + Entry: 7 + Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String, + mscorlib]], mscorlib + - Name: + Entry: 8 + Data: + - Name: + Entry: 12 + Data: 2 + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: SyncTexture2D + - Name: $v + Entry: 7 + Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: SyncTexture2D + - Name: k__BackingField + Entry: 7 + Data: 3|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: net.narazaka.vrchat.sync_texture.SyncTexture2D8, SyncTexture + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 7 + Data: 4|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: VRC.Udon.UdonBehaviour, VRC.Udon + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 6|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: Data + - Name: $v + Entry: 7 + Data: 7|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: Data + - Name: k__BackingField + Entry: 7 + Data: 8|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.Byte[], mscorlib + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 8 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 3 + Data: 1 + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 2 + - Name: + Entry: 7 + Data: 10|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: 11|System.NonSerializedAttribute, mscorlib + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: diff --git a/SyncTextureData8.asset.meta b/SyncTextureData8.asset.meta new file mode 100644 index 0000000..e39975f --- /dev/null +++ b/SyncTextureData8.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e04f11ced1e2b264b8544cc31e39e589 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/SyncTextureData8.cs b/SyncTextureData8.cs new file mode 100644 index 0000000..36c0b03 --- /dev/null +++ b/SyncTextureData8.cs @@ -0,0 +1,36 @@ +using System; +using UdonSharp; +using UnityEngine; +using VRC.SDKBase; +using VRC.Udon; +using VRC.Udon.Common; + +namespace net.narazaka.vrchat.sync_texture +{ + [UdonBehaviourSyncMode(BehaviourSyncMode.Manual)] + public class SyncTextureData8 : SyncTextureData + { + [SerializeField] + SyncTexture2D8 SyncTexture2D; + [UdonSynced, NonSerialized] + public byte[] Data = new byte[0]; + + public void Send(byte[] data) + { + Data = data; + RequestSerialization(); + } + + public override void OnPostSerialization(SerializationResult result) + { + SyncTexture2D.OnOneSyncDone(result.success); + } + + public override void OnDeserialization() + { + if (Data == null || Data.Length == 0) return; + + SyncTexture2D.ApplyReceiveColorsPartial(this); + } + } +} diff --git a/SyncTextureData8.cs.meta b/SyncTextureData8.cs.meta new file mode 100644 index 0000000..3e2e5de --- /dev/null +++ b/SyncTextureData8.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3f6f16f5f2033874bb6b117cc9d093a3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/SyncTextureManager.asset b/SyncTextureManager.asset index 994564d..bb27b39 100644 --- a/SyncTextureManager.asset +++ b/SyncTextureManager.asset @@ -44,7 +44,7 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 3 + Data: 2 - Name: Entry: 7 Data: @@ -116,19 +116,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: SendingIndex + Data: SendIndexQueue - Name: $v Entry: 7 Data: 7|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: SendingIndex + Data: SendIndexQueue - Name: k__BackingField Entry: 7 Data: 8|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: System.SByte, mscorlib + Data: System.SByte[], mscorlib - Name: Entry: 8 Data: @@ -171,66 +171,6 @@ MonoBehaviour: - Name: Entry: 8 Data: - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 1 - Data: Resend - - Name: $v - Entry: 7 - Data: 11|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - - Name: k__BackingField - Entry: 1 - Data: Resend - - Name: k__BackingField - Entry: 7 - Data: 12|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: System.Boolean, mscorlib - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 9 - Data: 12 - - Name: k__BackingField - Entry: 7 - Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - - Name: - Entry: 3 - Data: 1 - - Name: - Entry: 8 - Data: - - Name: k__BackingField - Entry: 5 - Data: false - - Name: _fieldAttributes - Entry: 7 - Data: 13|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - - Name: - Entry: 12 - Data: 1 - - Name: - Entry: 7 - Data: 14|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - - Name: - Entry: 8 - Data: - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: - Name: Entry: 13 Data: diff --git a/SyncTextureManager.cs b/SyncTextureManager.cs index c6eb817..43afd54 100644 --- a/SyncTextureManager.cs +++ b/SyncTextureManager.cs @@ -14,84 +14,91 @@ public class SyncTextureManager : UdonSharpBehaviour [SerializeField] public SyncTextureBase[] SyncTextures; [UdonSynced] - sbyte SendingIndex = -1; - [UdonSynced] - bool Resend; + sbyte[] SendIndexQueue = new sbyte[0]; [PublicAPI] - public bool Sending => SendingIndex >= 0; + public bool Sending => SendIndexQueue.Length > 0; - [PublicAPI] - public void RequestResend() - { - Resend = true; - RequestSerialization(); - } + sbyte SendingIndex => SendIndexQueue.Length > 0 ? SendIndexQueue[0] : (sbyte)-1; + /// + /// Start sending textures. + /// + /// If you are not the owner of the object, do nothing. + /// + /// the index of SyncTexture + /// resend when exists and now sending [PublicAPI] - public void StartSyncAll(bool requestResendWhenSending = false) + public void RequestSyncTextureByIndex(int index, bool resendWhenExistsAndNowSending = true) { - if (Sending) + if (!Networking.IsOwner(gameObject)) return; + + var existIndex = System.Array.IndexOf(SendIndexQueue, index); + if (existIndex != -1) { - if (requestResendWhenSending) + if (existIndex == 0 && resendWhenExistsAndNowSending) { - RequestResend(); + Send(); } return; } - ForceStartSyncAll(); + PushQueue((sbyte)index); + RequestSerialization(); + + if (SendIndexQueue.Length == 1) + { + Send(); + } } + /// + /// Start sending textures. + /// + /// If you are not the owner of the object, do nothing. + /// + /// the SyncTexture you want + /// resend when exists and now sending [PublicAPI] - public void ForceStartSyncAll() + public void RequestSyncTexture(SyncTextureBase syncTexture, bool resendWhenExistsAndNowSending = true) { - CancelSync(); - SendingIndex = -1; - RequestSerialization(); - SendNext(); + RequestSyncTextureByIndex(System.Array.IndexOf(SyncTextures, syncTexture), resendWhenExistsAndNowSending); } - [PublicAPI] - public void CancelSync() + void PushQueue(sbyte index) { - if (!Sending) return; - SyncTextures[SendingIndex].CancelSync(); - SendingIndex = -1; - RequestSerialization(); + var newToSendIndexes = new sbyte[SendIndexQueue.Length + 1]; + SendIndexQueue.CopyTo(newToSendIndexes, 0); + newToSendIndexes[SendIndexQueue.Length] = index; + SendIndexQueue = newToSendIndexes; } - public void SendNext() + void ShiftQueue() { - do - { - SendingIndex++; - if (SendingIndex >= SyncTextures.Length) - { - SendingIndex = -1; - if (Resend) - { - Resend = false; - StartSyncAll(); - } - RequestSerialization(); - return; - } - } - while (!SyncTextures[SendingIndex].SyncEnabled); - RequestSerialization(); - SyncTextures[SendingIndex].StartSync(); + var newToSendIndexes = new sbyte[SendIndexQueue.Length - 1]; + System.Array.Copy(SendIndexQueue, 1, newToSendIndexes, 0, newToSendIndexes.Length); + SendIndexQueue = newToSendIndexes; + } + + void Send() + { + if (!Sending) return; + + SyncTextures[SendingIndex].ForceStartSync(); } public void OnSyncComplete() { - SendNext(); + ShiftQueue(); + RequestSerialization(); + + Send(); } public override void OnOwnershipTransferred(VRCPlayerApi player) { if (!Networking.IsOwner(gameObject)) return; - if (!Sending) return; - SyncTextures[SendingIndex].ForceStartSync(); + + Send(); } } } diff --git a/SyncTexturesOnLateJoin.cs b/SyncTexturesOnLateJoin.cs deleted file mode 100644 index 94ff1ab..0000000 --- a/SyncTexturesOnLateJoin.cs +++ /dev/null @@ -1,36 +0,0 @@ - -using UdonSharp; -using UnityEngine; -using VRC.SDKBase; -using VRC.Udon; - -namespace net.narazaka.vrchat.sync_texture { - [UdonBehaviourSyncMode(BehaviourSyncMode.None)] - public class SyncTexturesOnLateJoin : UdonSharpBehaviour - { - [SerializeField] - SyncTextureManager SyncTextureManager; - [SerializeField] - bool ForceSyncOnStart; - [SerializeField] - float Delay = 8f; - - public override void OnPlayerJoined(VRCPlayerApi player) - { - if (player.isLocal) return; - SendCustomEventDelayedSeconds(nameof(StartSync), Delay); - } - - public void StartSync() - { - if (!Networking.IsOwner(SyncTextureManager.gameObject)) return; - if (ForceSyncOnStart) - { - SyncTextureManager.ForceStartSyncAll(); - } else - { - SyncTextureManager.StartSyncAll(true); - } - } - } -} From 1272a86670968f07ccce302d241840284c00baf3 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 01:47:38 +0900 Subject: [PATCH 02/31] =?UTF-8?q?=E6=95=B4=E5=82=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 13 ++----------- Samples/RequestSyncTexture.cs | 1 + SyncTexture2D16.cs | 1 + SyncTexture2D8.cs | 1 + SyncTextureData16.cs | 1 + SyncTextureData8.cs | 1 + SyncTextureManager.cs | 1 + 7 files changed, 8 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 6a6fd35..cd4ba62 100644 --- a/README.md +++ b/README.md @@ -21,21 +21,12 @@ Texture2Dを同期します。Render TextureからTexture2Dへの変換などは 基本的に他のUdonからの制御を前提にしています。 - SyncTextureManager: 順番に同期 -- SyncTexturesOnLateJoin: late joinerが来たら順番に同期を開始 ``` -// SyncTexture -bool CanStartSync; -float Progress; -void StartSync(); // take ownership and send -void ForceStartSync(); - // SyncTextureManager bool Sending; -void RequestResend(); -void StartSyncAll(bool requestResendWhenSending = false); -void ForceStartSyncAll(); -void CancelSync(); +void RequestSyncTextureByIndex(int index, bool resendWhenExistsAndNowSending = true); +void RequestSyncTexture(SyncTextureBase syncTexture, bool resendWhenExistsAndNowSending = true); ``` ## 更新履歴 diff --git a/Samples/RequestSyncTexture.cs b/Samples/RequestSyncTexture.cs index df94d59..a6f19fa 100644 --- a/Samples/RequestSyncTexture.cs +++ b/Samples/RequestSyncTexture.cs @@ -5,6 +5,7 @@ namespace net.narazaka.vrchat.sync_texture.samples { + [AddComponentMenu("")] [UdonBehaviourSyncMode(BehaviourSyncMode.None)] public class RequestSyncTexture : UdonSharpBehaviour { diff --git a/SyncTexture2D16.cs b/SyncTexture2D16.cs index bd81e9e..c65f543 100644 --- a/SyncTexture2D16.cs +++ b/SyncTexture2D16.cs @@ -4,6 +4,7 @@ namespace net.narazaka.vrchat.sync_texture { + [AddComponentMenu("Sync Texture/Sync Texture 2D16")] [UdonBehaviourSyncMode(BehaviourSyncMode.None)] public class SyncTexture2D16 : SyncTexture2DTyped { diff --git a/SyncTexture2D8.cs b/SyncTexture2D8.cs index ff8e0d8..d982748 100644 --- a/SyncTexture2D8.cs +++ b/SyncTexture2D8.cs @@ -4,6 +4,7 @@ namespace net.narazaka.vrchat.sync_texture { + [AddComponentMenu("Sync Texture/Sync Texture 2D8")] [UdonBehaviourSyncMode(BehaviourSyncMode.None)] public class SyncTexture2D8 : SyncTexture2DTyped { diff --git a/SyncTextureData16.cs b/SyncTextureData16.cs index e7b6b9f..e744aa5 100644 --- a/SyncTextureData16.cs +++ b/SyncTextureData16.cs @@ -5,6 +5,7 @@ namespace net.narazaka.vrchat.sync_texture { + [AddComponentMenu("Sync Texture/Sync Texture Data/Sync Texture Data16")] [UdonBehaviourSyncMode(BehaviourSyncMode.Manual)] public class SyncTextureData16 : SyncTextureData { diff --git a/SyncTextureData8.cs b/SyncTextureData8.cs index 36c0b03..9dfeeef 100644 --- a/SyncTextureData8.cs +++ b/SyncTextureData8.cs @@ -7,6 +7,7 @@ namespace net.narazaka.vrchat.sync_texture { + [AddComponentMenu("Sync Texture/Sync Texture Data/Sync Texture Data8")] [UdonBehaviourSyncMode(BehaviourSyncMode.Manual)] public class SyncTextureData8 : SyncTextureData { diff --git a/SyncTextureManager.cs b/SyncTextureManager.cs index 43afd54..f00e1c1 100644 --- a/SyncTextureManager.cs +++ b/SyncTextureManager.cs @@ -8,6 +8,7 @@ namespace net.narazaka.vrchat.sync_texture { + [AddComponentMenu("Sync Texture/Sync Texture Manager")] [UdonBehaviourSyncMode(BehaviourSyncMode.Manual)] public class SyncTextureManager : UdonSharpBehaviour { From 7f4cf91f6074d2cdf388fee059c8161842c09c28 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 02:46:24 +0900 Subject: [PATCH 03/31] events --- Editor/SyncTextureEditor.cs | 4 +--- SyncTexture.cs | 2 +- SyncTexture2D16.cs | 1 + SyncTexture2D8.cs | 1 + SyncTexture2DTyped.cs | 2 ++ SyncTextureCallbackListener.cs | 4 +--- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Editor/SyncTextureEditor.cs b/Editor/SyncTextureEditor.cs index e4aa79d..a519c47 100644 --- a/Editor/SyncTextureEditor.cs +++ b/Editor/SyncTextureEditor.cs @@ -210,10 +210,8 @@ public override void OnInspectorGUI() EditorGUILayout.TextField(nameof(SyncTextureCallbackListener.OnSync)); EditorGUILayout.TextField(nameof(SyncTextureCallbackListener.OnSyncComplete)); EditorGUILayout.TextField(nameof(SyncTextureCallbackListener.OnSyncCanceled)); - EditorGUILayout.TextField(nameof(SyncTextureCallbackListener.OnReceiveStart)); EditorGUILayout.TextField(nameof(SyncTextureCallbackListener.OnReceive)); - EditorGUILayout.TextField(nameof(SyncTextureCallbackListener.OnReceiveComplete)); - EditorGUILayout.TextField(nameof(SyncTextureCallbackListener.OnReceiveCanceled)); + EditorGUILayout.TextField(nameof(SyncTextureCallbackListener.OnReceiveApplied)); EditorGUILayout.HelpBox("async CallbackListener preparing should call this:", MessageType.Info); EditorGUILayout.TextField(nameof(SyncTexture.OnPrepared)); } diff --git a/SyncTexture.cs b/SyncTexture.cs index ea2b3b1..e72187b 100644 --- a/SyncTexture.cs +++ b/SyncTexture.cs @@ -199,7 +199,7 @@ public void OnOneSyncDone(bool success) SendCustomEventDelayedSeconds(nameof(SyncNext), SyncInterval); } - void Callback(string eventName) + protected void Callback(string eventName) { if (CallbackListeners != null) { diff --git a/SyncTexture2D16.cs b/SyncTexture2D16.cs index c65f543..5787cf9 100644 --- a/SyncTexture2D16.cs +++ b/SyncTexture2D16.cs @@ -41,6 +41,7 @@ protected override void DoSyncColors() public void ApplyReceiveColorsPartial(SyncTextureData16 data) { + Callback(nameof(SyncTextureCallbackListener.OnReceive)); if (!ReceiveEnabled) return; var syncIndex = Array.IndexOf(DataList, data); if (syncIndex == -1) return; diff --git a/SyncTexture2D8.cs b/SyncTexture2D8.cs index d982748..cb06641 100644 --- a/SyncTexture2D8.cs +++ b/SyncTexture2D8.cs @@ -41,6 +41,7 @@ protected override void DoSyncColors() public void ApplyReceiveColorsPartial(SyncTextureData8 data) { + Callback(nameof(SyncTextureCallbackListener.OnReceive)); if (!ReceiveEnabled) return; var syncIndex = Array.IndexOf(DataList, data); if (syncIndex == -1) return; diff --git a/SyncTexture2DTyped.cs b/SyncTexture2DTyped.cs index c8194c4..7d61986 100644 --- a/SyncTexture2DTyped.cs +++ b/SyncTexture2DTyped.cs @@ -66,6 +66,8 @@ public void ApplyReceiveColorsPartialLine() ShiftLines(count); ShiftData(count); + Callback(nameof(SyncTextureCallbackListener.OnReceiveApplied)); + if (linesEmpty) return; SendCustomEventDelayedFrames(nameof(ApplyReceiveColorsPartialLine), 1); diff --git a/SyncTextureCallbackListener.cs b/SyncTextureCallbackListener.cs index 80b73ed..e81fff4 100644 --- a/SyncTextureCallbackListener.cs +++ b/SyncTextureCallbackListener.cs @@ -15,9 +15,7 @@ public abstract class SyncTextureCallbackListener : UdonSharpBehaviour public abstract void OnSync(); public abstract void OnSyncComplete(); public abstract void OnSyncCanceled(); - public abstract void OnReceiveStart(); public abstract void OnReceive(); - public abstract void OnReceiveComplete(); - public abstract void OnReceiveCanceled(); + public abstract void OnReceiveApplied(); } } From 05277f19cef28b71b408f5328e409bc1568fd4cc Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 03:44:15 +0900 Subject: [PATCH 04/31] SetAllDataList / GetChunkCount --- Editor/SyncTextureEditor.cs | 36 +++++++++++++++++++++++++++++++----- SyncTexture.cs | 3 +++ 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/Editor/SyncTextureEditor.cs b/Editor/SyncTextureEditor.cs index a519c47..e088e4f 100644 --- a/Editor/SyncTextureEditor.cs +++ b/Editor/SyncTextureEditor.cs @@ -1,12 +1,10 @@ -using System.Collections; -using System.Collections.Generic; +using System.Collections.Generic; using UnityEngine; using UnityEditor; using UdonSharpEditor; using System.Linq; using System.Reflection; using UnityEngine.SceneManagement; -using VRC.Udon.Serialization.OdinSerializer.Utilities; namespace net.narazaka.vrchat.sync_texture.editor { @@ -190,11 +188,15 @@ public override void OnInspectorGUI() { EditorGUILayout.HelpBox("SyncInterval must be positive", MessageType.Error); } - EditorGUILayout.PropertyField(DataList, true); + EditorGUILayout.PropertyField(DataList, new GUIContent($"{DataList.displayName} (automatically set)"), true); if (stat.ChunkCount > 0) { SetDataList(DataList, stat.ChunkCount); } + if (GUILayout.Button("Set All DataList (optional)")) + { + SetAllDataList(); + } EditorGUILayout.PropertyField(CallbackListeners); EditorGUILayout.PropertyField(PrepareCallbackAsync); ShowCalllbackHelp = EditorGUILayout.Foldout(ShowCalllbackHelp, "Callback Help"); @@ -313,6 +315,30 @@ public static void SetDataList(SerializedProperty DataList, int chunkCount) } } + public static void SetAllDataList() + { + var syncTextures = Object.FindObjectsByType(FindObjectsInactive.Include, FindObjectsSortMode.None); + var invalids = new List(); + foreach (var syncTexture in syncTextures) + { + var serializedObject = new SerializedObject(syncTexture); + var chunkCount = GetSyncTextureTypeStat(serializedObject).ChunkCount; + if (chunkCount > 0) + { + SetDataList(serializedObject.FindProperty("DataList"), chunkCount); + } + else + { + invalids.Add(syncTexture); + } + } + if (invalids.Count > 0) + { + EditorUtility.DisplayDialog("Warning", $"Some SyncTexture2D has invalid settings:\n{string.Join(", ", invalids.Select(s => s.name))}", "OK"); + EditorGUIUtility.PingObject(invalids[0]); + } + } + public class SyncTextureTypeStat { public int UnitByteLength; @@ -358,7 +384,7 @@ public static SyncTextureTypeStat GetSyncTextureTypeStat(SerializedObject serial stat.BulkByteCount = stat.BulkUnitCount * stat.UnitByteLength; stat.DataLimitRatePerSerialization = (float)stat.BulkByteCount / SyncTexture.MaxBulkBytesPerSerialization; stat.DataLimitRatePerSecond = (float)stat.BulkByteCount / SyncTexture.MaxBulkBytesPerSecond; - stat.ChunkCount = Mathf.CeilToInt((float)sourceTexture.height / stat.EffectiveBulkLineCount); + stat.ChunkCount = SyncTexture.GetChunkCount(sourceTexture.height, stat.EffectiveBulkLineCount); return stat; } diff --git a/SyncTexture.cs b/SyncTexture.cs index e72187b..2cc444d 100644 --- a/SyncTexture.cs +++ b/SyncTexture.cs @@ -61,6 +61,9 @@ public float Progress [PublicAPI] public float DataLimitRatePerSecond => (float)BulkByteCount / MaxBulkBytesPerSecond; + [PublicAPI] + public static int GetChunkCount(int height, int effectiveBulkLineCount) => Mathf.CeilToInt((float) height / effectiveBulkLineCount); + [PublicAPI] public static int GetEffectiveBulkLineCount(int bulkLineCount, float bulkRateOfNetworkSpec, int width, int unitByteLength, int packUnitLength) => bulkLineCount == 0 From 5ce2bc808f24419ea32c15be8bc6f1a046c0ca6f Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 04:17:03 +0900 Subject: [PATCH 05/31] ChunkCount --- SyncTexture.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SyncTexture.cs b/SyncTexture.cs index 2cc444d..cc36207 100644 --- a/SyncTexture.cs +++ b/SyncTexture.cs @@ -63,6 +63,8 @@ public float Progress [PublicAPI] public static int GetChunkCount(int height, int effectiveBulkLineCount) => Mathf.CeilToInt((float) height / effectiveBulkLineCount); + [PublicAPI] + public int ChunkCount => GetChunkCount(Height, EffectiveBulkLineCount); [PublicAPI] public static int GetEffectiveBulkLineCount(int bulkLineCount, float bulkRateOfNetworkSpec, int width, int unitByteLength, int packUnitLength) => From ab353973730cc9e52b12954ad2c8cfa86c92e81b Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 04:20:05 +0900 Subject: [PATCH 06/31] 3.0.0-beta.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fac9ecd..bfd0c0c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "net.narazaka.vrchat.sync-texture", - "version": "2.0.0", + "version": "3.0.0-beta.0", "displayName": "SyncTexture", "description": "Sync Texture2D", "author": { From ea82cf04b74af7d3650a4bad2fded974eac6ba10 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 04:23:51 +0900 Subject: [PATCH 07/31] "com.vrchat.worlds": ">=3.2.0" (VRCAsyncGPUReadback) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bfd0c0c..eb769a6 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,6 @@ "type": "tool", "url" : "https://github.com/Narazaka/SyncTexture.git", "vpmDependencies": { - "com.vrchat.worlds": ">=3.0.9" + "com.vrchat.worlds": ">=3.2.0" } } From dfeed88a1e6d3525ed3f19570474391e4d312bb6 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 04:30:23 +0900 Subject: [PATCH 08/31] ci --- .github/workflows/call-build-repo-listing.yml | 2 +- .github/workflows/release.yml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/call-build-repo-listing.yml b/.github/workflows/call-build-repo-listing.yml index 32e1bff..9cdaa47 100644 --- a/.github/workflows/call-build-repo-listing.yml +++ b/.github/workflows/call-build-repo-listing.yml @@ -3,7 +3,7 @@ name: Call Build Repo Listing on: workflow_dispatch: workflow_run: - workflows: [Build Package Listing] + workflows: [Build Release] types: - completed diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index aaf72f3..783a8d4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,4 +11,6 @@ permissions: jobs: build: - uses: Narazaka/vpm-repos/.github/workflows/release.yml@main \ No newline at end of file + uses: Narazaka/vpm-repos/.github/workflows/release.yml@main + with: + novcc: false From f8ce0d7b90a4d1c0f02ff0cf9d9a21b213c616e3 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 06:25:35 +0900 Subject: [PATCH 09/31] fix --- SyncTextureManager.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/SyncTextureManager.cs b/SyncTextureManager.cs index f00e1c1..5badb2d 100644 --- a/SyncTextureManager.cs +++ b/SyncTextureManager.cs @@ -75,6 +75,7 @@ void PushQueue(sbyte index) void ShiftQueue() { + if (SendIndexQueue.Length == 0) return; var newToSendIndexes = new sbyte[SendIndexQueue.Length - 1]; System.Array.Copy(SendIndexQueue, 1, newToSendIndexes, 0, newToSendIndexes.Length); SendIndexQueue = newToSendIndexes; @@ -82,8 +83,6 @@ void ShiftQueue() void Send() { - if (!Sending) return; - SyncTextures[SendingIndex].ForceStartSync(); } From 2b72f676a9c7537be5f0137454089812790d4260 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 06:29:35 +0900 Subject: [PATCH 10/31] receive log --- SyncTexture2D16.cs | 1 + SyncTexture2D8.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/SyncTexture2D16.cs b/SyncTexture2D16.cs index 5787cf9..2a7fc9f 100644 --- a/SyncTexture2D16.cs +++ b/SyncTexture2D16.cs @@ -41,6 +41,7 @@ protected override void DoSyncColors() public void ApplyReceiveColorsPartial(SyncTextureData16 data) { + Debug.Log($"[SyncTexture] ApplyReceiveColorsPartial() [ReceiveEnabled={ReceiveEnabled}]"); Callback(nameof(SyncTextureCallbackListener.OnReceive)); if (!ReceiveEnabled) return; var syncIndex = Array.IndexOf(DataList, data); diff --git a/SyncTexture2D8.cs b/SyncTexture2D8.cs index cb06641..88214ad 100644 --- a/SyncTexture2D8.cs +++ b/SyncTexture2D8.cs @@ -41,6 +41,7 @@ protected override void DoSyncColors() public void ApplyReceiveColorsPartial(SyncTextureData8 data) { + Debug.Log($"[SyncTexture] ApplyReceiveColorsPartial() [ReceiveEnabled={ReceiveEnabled}]"); Callback(nameof(SyncTextureCallbackListener.OnReceive)); if (!ReceiveEnabled) return; var syncIndex = Array.IndexOf(DataList, data); From 4482f8ab0ce7463379e30f475dddf542d6d927ad Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 06:29:41 +0900 Subject: [PATCH 11/31] 3.0.0-beta.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index eb769a6..e64ba68 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "net.narazaka.vrchat.sync-texture", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "displayName": "SyncTexture", "description": "Sync Texture2D", "author": { From 59d05dc9c9887658e34899f5e1596236cb550dfc Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 06:46:25 +0900 Subject: [PATCH 12/31] fix --- SyncTextureManager.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/SyncTextureManager.cs b/SyncTextureManager.cs index 5badb2d..8090c9d 100644 --- a/SyncTextureManager.cs +++ b/SyncTextureManager.cs @@ -34,7 +34,8 @@ public void RequestSyncTextureByIndex(int index, bool resendWhenExistsAndNowSend { if (!Networking.IsOwner(gameObject)) return; - var existIndex = System.Array.IndexOf(SendIndexQueue, index); + var existIndex = System.Array.IndexOf(SendIndexQueue, (sbyte)index); + Debug.Log($"[SyncTextureManager] RequestSyncTextureByIndex({index}) exist queue index={existIndex}"); if (existIndex != -1) { if (existIndex == 0 && resendWhenExistsAndNowSending) @@ -83,6 +84,8 @@ void ShiftQueue() void Send() { + if (!Sending) return; + SyncTextures[SendingIndex].ForceStartSync(); } From fa7aff5ca390e3b43fb6bf48a6ae8ed30fc6822f Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 06:46:35 +0900 Subject: [PATCH 13/31] 3.0.0-beta.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e64ba68..eea9609 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "net.narazaka.vrchat.sync-texture", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "displayName": "SyncTexture", "description": "Sync Texture2D", "author": { From 0df3f6dfe96780fa7996abc96f84a1a73b6bf221 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 07:07:17 +0900 Subject: [PATCH 14/31] =?UTF-8?q?OnOwnershipTransferred=E3=81=AE=E3=82=AA?= =?UTF-8?q?=E3=83=BC=E3=83=8A=E3=83=BC=E5=88=A4=E5=AE=9A=E3=82=92=E5=BC=95?= =?UTF-8?q?=E6=95=B0=E3=81=A7=E8=A1=8C=E3=81=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SyncTextureManager.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/SyncTextureManager.cs b/SyncTextureManager.cs index 8090c9d..19dea1f 100644 --- a/SyncTextureManager.cs +++ b/SyncTextureManager.cs @@ -99,9 +99,10 @@ public void OnSyncComplete() public override void OnOwnershipTransferred(VRCPlayerApi player) { - if (!Networking.IsOwner(gameObject)) return; + // player is owner + if (!player.isLocal) return; - Send(); + SendCustomEventDelayedSeconds(nameof(Send), 2); } } } From 679498fce504bfdb328301d148373b6a01aeeb8c Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 07:07:32 +0900 Subject: [PATCH 15/31] 3.0.0-beta.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index eea9609..df033ff 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "net.narazaka.vrchat.sync-texture", - "version": "3.0.0-beta.2", + "version": "3.0.0-beta.3", "displayName": "SyncTexture", "description": "Sync Texture2D", "author": { From 44fcaa1e98d850f46074cb6c0d8f5c04c84eea13 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 07:25:51 +0900 Subject: [PATCH 16/31] fix --- SyncTextureManager.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SyncTextureManager.cs b/SyncTextureManager.cs index 19dea1f..e660783 100644 --- a/SyncTextureManager.cs +++ b/SyncTextureManager.cs @@ -82,7 +82,7 @@ void ShiftQueue() SendIndexQueue = newToSendIndexes; } - void Send() + public void Send() { if (!Sending) return; @@ -102,7 +102,7 @@ public override void OnOwnershipTransferred(VRCPlayerApi player) // player is owner if (!player.isLocal) return; - SendCustomEventDelayedSeconds(nameof(Send), 2); + SendCustomEventDelayedSeconds(nameof(Send), 1); } } } From c5b131446d8d1588de508cacd46b43fe59159c33 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 07:26:03 +0900 Subject: [PATCH 17/31] 3.0.0-beta.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index df033ff..3b219b6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "net.narazaka.vrchat.sync-texture", - "version": "3.0.0-beta.3", + "version": "3.0.0-beta.4", "displayName": "SyncTexture", "description": "Sync Texture2D", "author": { From 59fd4406349d417921dff23fd38a2389d4d57220 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 17:35:56 +0900 Subject: [PATCH 18/31] TextureWidth / TextureHeight --- Editor/SyncTextureEditor.cs | 106 ++++++++++++--- Samples/SyncTextureSamples.unity | 4 + SyncTexture2D.cs | 18 ++- SyncTexture2D16.asset | 222 +++++++++++++++++++++++-------- SyncTexture2D8.asset | 222 +++++++++++++++++++++++-------- 5 files changed, 438 insertions(+), 134 deletions(-) diff --git a/Editor/SyncTextureEditor.cs b/Editor/SyncTextureEditor.cs index e088e4f..5ec1bc9 100644 --- a/Editor/SyncTextureEditor.cs +++ b/Editor/SyncTextureEditor.cs @@ -38,6 +38,8 @@ public class SyncTextureEditor : Editor TextureFormat.RHalf, }; SerializedProperty ReceiveEnabled; + SerializedProperty TextureWidth; + SerializedProperty TextureHeight; SerializedProperty Source; SerializedProperty Target; SerializedProperty ColorEncoder; @@ -54,6 +56,8 @@ public class SyncTextureEditor : Editor void OnEnable() { ReceiveEnabled = serializedObject.FindProperty("ReceiveEnabled"); + TextureWidth = serializedObject.FindProperty("TextureWidth"); + TextureHeight = serializedObject.FindProperty("TextureHeight"); Source = serializedObject.FindProperty("Source"); Target = serializedObject.FindProperty("Target"); ColorEncoder = serializedObject.FindProperty("ColorEncoder"); @@ -72,20 +76,35 @@ public override void OnInspectorGUI() serializedObject.Update(); EditorGUILayout.PropertyField(ReceiveEnabled); + EditorGUILayout.HelpBox("If false locally, data is still received but not rendered.", MessageType.Info); + + EditorGUI.BeginDisabledGroup(Source.objectReferenceValue != null || Target.objectReferenceValue != null); + var sizeRect = EditorGUILayout.GetControlRect(GUILayout.Height(EditorGUIUtility.singleLineHeight)); + EditorGUI.LabelField(new Rect(sizeRect) { width = EditorGUIUtility.labelWidth }, "Texture Size"); + sizeRect.x += EditorGUIUtility.labelWidth; + sizeRect.width -= EditorGUIUtility.labelWidth; + EditorGUIUtility.labelWidth = 40; + sizeRect.width = sizeRect.width / 2; + EditorGUI.PropertyField(sizeRect, TextureWidth, new GUIContent("Width")); + sizeRect.x += sizeRect.width; + EditorGUI.PropertyField(sizeRect, TextureHeight, new GUIContent("Height")); + EditorGUIUtility.labelWidth = 0; + EditorGUI.EndDisabledGroup(); + EditorGUILayout.PropertyField(Source); EditorGUILayout.PropertyField(Target); - if (Source.objectReferenceValue == null || Target.objectReferenceValue == null) + var sizeCheckResult = EnsureSize(Source: Source, Target: Target, TextureWidth: TextureWidth, TextureHeight: TextureHeight); + if (sizeCheckResult == SizeCheckResult.SizeNotSet) { - EditorGUILayout.HelpBox("Source and Target must be set", MessageType.Error); + EditorGUILayout.HelpBox("Texture Size must be set. Please set the texture or set the size manually.", MessageType.Error); } - if (Source.objectReferenceValue != null && Target.objectReferenceValue != null) + if (sizeCheckResult == SizeCheckResult.TextureSizeNotSame) { - var source = (Texture)Source.objectReferenceValue; - var target = (Texture2D)Target.objectReferenceValue; - if (source.width != target.width || source.height != target.height) - { - EditorGUILayout.HelpBox("Source and Target must be same size", MessageType.Error); - } + EditorGUILayout.HelpBox("Source and Target must be same size", MessageType.Error); + } + if (Source.objectReferenceValue == null || Target.objectReferenceValue == null) + { + EditorGUILayout.HelpBox("Source and Target must be set when runtime.", MessageType.Warning); } CheckTexture2DReadable(Source); CheckTexture2DReadable(Target); @@ -172,7 +191,7 @@ public override void OnInspectorGUI() { EditorGUILayout.PropertyField(BulkLineCount); } - var stat = GetSyncTextureTypeStat(serializedObject, Source: Source, ColorEncoder: ColorEncoder, BulkLineCount: BulkLineCount, BulkRateOfNetworkSpec: BulkRateOfNetworkSpec); + var stat = GetSyncTextureStat(serializedObject, TextureWidth: TextureWidth, TextureHeight: TextureHeight, ColorEncoder: ColorEncoder, BulkLineCount: BulkLineCount, BulkRateOfNetworkSpec: BulkRateOfNetworkSpec); if (stat != null) { EditorGUILayout.HelpBox($"{stat.ChunkCount} steps : {stat.BulkByteCount} bytes/step.", MessageType.Info); @@ -322,15 +341,19 @@ public static void SetAllDataList() foreach (var syncTexture in syncTextures) { var serializedObject = new SerializedObject(syncTexture); - var chunkCount = GetSyncTextureTypeStat(serializedObject).ChunkCount; - if (chunkCount > 0) + serializedObject.Update(); + if (EnsureSize(serializedObject) != SizeCheckResult.Success) { - SetDataList(serializedObject.FindProperty("DataList"), chunkCount); + invalids.Add(syncTexture); + continue; } - else + var chunkCount = GetSyncTextureStat(serializedObject).ChunkCount; + if (chunkCount == 0) { invalids.Add(syncTexture); + continue; } + SetDataList(serializedObject.FindProperty("DataList"), chunkCount); } if (invalids.Count > 0) { @@ -339,7 +362,46 @@ public static void SetAllDataList() } } - public class SyncTextureTypeStat + public enum SizeCheckResult + { + Success = 0, + SizeNotSet = 1 << 0, + TextureSizeNotSame = 1 << 1, + } + + public static SizeCheckResult EnsureSize(SerializedObject serializedObject) + { + return EnsureSize(serializedObject.FindProperty("Source"), serializedObject.FindProperty("Target"), serializedObject.FindProperty("TextureWidth"), serializedObject.FindProperty("TextureHeight")); + } + + public static SizeCheckResult EnsureSize(SerializedProperty Source, SerializedProperty Target, SerializedProperty TextureWidth, SerializedProperty TextureHeight) + { + if (Source.objectReferenceValue != null || Target.objectReferenceValue != null) + { + var texture = Source.objectReferenceValue as Texture ?? Target.objectReferenceValue as Texture; + if (texture != null) + { + TextureWidth.intValue = texture.width; + TextureHeight.intValue = texture.height; + } + } + if (TextureWidth.intValue <= 0 || TextureHeight.intValue <= 0) + { + return SizeCheckResult.SizeNotSet; + } + if (Source.objectReferenceValue != null && Target.objectReferenceValue != null) + { + var source = (Texture)Source.objectReferenceValue; + var target = (Texture2D)Target.objectReferenceValue; + if (source.width != target.width || source.height != target.height) + { + return SizeCheckResult.TextureSizeNotSame; + } + } + return SizeCheckResult.Success; + } + + public class SyncTextureStat { public int UnitByteLength; public int PackUnitLength; @@ -352,15 +414,16 @@ public class SyncTextureTypeStat public int ChunkCount; } - public static SyncTextureTypeStat GetSyncTextureTypeStat(SerializedObject serializedObject, SerializedProperty Source = null, SerializedProperty ColorEncoder = null, SerializedProperty BulkLineCount = null, SerializedProperty BulkRateOfNetworkSpec = null) + public static SyncTextureStat GetSyncTextureStat(SerializedObject serializedObject, SerializedProperty TextureWidth = null, SerializedProperty TextureHeight = null, SerializedProperty ColorEncoder = null, SerializedProperty BulkLineCount = null, SerializedProperty BulkRateOfNetworkSpec = null) { - if (Source == null) Source = serializedObject.FindProperty("Source"); + if (TextureWidth == null) TextureWidth = serializedObject.FindProperty("TextureWidth"); + if (TextureHeight == null) TextureHeight = serializedObject.FindProperty("TextureHeight"); if (ColorEncoder == null) ColorEncoder = serializedObject.FindProperty("ColorEncoder"); if (BulkLineCount == null) BulkLineCount = serializedObject.FindProperty("BulkLineCount"); if (BulkRateOfNetworkSpec == null) BulkRateOfNetworkSpec = serializedObject.FindProperty("BulkRateOfNetworkSpec"); - var stat = new SyncTextureTypeStat(); - if (ColorEncoder.objectReferenceValue == null || Source.objectReferenceValue == null) + var stat = new SyncTextureStat(); + if (ColorEncoder.objectReferenceValue == null || TextureWidth.intValue <= 0 || TextureHeight.intValue <= 0) { return stat; } @@ -376,15 +439,14 @@ public static SyncTextureTypeStat GetSyncTextureTypeStat(SerializedObject serial stat.UnitByteLength = 2; break; } - var sourceTexture = (Texture)Source.objectReferenceValue; - var width = sourceTexture.width; + var width = TextureWidth.intValue; stat.EffectiveBulkLineCount = SyncTexture.GetEffectiveBulkLineCount(BulkLineCount.intValue, BulkRateOfNetworkSpec.floatValue, width, stat.UnitByteLength, stat.PackUnitLength); stat.BulkPixelCount = stat.EffectiveBulkLineCount * width; stat.BulkUnitCount = stat.BulkPixelCount * stat.PackUnitLength; stat.BulkByteCount = stat.BulkUnitCount * stat.UnitByteLength; stat.DataLimitRatePerSerialization = (float)stat.BulkByteCount / SyncTexture.MaxBulkBytesPerSerialization; stat.DataLimitRatePerSecond = (float)stat.BulkByteCount / SyncTexture.MaxBulkBytesPerSecond; - stat.ChunkCount = SyncTexture.GetChunkCount(sourceTexture.height, stat.EffectiveBulkLineCount); + stat.ChunkCount = SyncTexture.GetChunkCount(TextureHeight.intValue, stat.EffectiveBulkLineCount); return stat; } diff --git a/Samples/SyncTextureSamples.unity b/Samples/SyncTextureSamples.unity index dc113a3..a532458 100644 --- a/Samples/SyncTextureSamples.unity +++ b/Samples/SyncTextureSamples.unity @@ -1013,6 +1013,8 @@ MonoBehaviour: BulkRateOfNetworkSpec: 0.8 SyncInterval: 1 PrepareCallbackAsync: 0 + TextureWidth: 512 + TextureHeight: 256 Source: {fileID: 2800000, guid: 79a97e948433e9b42a4a716fd8cb3808, type: 3} Target: {fileID: 2800000, guid: 86c8a8e2b7e199e4ca98d930a9de27c0, type: 3} GetPixelsBulkCount: 8 @@ -5287,6 +5289,8 @@ MonoBehaviour: BulkRateOfNetworkSpec: 0.95 SyncInterval: 1 PrepareCallbackAsync: 0 + TextureWidth: 256 + TextureHeight: 128 Source: {fileID: 2800000, guid: 4112bfd370202bb4a94fa6c5f73a7d10, type: 3} Target: {fileID: 2800000, guid: 503b8ec2b8b04de42ab35eb3f8e8b73a, type: 3} GetPixelsBulkCount: 0 diff --git a/SyncTexture2D.cs b/SyncTexture2D.cs index 3e519f1..9a94d3f 100644 --- a/SyncTexture2D.cs +++ b/SyncTexture2D.cs @@ -1,16 +1,26 @@ - using UdonSharp; using UnityEngine; using System; using VRC.Udon; using VRC.SDK3.Rendering; using VRC.Udon.Common.Interfaces; - +using JetBrains.Annotations; namespace net.narazaka.vrchat.sync_texture { public abstract class SyncTexture2D : SyncTexture { + /// + /// must not change at runtime + /// + [SerializeField] + public int TextureWidth; + /// + /// must not change at runtime + /// + [SerializeField] + public int TextureHeight; + [PublicAPI] [SerializeField] public Texture Source; [SerializeField] @@ -25,8 +35,8 @@ public abstract class SyncTexture2D : SyncTexture void StoreSourceColors(Color32[] colors, int startPixelIndex) => Array.Copy(colors, 0, SourceColors, startPixelIndex, colors.Length); protected override bool ReadingSource => ReadIndex >= 0; - protected override int Width => Source.width; - protected override int Height => Source.height; + protected override int Width => TextureWidth; + protected override int Height => TextureHeight; protected override int SourceColorsLength => SourceColors.Length; protected override void StartReadSource() diff --git a/SyncTexture2D16.asset b/SyncTexture2D16.asset index 8e2b3a5..d27e753 100644 --- a/SyncTexture2D16.asset +++ b/SyncTexture2D16.asset @@ -44,7 +44,7 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 24 + Data: 26 - Name: Entry: 7 Data: @@ -506,16 +506,124 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: Source + Data: TextureWidth - Name: $v Entry: 7 Data: 30|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: TextureWidth + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 31|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 32|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: TextureHeight + - Name: $v + Entry: 7 + Data: 33|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: TextureHeight + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 34|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 35|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: Source + - Name: $v + Entry: 7 + Data: 36|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: Source - Name: k__BackingField Entry: 7 - Data: 31|System.RuntimeType, mscorlib + Data: 37|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Texture, UnityEngine.CoreModule @@ -524,7 +632,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 31 + Data: 37 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -539,13 +647,19 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 32|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 38|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 1 + Data: 2 - Name: Entry: 7 - Data: 33|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 39|JetBrains.Annotations.PublicAPIAttribute, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: 40|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -569,13 +683,13 @@ MonoBehaviour: Data: Target - Name: $v Entry: 7 - Data: 34|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 41|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: Target - Name: k__BackingField Entry: 7 - Data: 35|System.RuntimeType, mscorlib + Data: 42|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Texture2D, UnityEngine.CoreModule @@ -584,7 +698,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 35 + Data: 42 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -599,13 +713,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 36|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 43|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 37|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 44|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -629,7 +743,7 @@ MonoBehaviour: Data: GetPixelsBulkCount - Name: $v Entry: 7 - Data: 38|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 45|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: GetPixelsBulkCount @@ -653,13 +767,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 39|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 46|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 40|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 47|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -683,7 +797,7 @@ MonoBehaviour: Data: ReadIndex - Name: $v Entry: 7 - Data: 41|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 48|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: ReadIndex @@ -707,7 +821,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 42|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 49|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -731,13 +845,13 @@ MonoBehaviour: Data: SourceColors - Name: $v Entry: 7 - Data: 43|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 50|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: SourceColors - Name: k__BackingField Entry: 7 - Data: 44|System.RuntimeType, mscorlib + Data: 51|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Color32[], UnityEngine.CoreModule @@ -746,7 +860,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 44 + Data: 51 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -761,7 +875,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 45|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 52|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -785,7 +899,7 @@ MonoBehaviour: Data: packPixelOffset - Name: $v Entry: 7 - Data: 46|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 53|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: packPixelOffset @@ -809,7 +923,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 47|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 54|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -833,7 +947,7 @@ MonoBehaviour: Data: startSourceIndex - Name: $v Entry: 7 - Data: 48|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 55|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: startSourceIndex @@ -857,7 +971,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 49|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 56|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -881,7 +995,7 @@ MonoBehaviour: Data: pixelLength - Name: $v Entry: 7 - Data: 50|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 57|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: pixelLength @@ -905,7 +1019,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 51|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 58|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -929,13 +1043,13 @@ MonoBehaviour: Data: lineIndexes - Name: $v Entry: 7 - Data: 52|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 59|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: lineIndexes - Name: k__BackingField Entry: 7 - Data: 53|System.RuntimeType, mscorlib + Data: 60|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Int32[], mscorlib @@ -944,7 +1058,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 53 + Data: 60 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -959,7 +1073,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 54|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 61|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -983,7 +1097,7 @@ MonoBehaviour: Data: dataWidth - Name: $v Entry: 7 - Data: 55|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 62|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: dataWidth @@ -1007,7 +1121,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 56|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 63|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1031,7 +1145,7 @@ MonoBehaviour: Data: dataHeight - Name: $v Entry: 7 - Data: 57|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 64|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: dataHeight @@ -1055,7 +1169,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 58|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 65|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1079,7 +1193,7 @@ MonoBehaviour: Data: dataUnitByteLength - Name: $v Entry: 7 - Data: 59|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 66|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: dataUnitByteLength @@ -1103,7 +1217,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 60|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 67|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1127,13 +1241,13 @@ MonoBehaviour: Data: ColorEncoder - Name: $v Entry: 7 - Data: 61|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 68|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: ColorEncoder - Name: k__BackingField Entry: 7 - Data: 62|System.RuntimeType, mscorlib + Data: 69|System.RuntimeType, mscorlib - Name: Entry: 1 Data: net.narazaka.vrchat.sync_texture.ColorEncoder16, SyncTexture @@ -1142,7 +1256,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 7 - Data: 63|System.RuntimeType, mscorlib + Data: 70|System.RuntimeType, mscorlib - Name: Entry: 1 Data: VRC.Udon.UdonBehaviour, VRC.Udon @@ -1163,13 +1277,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 64|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 71|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 65|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 72|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1193,13 +1307,13 @@ MonoBehaviour: Data: DataList - Name: $v Entry: 7 - Data: 66|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 73|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: DataList - Name: k__BackingField Entry: 7 - Data: 67|System.RuntimeType, mscorlib + Data: 74|System.RuntimeType, mscorlib - Name: Entry: 1 Data: net.narazaka.vrchat.sync_texture.SyncTextureData16[], SyncTexture @@ -1223,13 +1337,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 68|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 75|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 69|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 76|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1253,13 +1367,13 @@ MonoBehaviour: Data: sendData - Name: $v Entry: 7 - Data: 70|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 77|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: sendData - Name: k__BackingField Entry: 7 - Data: 71|System.RuntimeType, mscorlib + Data: 78|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.UInt16[], mscorlib @@ -1268,7 +1382,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 71 + Data: 78 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1283,7 +1397,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 72|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 @@ -1307,16 +1421,16 @@ MonoBehaviour: Data: data - Name: $v Entry: 7 - Data: 73|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 80|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: data - Name: k__BackingField Entry: 9 - Data: 71 + Data: 78 - Name: k__BackingField Entry: 9 - Data: 71 + Data: 78 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1331,7 +1445,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 74|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 81|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 diff --git a/SyncTexture2D8.asset b/SyncTexture2D8.asset index b8c6bee..e389d55 100644 --- a/SyncTexture2D8.asset +++ b/SyncTexture2D8.asset @@ -44,7 +44,7 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 24 + Data: 26 - Name: Entry: 7 Data: @@ -506,16 +506,124 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: Source + Data: TextureWidth - Name: $v Entry: 7 Data: 30|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: TextureWidth + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 31|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 32|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: TextureHeight + - Name: $v + Entry: 7 + Data: 33|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: TextureHeight + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 9 + Data: 12 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 34|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 35|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: Source + - Name: $v + Entry: 7 + Data: 36|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: Source - Name: k__BackingField Entry: 7 - Data: 31|System.RuntimeType, mscorlib + Data: 37|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Texture, UnityEngine.CoreModule @@ -524,7 +632,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 31 + Data: 37 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -539,13 +647,19 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 32|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 38|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 1 + Data: 2 - Name: Entry: 7 - Data: 33|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 39|JetBrains.Annotations.PublicAPIAttribute, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: 40|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -569,13 +683,13 @@ MonoBehaviour: Data: Target - Name: $v Entry: 7 - Data: 34|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 41|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: Target - Name: k__BackingField Entry: 7 - Data: 35|System.RuntimeType, mscorlib + Data: 42|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Texture2D, UnityEngine.CoreModule @@ -584,7 +698,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 35 + Data: 42 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -599,13 +713,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 36|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 43|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 37|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 44|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -629,7 +743,7 @@ MonoBehaviour: Data: GetPixelsBulkCount - Name: $v Entry: 7 - Data: 38|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 45|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: GetPixelsBulkCount @@ -653,13 +767,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 39|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 46|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 40|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 47|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -683,7 +797,7 @@ MonoBehaviour: Data: ReadIndex - Name: $v Entry: 7 - Data: 41|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 48|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: ReadIndex @@ -707,7 +821,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 42|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 49|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -731,13 +845,13 @@ MonoBehaviour: Data: SourceColors - Name: $v Entry: 7 - Data: 43|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 50|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: SourceColors - Name: k__BackingField Entry: 7 - Data: 44|System.RuntimeType, mscorlib + Data: 51|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Color32[], UnityEngine.CoreModule @@ -746,7 +860,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 44 + Data: 51 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -761,7 +875,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 45|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 52|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -785,7 +899,7 @@ MonoBehaviour: Data: packPixelOffset - Name: $v Entry: 7 - Data: 46|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 53|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: packPixelOffset @@ -809,7 +923,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 47|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 54|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -833,7 +947,7 @@ MonoBehaviour: Data: startSourceIndex - Name: $v Entry: 7 - Data: 48|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 55|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: startSourceIndex @@ -857,7 +971,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 49|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 56|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -881,7 +995,7 @@ MonoBehaviour: Data: pixelLength - Name: $v Entry: 7 - Data: 50|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 57|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: pixelLength @@ -905,7 +1019,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 51|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 58|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -929,13 +1043,13 @@ MonoBehaviour: Data: lineIndexes - Name: $v Entry: 7 - Data: 52|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 59|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: lineIndexes - Name: k__BackingField Entry: 7 - Data: 53|System.RuntimeType, mscorlib + Data: 60|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Int32[], mscorlib @@ -944,7 +1058,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 53 + Data: 60 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -959,7 +1073,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 54|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 61|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -983,7 +1097,7 @@ MonoBehaviour: Data: dataWidth - Name: $v Entry: 7 - Data: 55|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 62|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: dataWidth @@ -1007,7 +1121,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 56|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 63|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1031,7 +1145,7 @@ MonoBehaviour: Data: dataHeight - Name: $v Entry: 7 - Data: 57|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 64|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: dataHeight @@ -1055,7 +1169,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 58|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 65|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1079,7 +1193,7 @@ MonoBehaviour: Data: dataUnitByteLength - Name: $v Entry: 7 - Data: 59|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 66|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: dataUnitByteLength @@ -1103,7 +1217,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 60|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 67|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1127,13 +1241,13 @@ MonoBehaviour: Data: ColorEncoder - Name: $v Entry: 7 - Data: 61|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 68|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: ColorEncoder - Name: k__BackingField Entry: 7 - Data: 62|System.RuntimeType, mscorlib + Data: 69|System.RuntimeType, mscorlib - Name: Entry: 1 Data: net.narazaka.vrchat.sync_texture.ColorEncoder8, SyncTexture @@ -1142,7 +1256,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 7 - Data: 63|System.RuntimeType, mscorlib + Data: 70|System.RuntimeType, mscorlib - Name: Entry: 1 Data: VRC.Udon.UdonBehaviour, VRC.Udon @@ -1163,13 +1277,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 64|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 71|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 65|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 72|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1193,13 +1307,13 @@ MonoBehaviour: Data: DataList - Name: $v Entry: 7 - Data: 66|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 73|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: DataList - Name: k__BackingField Entry: 7 - Data: 67|System.RuntimeType, mscorlib + Data: 74|System.RuntimeType, mscorlib - Name: Entry: 1 Data: net.narazaka.vrchat.sync_texture.SyncTextureData8[], SyncTexture @@ -1223,13 +1337,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 68|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 75|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 69|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 76|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1253,13 +1367,13 @@ MonoBehaviour: Data: sendData - Name: $v Entry: 7 - Data: 70|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 77|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: sendData - Name: k__BackingField Entry: 7 - Data: 71|System.RuntimeType, mscorlib + Data: 78|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Byte[], mscorlib @@ -1268,7 +1382,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 71 + Data: 78 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1283,7 +1397,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 72|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 @@ -1307,16 +1421,16 @@ MonoBehaviour: Data: data - Name: $v Entry: 7 - Data: 73|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 80|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: data - Name: k__BackingField Entry: 9 - Data: 71 + Data: 78 - Name: k__BackingField Entry: 9 - Data: 71 + Data: 78 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1331,7 +1445,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 74|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 81|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 From bb5969284d8a1a5f9ad65ede0388bbc339694e79 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 17:36:13 +0900 Subject: [PATCH 19/31] changelog --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index cd4ba62..7811f38 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,15 @@ void RequestSyncTexture(SyncTextureBase syncTexture, bool resendWhenExistsAndNow ## 更新履歴 +- 3.0.0 + - アーキテクチャの一新 + - インスタンスに情報が保持される仕組みにし、一般的なケースでlate joinerの同期速度を飛躍的に向上。 + - 破壊的変更 + - アーキテクチャの一新によりAPIが大幅に変更されました。 + - 一般的なケースでは以下の手順でマイグレーション出来ると思います。 + 1. SyncTexture2DのBulkLineCountを再設定する。 + 2. 任意のSyncTexture2Dの「Set All DataList」ボタンを押す。 + 3. SyncTexturesOnLateJoinを削除し、`SyncTextureManager.RequestSyncTexture()`を呼ぶ仕組みを実装する。 - 2.0.0 - 新機能 - VRCAsyncGPUReadbackを用いた高速読取処理が可能に From 74b43843a3003f8073cc9d20ef56a37b6b74cc54 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Fri, 6 Dec 2024 17:37:33 +0900 Subject: [PATCH 20/31] 3.0.0-beta.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3b219b6..15f4779 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "net.narazaka.vrchat.sync-texture", - "version": "3.0.0-beta.4", + "version": "3.0.0-beta.5", "displayName": "SyncTexture", "description": "Sync Texture2D", "author": { From cc1dc869e898f8b6db51fbf9133697b5ba1a2960 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Sun, 8 Dec 2024 20:01:36 +0900 Subject: [PATCH 21/31] unity --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 15f4779..d412816 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "license": "Zlib", "type": "tool", "url" : "https://github.com/Narazaka/SyncTexture.git", + "unity": "2022.3", "vpmDependencies": { "com.vrchat.worlds": ">=3.2.0" } From 7255a43b00c0759f4576c6ab048c6f69257e37f0 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Sun, 8 Dec 2024 20:08:29 +0900 Subject: [PATCH 22/31] fix Set All SyncTextures --- Editor/SyncTextureManagerEditor.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Editor/SyncTextureManagerEditor.cs b/Editor/SyncTextureManagerEditor.cs index 23e7a24..23472df 100644 --- a/Editor/SyncTextureManagerEditor.cs +++ b/Editor/SyncTextureManagerEditor.cs @@ -59,6 +59,21 @@ public override void OnInspectorGUI() SyncTextures.GetArrayElementAtIndex(SyncTextures.arraySize - 1).objectReferenceValue = syncTexture; SetSelfToSyncTexture(syncTexture); } + var syncTexturesSet = new HashSet(); + var toRemove = new List(); + for (var i = 0; i < SyncTextures.arraySize; i++) + { + var syncTexture = SyncTextures.GetArrayElementAtIndex(i).objectReferenceValue as SyncTexture; + if (syncTexture == null || !syncTexturesSet.Add(syncTexture)) + { + toRemove.Add(i); + } + } + toRemove.Reverse(); + foreach (var i in toRemove) + { + SyncTextures.DeleteArrayElementAtIndex(i); + } } serializedObject.ApplyModifiedProperties(); From de1bb8ed0f586aeee97676094beedb70073e0ced Mon Sep 17 00:00:00 2001 From: Narazaka Date: Sun, 8 Dec 2024 20:48:29 +0900 Subject: [PATCH 23/31] 3.0.0-beta.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d412816..7b8c5b3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "net.narazaka.vrchat.sync-texture", - "version": "3.0.0-beta.5", + "version": "3.0.0-beta.6", "displayName": "SyncTexture", "description": "Sync Texture2D", "author": { From 883808b3a39c3e4d780486cf37473645ad4a584c Mon Sep 17 00:00:00 2001 From: Narazaka Date: Wed, 11 Dec 2024 02:15:32 +0900 Subject: [PATCH 24/31] index out of range guard --- SyncTextureManager.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/SyncTextureManager.cs b/SyncTextureManager.cs index e660783..e5435e6 100644 --- a/SyncTextureManager.cs +++ b/SyncTextureManager.cs @@ -34,6 +34,12 @@ public void RequestSyncTextureByIndex(int index, bool resendWhenExistsAndNowSend { if (!Networking.IsOwner(gameObject)) return; + if (index < 0 || index >= SyncTextures.Length) + { + Debug.LogError($"[SyncTextureManager] RequestSyncTextureByIndex({index}) index out of range SyncTextures.Length=({SyncTextures.Length})"); + return; + } + var existIndex = System.Array.IndexOf(SendIndexQueue, (sbyte)index); Debug.Log($"[SyncTextureManager] RequestSyncTextureByIndex({index}) exist queue index={existIndex}"); if (existIndex != -1) From 48b2d1a4648a437ecc695281103ae543ab6e5c31 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Wed, 11 Dec 2024 02:31:37 +0900 Subject: [PATCH 25/31] Deserialization fail safe --- SyncTextureData.cs | 69 +++++++++++++++++++++++++++++++++++++++++ SyncTextureData16.asset | 56 ++++++++++++++++++++++++++++++++- SyncTextureData16.cs | 8 ++--- SyncTextureData8.asset | 56 ++++++++++++++++++++++++++++++++- SyncTextureData8.cs | 8 ++--- 5 files changed, 187 insertions(+), 10 deletions(-) diff --git a/SyncTextureData.cs b/SyncTextureData.cs index 56ebd22..9c4d9d7 100644 --- a/SyncTextureData.cs +++ b/SyncTextureData.cs @@ -9,6 +9,75 @@ namespace net.narazaka.vrchat.sync_texture [DisallowMultipleComponent] public abstract class SyncTextureData : UdonSharpBehaviour { + int RetryCount = 0; + const int MaxRetryCount = 3; + const float RetryInterval = 4f; + bool OnceApplied; + protected abstract bool DataIsNull { get; } + protected abstract bool DataIsEmpty { get; } + protected abstract void ApplyReceiveData(); + + public override void OnDeserialization() + { + TryApplyReceiveDataFromOnDeserialization(); + } + + void Start() + { + SendCustomEventDelayedSeconds(nameof(TryApplyReceiveDataFromStart), 3f); + SendCustomEventDelayedSeconds(nameof(TryApplyReceiveDataFromStart), 6f); + SendCustomEventDelayedSeconds(nameof(TryApplyReceiveDataFromStart), 9f); + SendCustomEventDelayedSeconds(nameof(TryApplyReceiveDataFromStart), 12f); + } + + public void TryApplyReceiveDataFromOnDeserialization() + { + if (DataIsNull) + { + RetryCount++; + if (RetryCount <= MaxRetryCount) + { + Debug.LogWarning($"{LogPrefix} Data is deserialized but is null or empty. Retrying..."); + SendCustomEventDelayedSeconds(nameof(TryApplyReceiveDataFromOnDeserialization), RetryInterval); + } + else + { + Debug.LogError($"{LogPrefix} Data is deserialized but is null or empty. Retry limit exceeded."); + } + return; + } + TryApplyReceiveData(); + } + + public void TryApplyReceiveDataFromStart() + { + if (DataIsNull) + { + Debug.Log($"{LogPrefix} Trying to get data but not received."); + return; + } + if (OnceApplied) + { + return; + } + Debug.LogWarning($"{LogPrefix} Trying to get data and found non null data!"); + TryApplyReceiveData(); + } + + public void TryApplyReceiveData() + { + if (DataIsEmpty) + { + Debug.LogWarning($"{LogPrefix} Data is deserialized but is empty."); + } + else + { + OnceApplied = true; + ApplyReceiveData(); + } + } + + string LogPrefix => $"[SyncTextureData] ({name})"; } } diff --git a/SyncTextureData16.asset b/SyncTextureData16.asset index 6fbba6d..501cff1 100644 --- a/SyncTextureData16.asset +++ b/SyncTextureData16.asset @@ -44,7 +44,7 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 2 + Data: 3 - Name: Entry: 7 Data: @@ -177,6 +177,60 @@ MonoBehaviour: - Name: Entry: 8 Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: RetryCount + - Name: $v + Entry: 7 + Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: RetryCount + - Name: k__BackingField + Entry: 7 + Data: 13|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.Int32, mscorlib + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 13 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 14|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: 13 Data: diff --git a/SyncTextureData16.cs b/SyncTextureData16.cs index e744aa5..1ab8043 100644 --- a/SyncTextureData16.cs +++ b/SyncTextureData16.cs @@ -12,7 +12,7 @@ public class SyncTextureData16 : SyncTextureData [SerializeField] SyncTexture2D16 SyncTexture2D; [UdonSynced, NonSerialized] - public ushort[] Data = new ushort[0]; + public ushort[] Data; public void Send(ushort[] data) { @@ -25,10 +25,10 @@ public override void OnPostSerialization(SerializationResult result) SyncTexture2D.OnOneSyncDone(result.success); } - public override void OnDeserialization() + protected override bool DataIsNull => Data == null; + protected override bool DataIsEmpty => Data.Length == 0; + protected override void ApplyReceiveData() { - if (Data == null || Data.Length == 0) return; - SyncTexture2D.ApplyReceiveColorsPartial(this); } } diff --git a/SyncTextureData8.asset b/SyncTextureData8.asset index f4040eb..0ae73b7 100644 --- a/SyncTextureData8.asset +++ b/SyncTextureData8.asset @@ -44,7 +44,7 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 2 + Data: 3 - Name: Entry: 7 Data: @@ -177,6 +177,60 @@ MonoBehaviour: - Name: Entry: 8 Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: RetryCount + - Name: $v + Entry: 7 + Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: RetryCount + - Name: k__BackingField + Entry: 7 + Data: 13|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.Int32, mscorlib + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 13 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 14|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: 13 Data: diff --git a/SyncTextureData8.cs b/SyncTextureData8.cs index 9dfeeef..f49ff3a 100644 --- a/SyncTextureData8.cs +++ b/SyncTextureData8.cs @@ -14,7 +14,7 @@ public class SyncTextureData8 : SyncTextureData [SerializeField] SyncTexture2D8 SyncTexture2D; [UdonSynced, NonSerialized] - public byte[] Data = new byte[0]; + public byte[] Data; public void Send(byte[] data) { @@ -27,10 +27,10 @@ public override void OnPostSerialization(SerializationResult result) SyncTexture2D.OnOneSyncDone(result.success); } - public override void OnDeserialization() + protected override bool DataIsNull => Data == null; + protected override bool DataIsEmpty => Data.Length == 0; + protected override void ApplyReceiveData() { - if (Data == null || Data.Length == 0) return; - SyncTexture2D.ApplyReceiveColorsPartial(this); } } From 40e195191a72b93029f449c59e146ef09fe1f638 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Wed, 11 Dec 2024 02:32:13 +0900 Subject: [PATCH 26/31] log name --- SyncTexture2D16.cs | 2 +- SyncTexture2D8.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/SyncTexture2D16.cs b/SyncTexture2D16.cs index 2a7fc9f..a36b2e9 100644 --- a/SyncTexture2D16.cs +++ b/SyncTexture2D16.cs @@ -41,7 +41,7 @@ protected override void DoSyncColors() public void ApplyReceiveColorsPartial(SyncTextureData16 data) { - Debug.Log($"[SyncTexture] ApplyReceiveColorsPartial() [ReceiveEnabled={ReceiveEnabled}]"); + Debug.Log($"[SyncTexture] ({name}) ApplyReceiveColorsPartial() [ReceiveEnabled={ReceiveEnabled}]"); Callback(nameof(SyncTextureCallbackListener.OnReceive)); if (!ReceiveEnabled) return; var syncIndex = Array.IndexOf(DataList, data); diff --git a/SyncTexture2D8.cs b/SyncTexture2D8.cs index 88214ad..18cb45e 100644 --- a/SyncTexture2D8.cs +++ b/SyncTexture2D8.cs @@ -41,7 +41,7 @@ protected override void DoSyncColors() public void ApplyReceiveColorsPartial(SyncTextureData8 data) { - Debug.Log($"[SyncTexture] ApplyReceiveColorsPartial() [ReceiveEnabled={ReceiveEnabled}]"); + Debug.Log($"[SyncTexture] ({name}) ApplyReceiveColorsPartial() [ReceiveEnabled={ReceiveEnabled}]"); Callback(nameof(SyncTextureCallbackListener.OnReceive)); if (!ReceiveEnabled) return; var syncIndex = Array.IndexOf(DataList, data); From f2b8b6c238526bec5acdf219a77a52f8a5975a89 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Wed, 11 Dec 2024 02:35:32 +0900 Subject: [PATCH 27/31] {LogPrefix} --- SyncTexture.cs | 8 +++++--- SyncTexture2D.cs | 4 ++-- SyncTexture2D16.cs | 2 +- SyncTexture2D8.cs | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/SyncTexture.cs b/SyncTexture.cs index cc36207..ad5cf0a 100644 --- a/SyncTexture.cs +++ b/SyncTexture.cs @@ -139,7 +139,7 @@ public override bool CancelSync() } Prepareing = false; QueueSerialization(); - Debug.Log($"[SyncTexture] Send Canceled"); + Debug.Log($"{LogPrefix} Send Canceled"); Callback(nameof(SyncTextureCallbackListener.OnSyncCanceled)); return true; } @@ -184,11 +184,11 @@ public void SyncNext() { SyncIndex = -1; QueueSerialization(); - Debug.Log($"[SyncTexture] Sent"); + Debug.Log($"{LogPrefix} Sent"); Callback(nameof(SyncTextureCallbackListener.OnSyncComplete)); return; } - Debug.Log($"[SyncTexture] SyncNext from height={startIndex}/{len}"); + Debug.Log($"{LogPrefix} SyncNext from height={startIndex}/{len}"); SyncColors(startIndex, count); QueueSerialization(); } @@ -218,5 +218,7 @@ protected void Callback(string eventName) void QueueSerialization() { } + + protected string LogPrefix => $"[SyncTexture] ({name})"; } } diff --git a/SyncTexture2D.cs b/SyncTexture2D.cs index 9a94d3f..99516fc 100644 --- a/SyncTexture2D.cs +++ b/SyncTexture2D.cs @@ -69,7 +69,7 @@ public override void OnAsyncGpuReadbackComplete(VRCAsyncGPUReadbackRequest reque var colors = new Color32[Width * Height]; if (request.hasError || !request.TryGetData(colors)) { - Debug.LogError($"[SyncTexture] OnAsyncGpuReadbackComplete error"); + Debug.LogError($"{LogPrefix} OnAsyncGpuReadbackComplete error"); CancelSync(); return; } @@ -86,7 +86,7 @@ public void ReadPixels() } ReadIndex++; var startHeight = ReadIndex * GetPixelsBulkCount; - Debug.Log($"[SyncTexture] ReadPixels from height={startHeight}"); + Debug.Log($"{LogPrefix} ReadPixels from height={startHeight}"); if (startHeight >= Source.height) { ReadIndex = -1; diff --git a/SyncTexture2D16.cs b/SyncTexture2D16.cs index a36b2e9..20ccfba 100644 --- a/SyncTexture2D16.cs +++ b/SyncTexture2D16.cs @@ -41,7 +41,7 @@ protected override void DoSyncColors() public void ApplyReceiveColorsPartial(SyncTextureData16 data) { - Debug.Log($"[SyncTexture] ({name}) ApplyReceiveColorsPartial() [ReceiveEnabled={ReceiveEnabled}]"); + Debug.Log($"{LogPrefix} ApplyReceiveColorsPartial() [ReceiveEnabled={ReceiveEnabled}]"); Callback(nameof(SyncTextureCallbackListener.OnReceive)); if (!ReceiveEnabled) return; var syncIndex = Array.IndexOf(DataList, data); diff --git a/SyncTexture2D8.cs b/SyncTexture2D8.cs index 18cb45e..d7a429e 100644 --- a/SyncTexture2D8.cs +++ b/SyncTexture2D8.cs @@ -41,7 +41,7 @@ protected override void DoSyncColors() public void ApplyReceiveColorsPartial(SyncTextureData8 data) { - Debug.Log($"[SyncTexture] ({name}) ApplyReceiveColorsPartial() [ReceiveEnabled={ReceiveEnabled}]"); + Debug.Log($"{LogPrefix} ApplyReceiveColorsPartial() [ReceiveEnabled={ReceiveEnabled}]"); Callback(nameof(SyncTextureCallbackListener.OnReceive)); if (!ReceiveEnabled) return; var syncIndex = Array.IndexOf(DataList, data); From 51406e1a9923ab100f7579d0b0f1a6c6cd5b6132 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Wed, 11 Dec 2024 02:39:02 +0900 Subject: [PATCH 28/31] 3.0.0-beta.7 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7b8c5b3..94def59 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "net.narazaka.vrchat.sync-texture", - "version": "3.0.0-beta.6", + "version": "3.0.0-beta.7", "displayName": "SyncTexture", "description": "Sync Texture2D", "author": { From dbcd8975a4316950dbd7662604eb56a7215d11b7 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Wed, 11 Dec 2024 02:39:40 +0900 Subject: [PATCH 29/31] fix --- SyncTextureData16.asset | 140 ++++++++++++++++++++++++++++------------ SyncTextureData8.asset | 140 ++++++++++++++++++++++++++++------------ 2 files changed, 194 insertions(+), 86 deletions(-) diff --git a/SyncTextureData16.asset b/SyncTextureData16.asset index 501cff1..33160c7 100644 --- a/SyncTextureData16.asset +++ b/SyncTextureData16.asset @@ -44,37 +44,31 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 3 + Data: 4 - Name: Entry: 7 Data: - Name: $k Entry: 1 - Data: SyncTexture2D + Data: RetryCount - Name: $v Entry: 7 Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: SyncTexture2D + Data: RetryCount - Name: k__BackingField Entry: 7 Data: 3|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: net.narazaka.vrchat.sync_texture.SyncTexture2D16, SyncTexture + Data: System.Int32, mscorlib - Name: Entry: 8 Data: - Name: k__BackingField - Entry: 7 - Data: 4|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: VRC.Udon.UdonBehaviour, VRC.Udon - - Name: - Entry: 8 - Data: + Entry: 9 + Data: 3 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -86,19 +80,13 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 5 - Data: true + Data: false - Name: _fieldAttributes Entry: 7 - Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 4|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 1 - - Name: - Entry: 7 - Data: 6|UnityEngine.SerializeField, UnityEngine.CoreModule - - Name: - Entry: 8 - Data: + Data: 0 - Name: Entry: 13 Data: @@ -116,31 +104,31 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: Data + Data: OnceApplied - Name: $v Entry: 7 - Data: 7|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 5|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: Data + Data: OnceApplied - Name: k__BackingField Entry: 7 - Data: 8|System.RuntimeType, mscorlib + Data: 6|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: System.UInt16[], mscorlib + Data: System.Boolean, mscorlib - Name: Entry: 8 Data: - Name: k__BackingField Entry: 9 - Data: 8 + Data: 6 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 3 - Data: 1 + Entry: 6 + Data: - Name: Entry: 8 Data: @@ -149,19 +137,73 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 7|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 2 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: - Name: Entry: 7 - Data: 10|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + Data: + - Name: $k + Entry: 1 + Data: SyncTexture2D + - Name: $v + Entry: 7 + Data: 8|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: SyncTexture2D + - Name: k__BackingField + Entry: 7 + Data: 9|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: net.narazaka.vrchat.sync_texture.SyncTexture2D16, SyncTexture - Name: Entry: 8 Data: + - Name: k__BackingField + Entry: 7 + Data: 10|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: VRC.Udon.UdonBehaviour, VRC.Udon - Name: + Entry: 8 + Data: + - Name: k__BackingField Entry: 7 - Data: 11|System.NonSerializedAttribute, mscorlib + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 11|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 12|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -182,31 +224,31 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: RetryCount + Data: Data - Name: $v Entry: 7 - Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 13|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: RetryCount + Data: Data - Name: k__BackingField Entry: 7 - Data: 13|System.RuntimeType, mscorlib + Data: 14|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: System.Int32, mscorlib + Data: System.UInt16[], mscorlib - Name: Entry: 8 Data: - Name: k__BackingField Entry: 9 - Data: 13 + Data: 14 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 6 - Data: + Entry: 3 + Data: 1 - Name: Entry: 8 Data: @@ -215,10 +257,22 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 14|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 15|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 0 + Data: 2 + - Name: + Entry: 7 + Data: 16|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: 17|System.NonSerializedAttribute, mscorlib + - Name: + Entry: 8 + Data: - Name: Entry: 13 Data: diff --git a/SyncTextureData8.asset b/SyncTextureData8.asset index 0ae73b7..b2ff61d 100644 --- a/SyncTextureData8.asset +++ b/SyncTextureData8.asset @@ -44,37 +44,31 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 3 + Data: 4 - Name: Entry: 7 Data: - Name: $k Entry: 1 - Data: SyncTexture2D + Data: RetryCount - Name: $v Entry: 7 Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: SyncTexture2D + Data: RetryCount - Name: k__BackingField Entry: 7 Data: 3|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: net.narazaka.vrchat.sync_texture.SyncTexture2D8, SyncTexture + Data: System.Int32, mscorlib - Name: Entry: 8 Data: - Name: k__BackingField - Entry: 7 - Data: 4|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: VRC.Udon.UdonBehaviour, VRC.Udon - - Name: - Entry: 8 - Data: + Entry: 9 + Data: 3 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -86,19 +80,13 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 5 - Data: true + Data: false - Name: _fieldAttributes Entry: 7 - Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 4|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 1 - - Name: - Entry: 7 - Data: 6|UnityEngine.SerializeField, UnityEngine.CoreModule - - Name: - Entry: 8 - Data: + Data: 0 - Name: Entry: 13 Data: @@ -116,31 +104,31 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: Data + Data: OnceApplied - Name: $v Entry: 7 - Data: 7|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 5|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: Data + Data: OnceApplied - Name: k__BackingField Entry: 7 - Data: 8|System.RuntimeType, mscorlib + Data: 6|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: System.Byte[], mscorlib + Data: System.Boolean, mscorlib - Name: Entry: 8 Data: - Name: k__BackingField Entry: 9 - Data: 8 + Data: 6 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 3 - Data: 1 + Entry: 6 + Data: - Name: Entry: 8 Data: @@ -149,19 +137,73 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 7|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 2 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: - Name: Entry: 7 - Data: 10|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + Data: + - Name: $k + Entry: 1 + Data: SyncTexture2D + - Name: $v + Entry: 7 + Data: 8|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: SyncTexture2D + - Name: k__BackingField + Entry: 7 + Data: 9|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: net.narazaka.vrchat.sync_texture.SyncTexture2D8, SyncTexture - Name: Entry: 8 Data: + - Name: k__BackingField + Entry: 7 + Data: 10|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: VRC.Udon.UdonBehaviour, VRC.Udon - Name: + Entry: 8 + Data: + - Name: k__BackingField Entry: 7 - Data: 11|System.NonSerializedAttribute, mscorlib + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 11|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 12|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -182,31 +224,31 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: RetryCount + Data: Data - Name: $v Entry: 7 - Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 13|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: RetryCount + Data: Data - Name: k__BackingField Entry: 7 - Data: 13|System.RuntimeType, mscorlib + Data: 14|System.RuntimeType, mscorlib - Name: Entry: 1 - Data: System.Int32, mscorlib + Data: System.Byte[], mscorlib - Name: Entry: 8 Data: - Name: k__BackingField Entry: 9 - Data: 13 + Data: 14 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 6 - Data: + Entry: 3 + Data: 1 - Name: Entry: 8 Data: @@ -215,10 +257,22 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 14|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 15|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 - Data: 0 + Data: 2 + - Name: + Entry: 7 + Data: 16|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: 17|System.NonSerializedAttribute, mscorlib + - Name: + Entry: 8 + Data: - Name: Entry: 13 Data: From debf280fad8804539e06c83d48693a8764e7f548 Mon Sep 17 00:00:00 2001 From: Narazaka Date: Wed, 11 Dec 2024 02:41:05 +0900 Subject: [PATCH 30/31] scene mod --- Samples/SyncTextureSamples.unity | 148 +++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) diff --git a/Samples/SyncTextureSamples.unity b/Samples/SyncTextureSamples.unity index a532458..573220f 100644 --- a/Samples/SyncTextureSamples.unity +++ b/Samples/SyncTextureSamples.unity @@ -2475,6 +2475,154 @@ MonoBehaviour: ID: 26 SerializedTypeNames: - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1925010074} + ID: 27 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 16793033} + ID: 28 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 602472125} + ID: 29 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 728215156} + ID: 30 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1315241277} + ID: 31 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1608137062} + ID: 32 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1660047609} + ID: 33 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 2059662521} + ID: 34 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 2058186832} + ID: 35 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 508852273} + ID: 36 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 842872302} + ID: 37 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 333788923} + ID: 38 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1139580070} + ID: 39 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1006220933} + ID: 40 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1249734801} + ID: 41 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1229140811} + ID: 42 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 837361820} + ID: 43 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1617044209} + ID: 44 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 222416789} + ID: 45 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 556482365} + ID: 46 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 784329893} + ID: 47 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 660165358} + ID: 48 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 370625087} + ID: 49 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 897011090} + ID: 50 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 713325941} + ID: 51 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 936429030} + ID: 52 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 227920577} + ID: 53 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 44284414} + ID: 54 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 301041438} + ID: 55 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 955273700} + ID: 56 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1831621297} + ID: 57 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1424549155} + ID: 58 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1903809112} + ID: 59 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 34157019} + ID: 60 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1497427288} + ID: 61 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1663589672} + ID: 62 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour + - gameObject: {fileID: 1149690034} + ID: 63 + SerializedTypeNames: + - VRC.Udon.UdonBehaviour portraitCameraPositionOffset: {x: 0, y: 0, z: 0} portraitCameraRotationOffset: {x: 0, y: 1, z: 0, w: -0.00000004371139} NavigationAreas: [] From b0a209acfbcf334fb04ef861312bb6c6f341271c Mon Sep 17 00:00:00 2001 From: Narazaka Date: Wed, 11 Dec 2024 02:41:24 +0900 Subject: [PATCH 31/31] 3.0.0-beta.8 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 94def59..111d1b6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "net.narazaka.vrchat.sync-texture", - "version": "3.0.0-beta.7", + "version": "3.0.0-beta.8", "displayName": "SyncTexture", "description": "Sync Texture2D", "author": {