diff --git a/Samples~/Hand Driver Demo/HandDriver/Model.meta b/Samples~/Hand Driver Demo/Model.meta similarity index 77% rename from Samples~/Hand Driver Demo/HandDriver/Model.meta rename to Samples~/Hand Driver Demo/Model.meta index 688f455..80d0bb5 100644 --- a/Samples~/Hand Driver Demo/HandDriver/Model.meta +++ b/Samples~/Hand Driver Demo/Model.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 132e3b41f20a4f94cb20406095cdb38a +guid: bdb07b9e9393c8040b9000470b1b9119 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.jpg b/Samples~/Hand Driver Demo/Model/vr_glove_color.jpg similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.jpg rename to Samples~/Hand Driver Demo/Model/vr_glove_color.jpg diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.jpg.meta b/Samples~/Hand Driver Demo/Model/vr_glove_color.jpg.meta similarity index 98% rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.jpg.meta rename to Samples~/Hand Driver Demo/Model/vr_glove_color.jpg.meta index fe5f163..90876ee 100644 --- a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.jpg.meta +++ b/Samples~/Hand Driver Demo/Model/vr_glove_color.jpg.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 8589e8bfc64b93b4a8143d70c9127abd +guid: f1ba7622665bf7e44aee3f43fc62e51d TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.mat b/Samples~/Hand Driver Demo/Model/vr_glove_color.mat similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.mat rename to Samples~/Hand Driver Demo/Model/vr_glove_color.mat diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.mat.meta b/Samples~/Hand Driver Demo/Model/vr_glove_color.mat.meta similarity index 64% rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.mat.meta rename to Samples~/Hand Driver Demo/Model/vr_glove_color.mat.meta index 8abd4ee..d80db84 100644 --- a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.mat.meta +++ b/Samples~/Hand Driver Demo/Model/vr_glove_color.mat.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 -guid: a824637846136a043bd018d27422dfd7 +guid: d28ff85c01985904bb98e5bc03251ff7 NativeFormatImporter: externalObjects: {} - mainObjectFileID: 2100000 + mainObjectFileID: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_new.fbx b/Samples~/Hand Driver Demo/Model/vr_glove_new.fbx similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_new.fbx rename to Samples~/Hand Driver Demo/Model/vr_glove_new.fbx diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_new.fbx.meta b/Samples~/Hand Driver Demo/Model/vr_glove_new.fbx.meta similarity index 98% rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_new.fbx.meta rename to Samples~/Hand Driver Demo/Model/vr_glove_new.fbx.meta index c5a9069..82e36c6 100644 --- a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_new.fbx.meta +++ b/Samples~/Hand Driver Demo/Model/vr_glove_new.fbx.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 7c6fe65dc83e437438be792aad474a5d +guid: bf4ff8034d8337a4d8f291f88a544688 ModelImporter: serializedVersion: 21300 internalIDToNameTable: [] diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_normal.png b/Samples~/Hand Driver Demo/Model/vr_glove_normal.png similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_normal.png rename to Samples~/Hand Driver Demo/Model/vr_glove_normal.png diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_normal.png.meta b/Samples~/Hand Driver Demo/Model/vr_glove_normal.png.meta similarity index 98% rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_normal.png.meta rename to Samples~/Hand Driver Demo/Model/vr_glove_normal.png.meta index e75290c..d6f50cd 100644 --- a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_normal.png.meta +++ b/Samples~/Hand Driver Demo/Model/vr_glove_normal.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3748dee6899f1094a9133c221951f5e9 +guid: ed1b2724730cc594aa8c79b70d2deb24 TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_right_model.fbx b/Samples~/Hand Driver Demo/Model/vr_glove_right_model.fbx similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_right_model.fbx rename to Samples~/Hand Driver Demo/Model/vr_glove_right_model.fbx diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_right_model.fbx.meta b/Samples~/Hand Driver Demo/Model/vr_glove_right_model.fbx.meta similarity index 98% rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_right_model.fbx.meta rename to Samples~/Hand Driver Demo/Model/vr_glove_right_model.fbx.meta index 2a21c85..b38a981 100644 --- a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_right_model.fbx.meta +++ b/Samples~/Hand Driver Demo/Model/vr_glove_right_model.fbx.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c4e403660ace5984b8a2ec3594efa03b +guid: 9183cab5601042546807088e330d8679 ModelImporter: serializedVersion: 21300 internalIDToNameTable: [] diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_gloves_prototype.fbx b/Samples~/Hand Driver Demo/Model/vr_gloves_prototype.fbx similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_gloves_prototype.fbx rename to Samples~/Hand Driver Demo/Model/vr_gloves_prototype.fbx diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_gloves_prototype.fbx.meta b/Samples~/Hand Driver Demo/Model/vr_gloves_prototype.fbx.meta similarity index 98% rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_gloves_prototype.fbx.meta rename to Samples~/Hand Driver Demo/Model/vr_gloves_prototype.fbx.meta index a05ccc4..b05d8e3 100644 --- a/Samples~/Hand Driver Demo/HandDriver/Model/vr_gloves_prototype.fbx.meta +++ b/Samples~/Hand Driver Demo/Model/vr_gloves_prototype.fbx.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: fd5d3b6f78f09274297fdd339530e6cf +guid: 0305e3a35dffee44ea72d74b0d43fada ModelImporter: serializedVersion: 21300 internalIDToNameTable: [] diff --git a/Samples~/Hand Driver Demo/Plugins.meta b/Samples~/Hand Driver Demo/Plugins.meta new file mode 100644 index 0000000..e4efdb4 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6f2d24fab7bde647aee587d1edea618 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Android.meta b/Samples~/Hand Driver Demo/Plugins/Android.meta new file mode 100644 index 0000000..9b343d3 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Android.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5cc2363ec8a06534888a10ed4811262e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Android/AndroidManifest.xml b/Samples~/Hand Driver Demo/Plugins/Android/AndroidManifest.xml new file mode 100644 index 0000000..b3ae9a2 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Android/AndroidManifest.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples~/Hand Driver Demo/Plugins/Android/AndroidManifest.xml.meta b/Samples~/Hand Driver Demo/Plugins/Android/AndroidManifest.xml.meta new file mode 100644 index 0000000..20829d6 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Android/AndroidManifest.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e3b2dbf36e4c448cfae5ccdedb0b4831 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Android/MWArray.dll b/Samples~/Hand Driver Demo/Plugins/Android/MWArray.dll new file mode 100644 index 0000000..2153a45 Binary files /dev/null and b/Samples~/Hand Driver Demo/Plugins/Android/MWArray.dll differ diff --git a/Samples~/Hand Driver Demo/Plugins/Android/MWArray.dll.meta b/Samples~/Hand Driver Demo/Plugins/Android/MWArray.dll.meta new file mode 100644 index 0000000..fd82d38 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Android/MWArray.dll.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 4a66f3fb8d2284d45b6d098dd8d5c0dc +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Android: 0 + Exclude Editor: 0 + Exclude Linux64: 0 + Exclude OSXUniversal: 0 + Exclude Win: 0 + Exclude Win64: 0 + - first: + Android: Android + second: + enabled: 1 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: None + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Android/MathNet.Numerics.dll b/Samples~/Hand Driver Demo/Plugins/Android/MathNet.Numerics.dll new file mode 100644 index 0000000..ed514b2 Binary files /dev/null and b/Samples~/Hand Driver Demo/Plugins/Android/MathNet.Numerics.dll differ diff --git a/Samples~/Hand Driver Demo/Plugins/Android/MathNet.Numerics.dll.meta b/Samples~/Hand Driver Demo/Plugins/Android/MathNet.Numerics.dll.meta new file mode 100644 index 0000000..b46a158 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Android/MathNet.Numerics.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 2da9db1ebc1520047a125131449f289f +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Android/ar1_linear.aar b/Samples~/Hand Driver Demo/Plugins/Android/ar1_linear.aar new file mode 100644 index 0000000..01612c0 Binary files /dev/null and b/Samples~/Hand Driver Demo/Plugins/Android/ar1_linear.aar differ diff --git a/Samples~/Hand Driver Demo/Plugins/Android/ar1_linear.aar.meta b/Samples~/Hand Driver Demo/Plugins/Android/ar1_linear.aar.meta new file mode 100644 index 0000000..9a6ff1c --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Android/ar1_linear.aar.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 6205652e29e08fe4893554c50a14c0cf +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Android/baseProjectTemplate.gradle.DISABLED b/Samples~/Hand Driver Demo/Plugins/Android/baseProjectTemplate.gradle.DISABLED new file mode 100644 index 0000000..02fad2e --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Android/baseProjectTemplate.gradle.DISABLED @@ -0,0 +1,31 @@ +allprojects { + buildscript { + repositories {**ARTIFACTORYREPOSITORY** + maven { url 'https://maven.rokid.com/repository/maven-public/' } + google() + jcenter() + } + + dependencies { + // If you are changing the Android Gradle Plugin version, make sure it is compatible with the Gradle version preinstalled with Unity + // See which Gradle version is preinstalled with Unity here https://docs.unity3d.com/Manual/android-gradle-overview.html + // See official Gradle and Android Gradle Plugin compatibility table here https://developer.android.com/studio/releases/gradle-plugin#updating-gradle + // To specify a custom Gradle version in Unity, go do "Preferences > External Tools", uncheck "Gradle Installed with Unity (recommended)" and specify a path to a custom Gradle version + classpath 'com.android.tools.build:gradle:4.0.1' + **BUILD_SCRIPT_DEPS** + } + } + + repositories {**ARTIFACTORYREPOSITORY** + maven { url 'https://maven.rokid.com/repository/maven-public/' } + google() + jcenter() + flatDir { + dirs "${project(':unityLibrary').projectDir}/libs" + } + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/Samples~/Hand Driver Demo/Plugins/Android/baseProjectTemplate.gradle.DISABLED.meta b/Samples~/Hand Driver Demo/Plugins/Android/baseProjectTemplate.gradle.DISABLED.meta new file mode 100644 index 0000000..f5fd3c3 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Android/baseProjectTemplate.gradle.DISABLED.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 70cae7e35dc55ba4488f14ebd941ec1b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Android/mainTemplate.gradle.DISABLED b/Samples~/Hand Driver Demo/Plugins/Android/mainTemplate.gradle.DISABLED new file mode 100644 index 0000000..412227e --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Android/mainTemplate.gradle.DISABLED @@ -0,0 +1,45 @@ +apply plugin: 'com.android.library' +**APPLY_PLUGINS** + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + + //核心依赖 + implementation 'com.rokid.uxrplugin:rkuxrplugin:2.3.12' + //语音识别依赖 + implementation("com.rokid.axr:glassvoice-phone:1.3.0") + +**DEPS**} + +android { + compileSdkVersion **APIVERSION** + buildToolsVersion '**BUILDTOOLS**' + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + defaultConfig { + minSdkVersion **MINSDKVERSION** + targetSdkVersion **TARGETSDKVERSION** + ndk { + abiFilters **ABIFILTERS** + } + versionCode **VERSIONCODE** + versionName '**VERSIONNAME**' + consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD** + } + + lintOptions { + abortOnError false + } + + aaptOptions { + noCompress = **BUILTIN_NOCOMPRESS** + unityStreamingAssets.tokenize(', ') + ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~" + }**PACKAGING_OPTIONS** +}**REPOSITORIES** +**IL_CPP_BUILD_SETUP** +**SOURCE_BUILD_SETUP** +**EXTERNAL_SOURCES** diff --git a/Samples~/Hand Driver Demo/Plugins/Android/mainTemplate.gradle.DISABLED.meta b/Samples~/Hand Driver Demo/Plugins/Android/mainTemplate.gradle.DISABLED.meta new file mode 100644 index 0000000..045fbfc --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Android/mainTemplate.gradle.DISABLED.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d00a4052481eabd4f9950a6a34f030a2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Android/unityandroidbluetoothlelib.jar b/Samples~/Hand Driver Demo/Plugins/Android/unityandroidbluetoothlelib.jar new file mode 100644 index 0000000..81f6f95 Binary files /dev/null and b/Samples~/Hand Driver Demo/Plugins/Android/unityandroidbluetoothlelib.jar differ diff --git a/Samples~/Hand Driver Demo/Plugins/Android/unityandroidbluetoothlelib.jar.meta b/Samples~/Hand Driver Demo/Plugins/Android/unityandroidbluetoothlelib.jar.meta new file mode 100644 index 0000000..af3533c --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Android/unityandroidbluetoothlelib.jar.meta @@ -0,0 +1,70 @@ +fileFormatVersion: 2 +guid: f158ceee465c745bc89002ae57bc033e +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Android: 0 + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Android: Android + second: + enabled: 1 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: x86 + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: x86_64 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/BluetoothDeviceScript.cs b/Samples~/Hand Driver Demo/Plugins/BluetoothDeviceScript.cs new file mode 100644 index 0000000..72226da --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/BluetoothDeviceScript.cs @@ -0,0 +1,395 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +public class BluetoothDeviceScript : MonoBehaviour +{ +#if UNITY_IOS + public Dictionary BLEStandardUUIDs = new Dictionary(); +#endif + + public List DiscoveredDeviceList; + + public Action InitializedAction; + public Action DeinitializedAction; + public Action ErrorAction; + public Action ServiceAddedAction; + public Action StartedAdvertisingAction; + public Action StoppedAdvertisingAction; + public Action DiscoveredPeripheralAction; + public Action DiscoveredPeripheralWithAdvertisingInfoAction; + public Action DiscoveredBeaconAction; + public Action RetrievedConnectedPeripheralAction; + public Action PeripheralReceivedWriteDataAction; + public Action ConnectedPeripheralAction; + public Action ConnectedDisconnectPeripheralAction; + public Action DisconnectedPeripheralAction; + public Action DiscoveredServiceAction; + public Action DiscoveredCharacteristicAction; + public Action DidWriteCharacteristicAction; + public Dictionary>> DidUpdateNotificationStateForCharacteristicAction; + public Dictionary>> DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction; + public Dictionary>> DidUpdateCharacteristicValueAction; + public Dictionary>> DidUpdateCharacteristicValueWithDeviceAddressAction; + public Action RequestMtuAction; + public Action ReadRSSIAction; + + // Use this for initialization + void Start () + { + DiscoveredDeviceList = new List (); + DidUpdateNotificationStateForCharacteristicAction = new Dictionary>> (); + DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction = new Dictionary>> (); + DidUpdateCharacteristicValueAction = new Dictionary>> (); + DidUpdateCharacteristicValueWithDeviceAddressAction = new Dictionary>> (); + +#if UNITY_IOS + BLEStandardUUIDs["Heart Rate Measurement"] = "00002A37-0000-1000-8000-00805F9B34FB"; +#endif + } + + // Update is called once per frame + void Update () + { + } + + const string deviceInitializedString = "Initialized"; + const string deviceDeInitializedString = "DeInitialized"; + const string deviceErrorString = "Error"; + const string deviceServiceAdded = "ServiceAdded"; + const string deviceStartedAdvertising = "StartedAdvertising"; + const string deviceStoppedAdvertising = "StoppedAdvertising"; + const string deviceDiscoveredPeripheral = "DiscoveredPeripheral"; + const string deviceDiscoveredBeacon = "DiscoveredBeacon"; + const string deviceRetrievedConnectedPeripheral = "RetrievedConnectedPeripheral"; + const string devicePeripheralReceivedWriteData = "PeripheralReceivedWriteData"; + const string deviceConnectedPeripheral = "ConnectedPeripheral"; + const string deviceDisconnectedPeripheral = "DisconnectedPeripheral"; + const string deviceDiscoveredService = "DiscoveredService"; + const string deviceDiscoveredCharacteristic = "DiscoveredCharacteristic"; + const string deviceDidWriteCharacteristic = "DidWriteCharacteristic"; + const string deviceDidUpdateNotificationStateForCharacteristic = "DidUpdateNotificationStateForCharacteristic"; + const string deviceDidUpdateValueForCharacteristic = "DidUpdateValueForCharacteristic"; + const string deviceLog = "Log"; + const string deviceRequestMtu = "MtuChanged"; + const string deviceReadRSSI = "DidReadRSSI"; + + public void OnBluetoothMessage (string message) + { + if (message != null) + { + char[] delim = new char[] { '~' }; + string[] parts = message.Split (delim); + + string log = ""; + for (int i = 0; i < parts.Length; ++i) + log += string.Format("| {0}", parts[i]); + BluetoothLEHardwareInterface.Log(log); + + if (message.Length >= deviceInitializedString.Length && message.Substring (0, deviceInitializedString.Length) == deviceInitializedString) + { + if (InitializedAction != null) + InitializedAction (); + } + else if (message.Length >= deviceLog.Length && message.Substring (0, deviceLog.Length) == deviceLog) + { + BluetoothLEHardwareInterface.Log (parts[1]); + } + else if (message.Length >= deviceDeInitializedString.Length && message.Substring (0, deviceDeInitializedString.Length) == deviceDeInitializedString) + { + BluetoothLEHardwareInterface.FinishDeInitialize (); + + if (DeinitializedAction != null) + DeinitializedAction (); + } + else if (message.Length >= deviceErrorString.Length && message.Substring (0, deviceErrorString.Length) == deviceErrorString) + { + string error = ""; + + if (parts.Length >= 2) + error = parts[1]; + + if (ErrorAction != null) + ErrorAction (error); + } + else if (message.Length >= deviceServiceAdded.Length && message.Substring (0, deviceServiceAdded.Length) == deviceServiceAdded) + { + if (parts.Length >= 2) + { + if (ServiceAddedAction != null) + ServiceAddedAction (parts[1]); + } + } + else if (message.Length >= deviceStartedAdvertising.Length && message.Substring (0, deviceStartedAdvertising.Length) == deviceStartedAdvertising) + { + BluetoothLEHardwareInterface.Log ("Started Advertising"); + + if (StartedAdvertisingAction != null) + StartedAdvertisingAction (); + } + else if (message.Length >= deviceStoppedAdvertising.Length && message.Substring (0, deviceStoppedAdvertising.Length) == deviceStoppedAdvertising) + { + BluetoothLEHardwareInterface.Log ("Stopped Advertising"); + + if (StoppedAdvertisingAction != null) + StoppedAdvertisingAction (); + } + else if (message.Length >= deviceDiscoveredPeripheral.Length && message.Substring (0, deviceDiscoveredPeripheral.Length) == deviceDiscoveredPeripheral) + { + if (parts.Length >= 3) + { + // the first callback will only get called the first time this device is seen + // this is because it gets added to the a list in the DiscoveredDeviceList + // after that only the second callback will get called and only if there is + // advertising data available + if (!DiscoveredDeviceList.Contains (parts[1] + "|" + parts[2])) + { + DiscoveredDeviceList.Add (parts[1] + "|" + parts[2]); + + if (DiscoveredPeripheralAction != null) + DiscoveredPeripheralAction (parts[1], parts[2]); + } + + if (parts.Length >= 5 && DiscoveredPeripheralWithAdvertisingInfoAction != null) + { + // get the rssi from the 4th value + int rssi = 0; + if (!int.TryParse (parts[3], out rssi)) + rssi = 0; + + // parse the base 64 encoded data that is the 5th value + byte[] bytes = System.Convert.FromBase64String (parts[4]); + + DiscoveredPeripheralWithAdvertisingInfoAction (parts[1], parts[2], rssi, bytes); + } + } + } + else if (message.Length >= deviceDiscoveredBeacon.Length && message.Substring (0, deviceDiscoveredBeacon.Length) == deviceDiscoveredBeacon) + { + if (parts.Length >= 7) + { + var iBeaconData = new BluetoothLEHardwareInterface.iBeaconData (); + + iBeaconData.UUID = parts[1]; + if (!int.TryParse (parts[2], out iBeaconData.Major)) + iBeaconData.Major = 0; + if (!int.TryParse (parts[3], out iBeaconData.Minor)) + iBeaconData.Minor = 0; + if (!int.TryParse (parts[4], out iBeaconData.RSSI)) + iBeaconData.RSSI = 0; + if (!int.TryParse (parts[5], out iBeaconData.AndroidSignalPower)) + iBeaconData.AndroidSignalPower = 0; + int iOSProximity = 0; + if (!int.TryParse (parts[6], out iOSProximity)) + iOSProximity = 0; + iBeaconData.iOSProximity = (BluetoothLEHardwareInterface.iOSProximity)iOSProximity; + + if (DiscoveredBeaconAction != null) + DiscoveredBeaconAction (iBeaconData); + } + } + else if (message.Length >= deviceRetrievedConnectedPeripheral.Length && message.Substring (0, deviceRetrievedConnectedPeripheral.Length) == deviceRetrievedConnectedPeripheral) + { + if (parts.Length >= 3) + { + DiscoveredDeviceList.Add (parts[1]); + + if (RetrievedConnectedPeripheralAction != null) + RetrievedConnectedPeripheralAction (parts[1], parts[2]); + } + } + else if (message.Length >= devicePeripheralReceivedWriteData.Length && message.Substring (0, devicePeripheralReceivedWriteData.Length) == devicePeripheralReceivedWriteData) + { + if (parts.Length >= 3) + OnPeripheralData (parts[1], parts[2]); + } + else if (message.Length >= deviceConnectedPeripheral.Length && message.Substring (0, deviceConnectedPeripheral.Length) == deviceConnectedPeripheral) + { + if (parts.Length >= 2 && ConnectedPeripheralAction != null) + ConnectedPeripheralAction (parts[1]); + } + else if (message.Length >= deviceDisconnectedPeripheral.Length && message.Substring (0, deviceDisconnectedPeripheral.Length) == deviceDisconnectedPeripheral) + { + if (parts.Length >= 2) + { + if (ConnectedDisconnectPeripheralAction != null) + ConnectedDisconnectPeripheralAction (parts[1]); + + if (DisconnectedPeripheralAction != null) + DisconnectedPeripheralAction (parts[1]); + } + } + else if (message.Length >= deviceDiscoveredService.Length && message.Substring (0, deviceDiscoveredService.Length) == deviceDiscoveredService) + { + if (parts.Length >= 3 && DiscoveredServiceAction != null) + DiscoveredServiceAction (parts[1], parts[2]); + } + else if (message.Length >= deviceDiscoveredCharacteristic.Length && message.Substring (0, deviceDiscoveredCharacteristic.Length) == deviceDiscoveredCharacteristic) + { + if (parts.Length >= 4 && DiscoveredCharacteristicAction != null) + DiscoveredCharacteristicAction (parts[1], parts[2], parts[3]); + } + else if (message.Length >= deviceDidWriteCharacteristic.Length && message.Substring (0, deviceDidWriteCharacteristic.Length) == deviceDidWriteCharacteristic) + { + if (parts.Length >= 2 && DidWriteCharacteristicAction != null) + DidWriteCharacteristicAction (parts[1]); + } + else if (message.Length >= deviceDidUpdateNotificationStateForCharacteristic.Length && message.Substring (0, deviceDidUpdateNotificationStateForCharacteristic.Length) == deviceDidUpdateNotificationStateForCharacteristic) + { + if (parts.Length >= 3) + { + if (DidUpdateNotificationStateForCharacteristicAction != null && DidUpdateNotificationStateForCharacteristicAction.ContainsKey (parts[1])) + { + var characteristicAction = DidUpdateNotificationStateForCharacteristicAction[parts[1]]; + if (characteristicAction != null && characteristicAction.ContainsKey (parts[2])) + { + var action = characteristicAction[parts[2]]; + if (action != null) + action (parts[2]); + } + } + + if (DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction != null && DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction.ContainsKey (parts[1])) + { + var characteristicAction = DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[parts[1]]; + if (characteristicAction != null && characteristicAction.ContainsKey (parts[2])) + { + var action = characteristicAction[parts[2]]; + if (action != null) + action (parts[1], parts[2]); + } + } + } + } + else if (message.Length >= deviceDidUpdateValueForCharacteristic.Length && message.Substring (0, deviceDidUpdateValueForCharacteristic.Length) == deviceDidUpdateValueForCharacteristic) + { + if (parts.Length >= 4) + OnBluetoothData (parts[1], parts[2], parts[3]); + } + else if (message.Length >= deviceRequestMtu.Length && message.Substring(0, deviceRequestMtu.Length) == deviceRequestMtu) + { + if (parts.Length >= 3) + { + if (RequestMtuAction != null) + { + int mtu = 0; + if (int.TryParse(parts[2], out mtu)) + RequestMtuAction(parts[1], mtu); + } + } + } + else if (message.Length >= deviceReadRSSI.Length && message.Substring(0, deviceReadRSSI.Length) == deviceReadRSSI) + { + if (parts.Length >= 3) + { + if (ReadRSSIAction != null) + { + int rssi = 0; + if (int.TryParse(parts[2], out rssi)) + ReadRSSIAction(parts[1], rssi); + } + } + } + } + } + + public void OnBluetoothData (string base64Data) + { + OnBluetoothData ("", "", base64Data); + } + + public void OnBluetoothData (string deviceAddress, string characteristic, string base64Data) + { + if (base64Data != null) + { + byte[] bytes = System.Convert.FromBase64String (base64Data); + if (bytes.Length > 0) + { + deviceAddress = deviceAddress.ToUpper (); + characteristic = characteristic.ToUpper (); + +#if UNITY_IOS + if (BLEStandardUUIDs.ContainsKey(characteristic)) + characteristic = BLEStandardUUIDs[characteristic]; +#endif + + BluetoothLEHardwareInterface.Log ("Device: " + deviceAddress + " Characteristic Received: " + characteristic); + + string byteString = ""; + foreach (byte b in bytes) + byteString += string.Format ("{0:X2}", b); + + BluetoothLEHardwareInterface.Log (byteString); + + if (DidUpdateCharacteristicValueAction != null && DidUpdateCharacteristicValueAction.ContainsKey (deviceAddress)) + { + var characteristicAction = DidUpdateCharacteristicValueAction[deviceAddress]; +#if UNITY_ANDROID + characteristic = characteristic.ToLower (); +#endif + if (characteristicAction != null && characteristicAction.ContainsKey (characteristic)) + { + var action = characteristicAction[characteristic]; + if (action != null) + action (characteristic, bytes); + } + } + + if (DidUpdateCharacteristicValueWithDeviceAddressAction != null && DidUpdateCharacteristicValueWithDeviceAddressAction.ContainsKey (deviceAddress)) + { + var characteristicAction = DidUpdateCharacteristicValueWithDeviceAddressAction[deviceAddress]; +#if UNITY_ANDROID + characteristic = characteristic.ToLower (); +#endif + if (characteristicAction != null && characteristicAction.ContainsKey (characteristic)) + { + var action = characteristicAction[characteristic]; + if (action != null) + action (deviceAddress, characteristic, bytes); + } + } + } + } + } + + public void OnPeripheralData (string characteristic, string base64Data) + { + if (base64Data != null) + { + byte[] bytes = System.Convert.FromBase64String (base64Data); + if (bytes.Length > 0) + { + BluetoothLEHardwareInterface.Log ("Peripheral Received: " + characteristic); + + string byteString = ""; + foreach (byte b in bytes) + byteString += string.Format ("{0:X2}", b); + + BluetoothLEHardwareInterface.Log (byteString); + + if (PeripheralReceivedWriteDataAction != null) + PeripheralReceivedWriteDataAction (characteristic, bytes); + } + } + } + +#if UNITY_IOS + private void IncludeCoreLocationFramework() + { + // this method is here because Unity now only includes CoreLocation + // if there are methods in the .cs code that access it + Input.location.Stop (); + } +#endif + + public void OnApplicationQuit() + { + if (Application.isEditor) + { + BluetoothLEHardwareInterface.DeInitialize(() => + { + BluetoothLEHardwareInterface.Log("Deinitialize complete"); + }); + } + } +} diff --git a/Samples~/Hand Driver Demo/Plugins/BluetoothDeviceScript.cs.meta b/Samples~/Hand Driver Demo/Plugins/BluetoothDeviceScript.cs.meta new file mode 100644 index 0000000..e31cb90 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/BluetoothDeviceScript.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b188ba3ac565e48f58fc50dd5db4818d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Samples~/Hand Driver Demo/Plugins/BluetoothHardwareInterface.cs b/Samples~/Hand Driver Demo/Plugins/BluetoothHardwareInterface.cs new file mode 100644 index 0000000..0ccd8db --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/BluetoothHardwareInterface.cs @@ -0,0 +1,1147 @@ +#define EXPERIMENTAL_MACOS_EDITOR +/* + +This build includes an experimental implementation for the macOS editor of Unity +It is experiemental because of the way that the Unity editor hangs on to plugin +instances after leaving play mode. This causes this plugin to not free up its +resources and therefore can cause crashes in the Unity editor on macOS. + +Since Unity does not give plugins or apps a chance to do anything when the user +hits the play / stop button in the Editor there isn't a chance for the app to +deinitialize this plugin. + +What I have found in my own use of this is that if you put a button on your app +somewhere that you can press before hitting the stop button in the editor and +then in that button handler call this plugin's Deinitialize method it seems to +minimize how often the editor crashes. + +WARNING: using the macOS editor can cause the editor to crash an loose your work +and settings. Save often. You have been warned, so please don't contact me if +you have lost work becausee of this problem. This is experimental only. Use at +your own risk. + +*/ + +using UnityEngine; +using System; +using System.Runtime.InteropServices; +using System.Collections.Generic; +using System.Collections; + +#if UNITY_2018_3_OR_NEWER +#if UNITY_ANDROID +using UnityEngine.Android; +#endif +#endif + +public class BluetoothLEHardwareInterface +{ + public enum CBCharacteristicProperties + { + CBCharacteristicPropertyBroadcast = 0x01, + CBCharacteristicPropertyRead = 0x02, + CBCharacteristicPropertyWriteWithoutResponse = 0x04, + CBCharacteristicPropertyWrite = 0x08, + CBCharacteristicPropertyNotify = 0x10, + CBCharacteristicPropertyIndicate = 0x20, + CBCharacteristicPropertyAuthenticatedSignedWrites = 0x40, + CBCharacteristicPropertyExtendedProperties = 0x80, + CBCharacteristicPropertyNotifyEncryptionRequired = 0x100, + CBCharacteristicPropertyIndicateEncryptionRequired = 0x200, + }; + + public enum ScanMode + { + LowPower = 0, + Balanced = 1, + LowLatency = 2 + } + + public enum ConnectionPriority + { + LowPower = 0, + Balanced = 1, + High = 2, + } + + public enum AdvertisingMode + { + LowPower = 0, + Balanced = 1, + LowLatency = 2 + } + + public enum AdvertisingPower + { + UltraLow = 0, + Low = 1, + Medium = 2, + High = 3, + } + + public enum iOSProximity + { + Unknown = 0, + Immediate = 1, + Near = 2, + Far = 3, + } + + public struct iBeaconData + { + public string UUID; + public int Major; + public int Minor; + public int RSSI; + public int AndroidSignalPower; + public iOSProximity iOSProximity; + } + +#if UNITY_ANDROID + public enum CBAttributePermissions + { + CBAttributePermissionsReadable = 0x01, + CBAttributePermissionsWriteable = 0x10, + CBAttributePermissionsReadEncryptionRequired = 0x02, + CBAttributePermissionsWriteEncryptionRequired = 0x20, + }; +#else + public enum CBAttributePermissions + { + CBAttributePermissionsReadable = 0x01, + CBAttributePermissionsWriteable = 0x02, + CBAttributePermissionsReadEncryptionRequired = 0x04, + CBAttributePermissionsWriteEncryptionRequired = 0x08, + }; +#endif + +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + + public delegate void UnitySendMessageCallbackDelegate (IntPtr objectName, IntPtr commandName, IntPtr commandData); + + [DllImport ("BluetoothLEOSX")] + private static extern void ConnectUnitySendMessageCallback ([MarshalAs (UnmanagedType.FunctionPtr)]UnitySendMessageCallbackDelegate callbackMethod); + + [DllImport ("BluetoothLEOSX")] + private static extern void OSXBluetoothLELog (string message); + + [DllImport ("BluetoothLEOSX")] + private static extern void OSXBluetoothLEInitialize ([MarshalAs (UnmanagedType.Bool)]bool asCentral, [MarshalAs (UnmanagedType.Bool)]bool asPeripheral); + + [DllImport ("BluetoothLEOSX")] + private static extern void OSXBluetoothLEDeInitialize (); + + [DllImport ("BluetoothLEOSX")] + private static extern void OSXBluetoothLEPauseMessages (bool isPaused); + + [DllImport ("BluetoothLEOSX")] + private static extern void OSXBluetoothLEScanForPeripheralsWithServices (string serviceUUIDsString, bool allowDuplicates, bool rssiOnly, bool clearPeripheralList); + + [DllImport ("BluetoothLEOSX")] + private static extern void OSXBluetoothLERetrieveListOfPeripheralsWithServices (string serviceUUIDsString); + + [DllImport ("BluetoothLEOSX")] + private static extern void OSXBluetoothLEStopScan (); + + [DllImport ("BluetoothLEOSX")] + private static extern void OSXBluetoothLEConnectToPeripheral (string name); + + [DllImport ("BluetoothLEOSX")] + private static extern void OSXBluetoothLEDisconnectAll (); + + [DllImport("BluetoothLEOSX")] + private static extern void OSXBluetoothLERequestMtu (string name, int mtu); + + [DllImport("BluetoothLEOSX")] + private static extern void OSXBluetoothLEReadRSSI (string name); + + [DllImport ("BluetoothLEOSX")] + private static extern void OSXBluetoothLEDisconnectPeripheral (string name); + + [DllImport ("BluetoothLEOSX")] + private static extern void OSXBluetoothLEReadCharacteristic (string name, string service, string characteristic); + + [DllImport ("BluetoothLEOSX")] + private static extern void OSXBluetoothLEWriteCharacteristic (string name, string service, string characteristic, byte[] data, int length, bool withResponse); + + [DllImport ("BluetoothLEOSX")] + private static extern void OSXBluetoothLESubscribeCharacteristic (string name, string service, string characteristic); + + [DllImport ("BluetoothLEOSX")] + private static extern void OSXBluetoothLEUnSubscribeCharacteristic (string name, string service, string characteristic); + +#endif + +#if UNITY_IOS || UNITY_TVOS + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLELog (string message); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEInitialize (bool asCentral, bool asPeripheral); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEDeInitialize (); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEPauseMessages (bool isPaused); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEScanForPeripheralsWithServices (string serviceUUIDsString, bool allowDuplicates, bool rssiOnly, bool clearPeripheralList); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLERetrieveListOfPeripheralsWithServices (string serviceUUIDsString); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEStopScan (); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEConnectToPeripheral (string name); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEDisconnectPeripheral (string name); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEReadCharacteristic (string name, string service, string characteristic); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEWriteCharacteristic (string name, string service, string characteristic, byte[] data, int length, bool withResponse); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLESubscribeCharacteristic (string name, string service, string characteristic); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEUnSubscribeCharacteristic (string name, string service, string characteristic); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEDisconnectAll (); + + [DllImport("__Internal")] + private static extern void _iOSBluetoothLERequestMtu(string name, int mtu); + + [DllImport("__Internal")] + private static extern void _iOSBluetoothLEReadRSSI(string name); + +#if !UNITY_TVOS + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEScanForBeacons (string proximityUUIDsString); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEStopBeaconScan (); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEPeripheralName (string newName); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLECreateService (string uuid, bool primary); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLERemoveService (string uuid); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLERemoveServices (); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLECreateCharacteristic (string uuid, int properties, int permissions, byte[] data, int length); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLERemoveCharacteristic (string uuid); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLERemoveCharacteristics (); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEStartAdvertising (); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEStopAdvertising (); + + [DllImport ("__Internal")] + private static extern void _iOSBluetoothLEUpdateCharacteristicValue (string uuid, byte[] data, int length); +#endif +#elif UNITY_ANDROID + static AndroidJavaObject _android = null; +#endif + + + private static BluetoothDeviceScript bluetoothDeviceScript; + + public static void Log (string message) + { +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + Debug.Log(message); +#else + if (!Application.isEditor) + { +#if UNITY_IOS || UNITY_TVOS + _iOSBluetoothLELog (message); +#elif UNITY_ANDROID + if (_android == null) + { + AndroidJavaClass javaClass = new AndroidJavaClass ("com.shatalmic.unityandroidbluetoothlelib.UnityBluetoothLE"); + _android = javaClass.CallStatic ("getInstance"); + } + + if (_android != null) + _android.Call ("androidBluetoothLog", message); +#endif + } +#endif + } + +#if UNITY_2018_3_OR_NEWER +#if UNITY_ANDROID + private static IEnumerator AskForPermissions() + { + bool scanAsked = false; + bool connectAsked = false; + bool permissionsGranted = false; + float timerValue = 0f; + + while (timerValue < 5f) + { + if (!Permission.HasUserAuthorizedPermission("android.permission.BLUETOOTH_SCAN")) + { + if (!scanAsked) + { + Permission.RequestUserPermission("android.permission.BLUETOOTH_SCAN"); + scanAsked = true; + } + } + else + { + if (!Permission.HasUserAuthorizedPermission("android.permission.BLUETOOTH_CONNECT")) + { + if (!connectAsked) + { + Permission.RequestUserPermission("android.permission.BLUETOOTH_CONNECT"); + connectAsked = true; + break; + } + } + else + { + permissionsGranted = true; + } + } + + timerValue += Time.deltaTime; + + yield return new WaitForEndOfFrame(); + } + + if (!permissionsGranted) + { + if (bluetoothDeviceScript.ErrorAction != null) + bluetoothDeviceScript.ErrorAction("Error~Permissions Not Granted"); + } + } +#endif +#endif + + public static BluetoothDeviceScript Initialize (bool asCentral, bool asPeripheral, Action action, Action errorAction) + { + bluetoothDeviceScript = null; + + GameObject bluetoothLEReceiver = GameObject.Find("BluetoothLEReceiver"); + if (bluetoothLEReceiver == null) + bluetoothLEReceiver = new GameObject ("BluetoothLEReceiver"); + + if (bluetoothLEReceiver != null) + { + bluetoothDeviceScript = bluetoothLEReceiver.GetComponent (); + if (bluetoothDeviceScript == null) + bluetoothDeviceScript = bluetoothLEReceiver.AddComponent (); + + if (bluetoothDeviceScript != null) + { + bluetoothDeviceScript.InitializedAction = action; + bluetoothDeviceScript.ErrorAction = errorAction; + } + } + + GameObject.DontDestroyOnLoad (bluetoothLEReceiver); + +#if UNITY_2018_3_OR_NEWER +#if UNITY_ANDROID + + Log($"API: {SystemInfo.operatingSystem}"); + + int apiVersion = 30; + int apiIndex = SystemInfo.operatingSystem.IndexOf(" API-"); + if (apiIndex >= 0) + { + Log($"API Index: {apiIndex}"); + string versionString = SystemInfo.operatingSystem.Substring(apiIndex + 5, 2); + Log($"API Version String: {versionString}"); + if (!int.TryParse(versionString, out apiVersion)) + { + Log($"int parse failed: {versionString}"); + apiVersion = 30; + } + } + + Log($"API Version: {apiVersion}"); + + if (apiVersion >= 31) + { + if (asCentral) + bluetoothDeviceScript.StartCoroutine(AskForPermissions()); + + if (asPeripheral) + { + if (!Permission.HasUserAuthorizedPermission("android.permission.BLUETOOTH_ADVERTISE")) + Permission.RequestUserPermission("android.permission.BLUETOOTH_ADVERTISE"); + } + } + else + { + if (!Permission.HasUserAuthorizedPermission(Permission.FineLocation)) + Permission.RequestUserPermission(Permission.FineLocation); + } + +#endif +#endif + +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + ConnectUnitySendMessageCallback((objectName, commandName, commandData) => { + string name = Marshal.PtrToStringAuto (objectName); + string command = Marshal.PtrToStringAuto (commandName); + string data = Marshal.PtrToStringAuto (commandData); + + GameObject foundObject = GameObject.Find (name); + if (foundObject != null) + foundObject.SendMessage (command, data); + }); + + BluetoothLEHardwareInterface.OSXBluetoothLEInitialize (asCentral, asPeripheral); +#else + if (Application.isEditor) + { + if (bluetoothDeviceScript != null) + bluetoothDeviceScript.SendMessage ("OnBluetoothMessage", "Initialized"); + } + else + { +#if UNITY_IOS || UNITY_TVOS + _iOSBluetoothLEInitialize (asCentral, asPeripheral); +#elif UNITY_ANDROID + if (_android == null) + { + AndroidJavaClass javaClass = new AndroidJavaClass ("com.shatalmic.unityandroidbluetoothlelib.UnityBluetoothLE"); + _android = javaClass.CallStatic ("getInstance"); + } + + if (_android != null) + _android.Call ("androidBluetoothInitialize", asCentral, asPeripheral); +#endif + } +#endif + + return bluetoothDeviceScript; + } + + public static void DeInitialize (Action action) + { + if (bluetoothDeviceScript != null) + bluetoothDeviceScript.DeinitializedAction = action; + +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + BluetoothLEHardwareInterface.OSXBluetoothLEDeInitialize (); +#else + if (Application.isEditor) + { + if (bluetoothDeviceScript != null) + bluetoothDeviceScript.SendMessage ("OnBluetoothMessage", "DeInitialized"); + } + else + { +#if UNITY_IOS || UNITY_TVOS + _iOSBluetoothLEDeInitialize (); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidBluetoothDeInitialize"); +#endif + } +#endif + } + + public static void FinishDeInitialize () + { + GameObject bluetoothLEReceiver = GameObject.Find("BluetoothLEReceiver"); + if (bluetoothLEReceiver != null) + GameObject.Destroy(bluetoothLEReceiver); + } + + public static void BluetoothEnable (bool enable) + { + if (!Application.isEditor) + { +#if UNITY_IOS || UNITY_TVOS + //_iOSBluetoothLELog (message); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidBluetoothEnable", enable); +#endif + } + } + + public static void BluetoothScanMode (ScanMode scanMode) + { + if (!Application.isEditor) + { +#if UNITY_IOS || UNITY_TVOS +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidBluetoothScanMode", (int)scanMode); +#endif + } + } + + public static void BluetoothConnectionPriority (ConnectionPriority connectionPriority) + { + if (!Application.isEditor) + { +#if UNITY_IOS || UNITY_TVOS +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidBluetoothConnectionPriority", (int)connectionPriority); +#endif + } + } + + public static void BluetoothAdvertisingMode (AdvertisingMode advertisingMode) + { + if (!Application.isEditor) + { +#if UNITY_IPHONE || UNITY_TVOS +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidBluetoothAdvertisingMode", (int)advertisingMode); +#endif + } + } + + public static void BluetoothAdvertisingPower (AdvertisingPower advertisingPower) + { + if (!Application.isEditor) + { +#if UNITY_IPHONE || UNITY_TVOS +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidBluetoothAdvertisingPower", (int)advertisingPower); +#endif + } + } + + public static void PauseMessages (bool isPaused) + { +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + OSXBluetoothLEPauseMessages (isPaused); +#else + if (!Application.isEditor) + { +#if UNITY_IOS || UNITY_TVOS + _iOSBluetoothLEPauseMessages (isPaused); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidBluetoothPause", isPaused); +#endif + } +#endif + } + + // scanning for beacons requires that you know the Proximity UUID + public static void ScanForBeacons (string[] proximityUUIDs, Action actionBeaconResponse) + { + if (proximityUUIDs != null && proximityUUIDs.Length >= 0) + { + if (!Application.isEditor) + { + if (bluetoothDeviceScript != null) + bluetoothDeviceScript.DiscoveredBeaconAction = actionBeaconResponse; + + string proximityUUIDsString = null; + + if (proximityUUIDs != null && proximityUUIDs.Length > 0) + { + proximityUUIDsString = ""; + + foreach (string proximityUUID in proximityUUIDs) + proximityUUIDsString += proximityUUID + "|"; + + proximityUUIDsString = proximityUUIDsString.Substring (0, proximityUUIDsString.Length - 1); + } + +#if UNITY_IOS + _iOSBluetoothLEScanForBeacons (proximityUUIDsString); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidBluetoothScanForBeacons", proximityUUIDsString); +#endif + } + } + } + + public static void RequestMtu(string name, int mtu, Action action) + { + if (bluetoothDeviceScript != null) + { + bluetoothDeviceScript.RequestMtuAction = action; + } + +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + if (mtu > 184) + mtu = 184; + OSXBluetoothLERequestMtu(name, mtu); +#elif UNITY_IOS || UNITY_TVOS + if (mtu > 180) + mtu = 180; + _iOSBluetoothLERequestMtu (name, mtu); +#elif UNITY_ANDROID + if (_android != null) + { + _android.Call ("androidBluetoothRequestMtu", name, mtu); + } +#endif + } + + public static void ReadRSSI(string name, Action action) + { + if (bluetoothDeviceScript != null) + { + bluetoothDeviceScript.ReadRSSIAction = action; + } + +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + OSXBluetoothLEReadRSSI(name); +#elif UNITY_IOS || UNITY_TVOS + _iOSBluetoothLEReadRSSI(name); +#elif UNITY_ANDROID + if (_android != null) + { + _android.Call ("androidBluetoothReadRSSI", name); + } +#endif + } + + public static void ScanForPeripheralsWithServices (string[] serviceUUIDs, Action action, Action actionAdvertisingInfo = null, bool rssiOnly = false, bool clearPeripheralList = true, int recordType = 0xFF) + { +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + if (!Application.isEditor) + { +#endif + if (bluetoothDeviceScript != null) + { + bluetoothDeviceScript.DiscoveredPeripheralAction = action; + bluetoothDeviceScript.DiscoveredPeripheralWithAdvertisingInfoAction = actionAdvertisingInfo; + + if (bluetoothDeviceScript.DiscoveredDeviceList != null) + bluetoothDeviceScript.DiscoveredDeviceList.Clear (); + } + + string serviceUUIDsString = null; + + if (serviceUUIDs != null && serviceUUIDs.Length > 0) + { + serviceUUIDsString = ""; + + foreach (string serviceUUID in serviceUUIDs) + serviceUUIDsString += serviceUUID + "|"; + + serviceUUIDsString = serviceUUIDsString.Substring (0, serviceUUIDsString.Length - 1); + } + +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + OSXBluetoothLEScanForPeripheralsWithServices (serviceUUIDsString, (actionAdvertisingInfo != null), rssiOnly, clearPeripheralList); +#elif UNITY_IOS || UNITY_TVOS + _iOSBluetoothLEScanForPeripheralsWithServices (serviceUUIDsString, (actionAdvertisingInfo != null), rssiOnly, clearPeripheralList); +#elif UNITY_ANDROID + if (_android != null) + { + if (serviceUUIDsString == null) + serviceUUIDsString = ""; + + _android.Call ("androidBluetoothScanForPeripheralsWithServices", serviceUUIDsString, rssiOnly, recordType); + } +#endif +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + } +#endif + } + + public static void RetrieveListOfPeripheralsWithServices (string[] serviceUUIDs, Action action) + { +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + if (!Application.isEditor) + { +#endif + if (bluetoothDeviceScript != null) + { + bluetoothDeviceScript.RetrievedConnectedPeripheralAction = action; + + if (bluetoothDeviceScript.DiscoveredDeviceList != null) + bluetoothDeviceScript.DiscoveredDeviceList.Clear (); + } + + string serviceUUIDsString = serviceUUIDs.Length > 0 ? "" : null; + + foreach (string serviceUUID in serviceUUIDs) + serviceUUIDsString += serviceUUID + "|"; + + // strip the last delimeter + serviceUUIDsString = serviceUUIDsString.Substring (0, serviceUUIDsString.Length - 1); + +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + OSXBluetoothLERetrieveListOfPeripheralsWithServices (serviceUUIDsString); +#elif UNITY_IOS || UNITY_TVOS + _iOSBluetoothLERetrieveListOfPeripheralsWithServices (serviceUUIDsString); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidBluetoothRetrieveListOfPeripheralsWithServices", serviceUUIDsString); +#endif +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + } +#endif + } + + public static void StopScan () + { +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + OSXBluetoothLEStopScan (); +#else + if (!Application.isEditor) + { +#if UNITY_IOS || UNITY_TVOS + _iOSBluetoothLEStopScan (); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidBluetoothStopScan"); +#endif + } +#endif + } + + public static void StopBeaconScan () + { + if (!Application.isEditor) + { +#if UNITY_IOS + _iOSBluetoothLEStopBeaconScan (); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidBluetoothStopBeaconScan"); +#endif + } + } + + public static void DisconnectAll () + { +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + OSXBluetoothLEDisconnectAll (); +#else + if (!Application.isEditor) + { +#if UNITY_IOS || UNITY_TVOS + _iOSBluetoothLEDisconnectAll (); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidBluetoothDisconnectAll"); +#endif + } +#endif + } + + public static void ConnectToPeripheral (string name, Action connectAction, Action serviceAction, Action characteristicAction, Action disconnectAction = null) + { +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + if (!Application.isEditor) + { +#endif + if (bluetoothDeviceScript != null) + { + bluetoothDeviceScript.ConnectedPeripheralAction = connectAction; + bluetoothDeviceScript.DiscoveredServiceAction = serviceAction; + bluetoothDeviceScript.DiscoveredCharacteristicAction = characteristicAction; + bluetoothDeviceScript.ConnectedDisconnectPeripheralAction = disconnectAction; + } + +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + OSXBluetoothLEConnectToPeripheral (name); +#elif UNITY_IOS || UNITY_TVOS + _iOSBluetoothLEConnectToPeripheral (name); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidBluetoothConnectToPeripheral", name); +#endif +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + } +#endif + } + + public static void DisconnectPeripheral (string name, Action action) + { +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + if (!Application.isEditor) + { +#endif + if (bluetoothDeviceScript != null) + bluetoothDeviceScript.DisconnectedPeripheralAction = action; + +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + OSXBluetoothLEDisconnectPeripheral (name); +#elif UNITY_IOS || UNITY_TVOS + _iOSBluetoothLEDisconnectPeripheral (name); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidBluetoothDisconnectPeripheral", name); +#endif +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + } +#endif + } + + public static void ReadCharacteristic (string name, string service, string characteristic, Action action) + { +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + if (!Application.isEditor) + { +#endif + if (bluetoothDeviceScript != null) + { + if (!bluetoothDeviceScript.DidUpdateCharacteristicValueAction.ContainsKey (name)) + bluetoothDeviceScript.DidUpdateCharacteristicValueAction[name] = new Dictionary>(); + +#if UNITY_IOS || UNITY_TVOS || (EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)) + bluetoothDeviceScript.DidUpdateCharacteristicValueAction [name] [characteristic] = action; +#elif UNITY_ANDROID + bluetoothDeviceScript.DidUpdateCharacteristicValueAction [name] [FullUUID (characteristic).ToLower ()] = action; +#endif + } + +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + OSXBluetoothLEReadCharacteristic (name, service, characteristic); +#elif UNITY_IOS || UNITY_TVOS + _iOSBluetoothLEReadCharacteristic (name, service, characteristic); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidReadCharacteristic", name, service, characteristic); +#endif +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + } +#endif + } + + public static void WriteCharacteristic (string name, string service, string characteristic, byte[] data, int length, bool withResponse, Action action) + { +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + if (!Application.isEditor) + { +#endif + if (bluetoothDeviceScript != null) + bluetoothDeviceScript.DidWriteCharacteristicAction = action; + +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + OSXBluetoothLEWriteCharacteristic(name, service, characteristic, data, length, withResponse); +#elif UNITY_IOS || UNITY_TVOS + _iOSBluetoothLEWriteCharacteristic (name, service, characteristic, data, length, withResponse); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidWriteCharacteristic", name, service, characteristic, data, length, withResponse); +#endif +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + } +#endif + } + + public static void SubscribeCharacteristic (string name, string service, string characteristic, Action notificationAction, Action action) + { +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + if (!Application.isEditor) + { +#endif + if (bluetoothDeviceScript != null) + { + name = name.ToUpper (); + service = service.ToUpper (); + characteristic = characteristic.ToUpper (); + +#if UNITY_IOS || UNITY_TVOS || (EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)) + if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction.ContainsKey (name)) + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction [name] = new Dictionary> (); + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction [name] [characteristic] = notificationAction; + + if (!bluetoothDeviceScript.DidUpdateCharacteristicValueAction.ContainsKey (name)) + bluetoothDeviceScript.DidUpdateCharacteristicValueAction [name] = new Dictionary> (); + bluetoothDeviceScript.DidUpdateCharacteristicValueAction [name] [characteristic] = action; +#elif UNITY_ANDROID + if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction.ContainsKey (name)) + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction [name] = new Dictionary> (); + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction [name] [FullUUID (characteristic).ToLower ()] = notificationAction; + + if (!bluetoothDeviceScript.DidUpdateCharacteristicValueAction.ContainsKey (name)) + bluetoothDeviceScript.DidUpdateCharacteristicValueAction [name] = new Dictionary> (); + bluetoothDeviceScript.DidUpdateCharacteristicValueAction [name] [FullUUID (characteristic).ToLower ()] = action; +#endif + } + +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + OSXBluetoothLESubscribeCharacteristic (name, service, characteristic); +#elif UNITY_IOS || UNITY_TVOS + _iOSBluetoothLESubscribeCharacteristic (name, service, characteristic); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidSubscribeCharacteristic", name, service, characteristic); +#endif +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + } +#endif + } + + public static void SubscribeCharacteristicWithDeviceAddress (string name, string service, string characteristic, Action notificationAction, Action action) + { +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + if (!Application.isEditor) + { +#endif + if (bluetoothDeviceScript != null) + { + name = name.ToUpper (); + service = service.ToUpper (); + characteristic = characteristic.ToUpper (); + +#if UNITY_IOS || UNITY_TVOS || (EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)) + if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction.ContainsKey (name)) + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name] = new Dictionary>(); + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name][characteristic] = notificationAction; + + if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction.ContainsKey (name)) + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name] = new Dictionary>(); + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name][characteristic] = null; + + if (!bluetoothDeviceScript.DidUpdateCharacteristicValueWithDeviceAddressAction.ContainsKey (name)) + bluetoothDeviceScript.DidUpdateCharacteristicValueWithDeviceAddressAction[name] = new Dictionary>(); + bluetoothDeviceScript.DidUpdateCharacteristicValueWithDeviceAddressAction[name][characteristic] = action; +#elif UNITY_ANDROID + if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction.ContainsKey (name)) + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name] = new Dictionary>(); + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name][FullUUID (characteristic).ToLower ()] = notificationAction; + + if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction.ContainsKey(name)) + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name] = new Dictionary>(); + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name][FullUUID (characteristic).ToLower ()] = null; + + if (!bluetoothDeviceScript.DidUpdateCharacteristicValueWithDeviceAddressAction.ContainsKey (name)) + bluetoothDeviceScript.DidUpdateCharacteristicValueWithDeviceAddressAction[name] = new Dictionary>(); + bluetoothDeviceScript.DidUpdateCharacteristicValueWithDeviceAddressAction[name][FullUUID (characteristic).ToLower ()] = action; +#endif + } + +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + OSXBluetoothLESubscribeCharacteristic (name, service, characteristic); +#elif UNITY_IOS || UNITY_TVOS + _iOSBluetoothLESubscribeCharacteristic (name, service, characteristic); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidSubscribeCharacteristic", name, service, characteristic); +#endif +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + } +#endif + } + + public static void UnSubscribeCharacteristic (string name, string service, string characteristic, Action action) + { +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + if (!Application.isEditor) + { +#endif + if (bluetoothDeviceScript != null) + { + name = name.ToUpper (); + service = service.ToUpper (); + characteristic = characteristic.ToUpper (); + +#if UNITY_IOS || UNITY_TVOS || (EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)) + if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction.ContainsKey (name)) + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name] = new Dictionary>(); + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name][characteristic] = null; + + if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction.ContainsKey (name)) + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name] = new Dictionary> (); + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name][characteristic] = action; +#elif UNITY_ANDROID + if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction.ContainsKey (name)) + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name] = new Dictionary>(); + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name][FullUUID (characteristic).ToLower ()] = null; + + if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction.ContainsKey (name)) + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name] = new Dictionary> (); + bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name][FullUUID (characteristic).ToLower ()] = action; +#endif + } + +#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) + OSXBluetoothLEUnSubscribeCharacteristic (name, service, characteristic); +#elif UNITY_IOS || UNITY_TVOS + _iOSBluetoothLEUnSubscribeCharacteristic (name, service, characteristic); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidUnsubscribeCharacteristic", name, service, characteristic); +#endif +#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR + } +#endif + } + + public static void PeripheralName (string newName) + { + if (!Application.isEditor) + { +#if UNITY_IOS + _iOSBluetoothLEPeripheralName (newName); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidPeripheralName", newName); +#endif + } + } + + public static void CreateService (string uuid, bool primary, Action action) + { + if (!Application.isEditor) + { + if (bluetoothDeviceScript != null) + bluetoothDeviceScript.ServiceAddedAction = action; + +#if UNITY_IOS + _iOSBluetoothLECreateService (uuid, primary); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidCreateService", uuid, primary); +#endif + } + } + + public static void RemoveService (string uuid) + { + if (!Application.isEditor) + { +#if UNITY_IOS + _iOSBluetoothLERemoveService (uuid); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidRemoveService", uuid); +#endif + } + } + + public static void RemoveServices () + { + if (!Application.isEditor) + { +#if UNITY_IOS + _iOSBluetoothLERemoveServices (); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidRemoveServices"); +#endif + } + } + + public static void CreateCharacteristic (string uuid, CBCharacteristicProperties properties, CBAttributePermissions permissions, byte[] data, int length, Action action) + { + if (!Application.isEditor) + { + if (bluetoothDeviceScript != null) + bluetoothDeviceScript.PeripheralReceivedWriteDataAction = action; + +#if UNITY_IOS + _iOSBluetoothLECreateCharacteristic (uuid, (int)properties, (int)permissions, data, length); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidCreateCharacteristic", uuid, (int)properties, (int)permissions, data, length); +#endif + } + } + + public static void RemoveCharacteristic (string uuid) + { + if (!Application.isEditor) + { + if (bluetoothDeviceScript != null) + bluetoothDeviceScript.PeripheralReceivedWriteDataAction = null; + +#if UNITY_IOS + _iOSBluetoothLERemoveCharacteristic (uuid); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidRemoveCharacteristic", uuid); +#endif + } + } + + public static void RemoveCharacteristics () + { + if (!Application.isEditor) + { +#if UNITY_IOS + _iOSBluetoothLERemoveCharacteristics (); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidRemoveCharacteristics"); +#endif + } + } + + public static void StartAdvertising (Action action, bool isConnectable = true, bool includeName = true, int manufacturerId = 0, byte[] manufacturerSpecificData = null) + { + if (!Application.isEditor) + { + if (bluetoothDeviceScript != null) + bluetoothDeviceScript.StartedAdvertisingAction = action; + +#if UNITY_IOS + _iOSBluetoothLEStartAdvertising (); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidStartAdvertising", isConnectable, includeName, manufacturerId, manufacturerSpecificData); +#endif + } + } + + public static void StopAdvertising (Action action) + { + if (!Application.isEditor) + { + if (bluetoothDeviceScript != null) + bluetoothDeviceScript.StoppedAdvertisingAction = action; + +#if UNITY_IOS + _iOSBluetoothLEStopAdvertising (); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidStopAdvertising"); +#endif + } + } + + public static void UpdateCharacteristicValue (string uuid, byte[] data, int length) + { + if (!Application.isEditor) + { +#if UNITY_IOS + _iOSBluetoothLEUpdateCharacteristicValue (uuid, data, length); +#elif UNITY_ANDROID + if (_android != null) + _android.Call ("androidUpdateCharacteristicValue", uuid, data, length); +#endif + } + } + + public static string FullUUID (string uuid) + { + if (uuid.Length == 4) + return "0000" + uuid + "-0000-1000-8000-00805F9B34FB"; + return uuid; + } +} diff --git a/Samples~/Hand Driver Demo/Plugins/BluetoothHardwareInterface.cs.meta b/Samples~/Hand Driver Demo/Plugins/BluetoothHardwareInterface.cs.meta new file mode 100644 index 0000000..f3b5a0a --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/BluetoothHardwareInterface.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b8496a9b1a1df40af9ada2311d1d6d09 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant.meta new file mode 100644 index 0000000..e819585 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2937a230c77d36a4dbb5a47fe61e8c3f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween.meta new file mode 100644 index 0000000..50e2c01 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b6e300a5bd0db6b45974abfc99737f73 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/DOTween.dll b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/DOTween.dll new file mode 100644 index 0000000..57112d3 Binary files /dev/null and b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/DOTween.dll differ diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/DOTween.dll.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/DOTween.dll.meta new file mode 100644 index 0000000..482dbb8 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/DOTween.dll.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: a811bde74b26b53498b4f6d872b09b6d +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 1 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor.meta new file mode 100644 index 0000000..d284dad --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 83e4bbf9e17f8f94b8442369c7c47e87 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll new file mode 100644 index 0000000..4911a86 Binary files /dev/null and b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll differ diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta new file mode 100644 index 0000000..53590f3 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 45d5034162d6cf04dbe46da84fc7d074 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + DefaultValueInitialized: true + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll new file mode 100644 index 0000000..ec5dd4c Binary files /dev/null and b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll differ diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.meta new file mode 100644 index 0000000..c6717e9 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 2bf936a5d80799e4e88ec9270fea75a4 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + DefaultValueInitialized: true + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules.meta new file mode 100644 index 0000000..4982b1b --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e79ebd36be99a8047838bae73cb2d81a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs new file mode 100644 index 0000000..d958ae0 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs @@ -0,0 +1,198 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; +using UnityEngine; +using UnityEngine.Audio; // Required for AudioMixer + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleAudio + { + #region Shortcuts + + #region Audio + + /// Tweens an AudioSource's volume to the given value. + /// Also stores the AudioSource as the tween's target so it can be used for filtered operations + /// The end value to reach (0 to 1)The duration of the tween + public static TweenerCore DOFade(this AudioSource target, float endValue, float duration) + { + if (endValue < 0) endValue = 0; + else if (endValue > 1) endValue = 1; + TweenerCore t = DOTween.To(() => target.volume, x => target.volume = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an AudioSource's pitch to the given value. + /// Also stores the AudioSource as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPitch(this AudioSource target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pitch, x => target.pitch = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region AudioMixer + + /// Tweens an AudioMixer's exposed float to the given value. + /// Also stores the AudioMixer as the tween's target so it can be used for filtered operations. + /// Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer. + /// Name given to the exposed float to set + /// The end value to reachThe duration of the tween + public static TweenerCore DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration) + { + TweenerCore t = DOTween.To(()=> { + float currVal; + target.GetFloat(floatName, out currVal); + return currVal; + }, x=> target.SetFloat(floatName, x), endValue, duration); + t.SetTarget(target); + return t; + } + + #region Operation Shortcuts + + /// + /// Completes all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens completed + /// (meaning the tweens that don't have infinite loops and were not already complete) + /// + /// For Sequences only: if TRUE also internal Sequence callbacks will be fired, + /// otherwise they will be ignored + public static int DOComplete(this AudioMixer target, bool withCallbacks = false) + { + return DOTween.Complete(target, withCallbacks); + } + + /// + /// Kills all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens killed. + /// + /// If TRUE completes the tween before killing it + public static int DOKill(this AudioMixer target, bool complete = false) + { + return DOTween.Kill(target, complete); + } + + /// + /// Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens flipped. + /// + public static int DOFlip(this AudioMixer target) + { + return DOTween.Flip(target); + } + + /// + /// Sends to the given position all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens involved. + /// + /// Time position to reach + /// (if higher than the whole tween duration the tween will simply reach its end) + /// If TRUE will play the tween after reaching the given position, otherwise it will pause it + public static int DOGoto(this AudioMixer target, float to, bool andPlay = false) + { + return DOTween.Goto(target, to, andPlay); + } + + /// + /// Pauses all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens paused. + /// + public static int DOPause(this AudioMixer target) + { + return DOTween.Pause(target); + } + + /// + /// Plays all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlay(this AudioMixer target) + { + return DOTween.Play(target); + } + + /// + /// Plays backwards all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlayBackwards(this AudioMixer target) + { + return DOTween.PlayBackwards(target); + } + + /// + /// Plays forward all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlayForward(this AudioMixer target) + { + return DOTween.PlayForward(target); + } + + /// + /// Restarts all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens restarted. + /// + public static int DORestart(this AudioMixer target) + { + return DOTween.Restart(target); + } + + /// + /// Rewinds all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens rewinded. + /// + public static int DORewind(this AudioMixer target) + { + return DOTween.Rewind(target); + } + + /// + /// Smoothly rewinds all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens rewinded. + /// + public static int DOSmoothRewind(this AudioMixer target) + { + return DOTween.SmoothRewind(target); + } + + /// + /// Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens involved. + /// + public static int DOTogglePause(this AudioMixer target) + { + return DOTween.TogglePause(target); + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta new file mode 100644 index 0000000..50aa010 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b766d08851589514b97afb23c6f30a70 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs new file mode 100644 index 0000000..2ab3775 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs @@ -0,0 +1,146 @@ +using UnityEngine; + +#if false || EPO_DOTWEEN // MODULE_MARKER + +using EPOOutline; +using DG.Tweening.Plugins.Options; +using DG.Tweening; +using DG.Tweening.Core; + +namespace DG.Tweening +{ + public static class DOTweenModuleEPOOutline + { + public static int DOKill(this SerializedPass target, bool complete) + { + return DOTween.Kill(target, complete); + } + + public static TweenerCore DOFloat(this SerializedPass target, string propertyName, float endValue, float duration) + { + var tweener = DOTween.To(() => target.GetFloat(propertyName), x => target.SetFloat(propertyName, x), endValue, duration); + tweener.SetOptions(true).SetTarget(target); + return tweener; + } + + public static TweenerCore DOFade(this SerializedPass target, string propertyName, float endValue, float duration) + { + var tweener = DOTween.ToAlpha(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration); + tweener.SetOptions(true).SetTarget(target); + return tweener; + } + + public static TweenerCore DOColor(this SerializedPass target, string propertyName, Color endValue, float duration) + { + var tweener = DOTween.To(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration); + tweener.SetOptions(false).SetTarget(target); + return tweener; + } + + public static TweenerCore DOVector(this SerializedPass target, string propertyName, Vector4 endValue, float duration) + { + var tweener = DOTween.To(() => target.GetVector(propertyName), x => target.SetVector(propertyName, x), endValue, duration); + tweener.SetOptions(false).SetTarget(target); + return tweener; + } + + public static TweenerCore DOFloat(this SerializedPass target, int propertyId, float endValue, float duration) + { + var tweener = DOTween.To(() => target.GetFloat(propertyId), x => target.SetFloat(propertyId, x), endValue, duration); + tweener.SetOptions(true).SetTarget(target); + return tweener; + } + + public static TweenerCore DOFade(this SerializedPass target, int propertyId, float endValue, float duration) + { + var tweener = DOTween.ToAlpha(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration); + tweener.SetOptions(true).SetTarget(target); + return tweener; + } + + public static TweenerCore DOColor(this SerializedPass target, int propertyId, Color endValue, float duration) + { + var tweener = DOTween.To(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration); + tweener.SetOptions(false).SetTarget(target); + return tweener; + } + + public static TweenerCore DOVector(this SerializedPass target, int propertyId, Vector4 endValue, float duration) + { + var tweener = DOTween.To(() => target.GetVector(propertyId), x => target.SetVector(propertyId, x), endValue, duration); + tweener.SetOptions(false).SetTarget(target); + return tweener; + } + + public static int DOKill(this Outlinable.OutlineProperties target, bool complete = false) + { + return DOTween.Kill(target, complete); + } + + public static int DOKill(this Outliner target, bool complete = false) + { + return DOTween.Kill(target, complete); + } + + /// + /// Controls the alpha (transparency) of the outline + /// + public static TweenerCore DOFade(this Outlinable.OutlineProperties target, float endValue, float duration) + { + var tweener = DOTween.ToAlpha(() => target.Color, x => target.Color = x, endValue, duration); + tweener.SetOptions(true).SetTarget(target); + return tweener; + } + + /// + /// Controls the color of the outline + /// + public static TweenerCore DOColor(this Outlinable.OutlineProperties target, Color endValue, float duration) + { + var tweener = DOTween.To(() => target.Color, x => target.Color = x, endValue, duration); + tweener.SetOptions(false).SetTarget(target); + return tweener; + } + + /// + /// Controls the amount of blur applied to the outline + /// + public static TweenerCore DOBlurShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false) + { + var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration); + tweener.SetOptions(snapping).SetTarget(target); + return tweener; + } + + /// + /// Controls the amount of blur applied to the outline + /// + public static TweenerCore DOBlurShift(this Outliner target, float endValue, float duration, bool snapping = false) + { + var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration); + tweener.SetOptions(snapping).SetTarget(target); + return tweener; + } + + /// + /// Controls the amount of dilation applied to the outline + /// + public static TweenerCore DODilateShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false) + { + var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration); + tweener.SetOptions(snapping).SetTarget(target); + return tweener; + } + + /// + /// Controls the amount of dilation applied to the outline + /// + public static TweenerCore DODilateShift(this Outliner target, float endValue, float duration, bool snapping = false) + { + var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration); + tweener.SetOptions(snapping).SetTarget(target); + return tweener; + } + } +} +#endif diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta new file mode 100644 index 0000000..4b8991f --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e944529dcaee98f4e9498d80e541d93e +timeCreated: 1602593330 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs new file mode 100644 index 0000000..08b0700 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs @@ -0,0 +1,216 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Core.Enums; +using DG.Tweening.Plugins; +using DG.Tweening.Plugins.Core.PathCore; +using DG.Tweening.Plugins.Options; +using UnityEngine; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModulePhysics + { + #region Shortcuts + + #region Rigidbody + + /// Tweens a Rigidbody's position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMove(this Rigidbody target, Vector3 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's X position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveX(this Rigidbody target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue, 0, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's Y position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveY(this Rigidbody target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, endValue, 0), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's Z position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveZ(this Rigidbody target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue), duration); + t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody's rotation to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// Rotation mode + public static TweenerCore DORotate(this Rigidbody target, Vector3 endValue, float duration, RotateMode mode = RotateMode.Fast) + { + TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration); + t.SetTarget(target); + t.plugOptions.rotateMode = mode; + return t; + } + + /// Tweens a Rigidbody's rotation so that it will look towards the given position. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The position to look atThe duration of the tween + /// Eventual axis constraint for the rotation + /// The vector that defines in which direction up is (default: Vector3.up) + public static TweenerCore DOLookAt(this Rigidbody target, Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3? up = null) + { + TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, towards, duration) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetLookAt); + t.plugOptions.axisConstraint = axisConstraint; + t.plugOptions.up = (up == null) ? Vector3.up : (Vector3)up; + return t; + } + + #region Special + + /// Tweens a Rigidbody's position to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJump(this Rigidbody target, Vector3 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, jumpPower, 0), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(() => startPosY = target.position.y); + s.Append(DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue.x, 0, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue.z), duration) + .SetOptions(AxisConstraint.Z, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + yTween.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector3 pos = target.position; + pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad); + target.MovePosition(pos); + }); + return s; + } + + /// Tweens a Rigidbody's position through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations. + /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOPath. + /// The waypoints to go through + /// The duration of the tween + /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOPath( + this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, new Path(pathType, path, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + return t; + } + /// Tweens a Rigidbody's localPosition through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations + /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOLocalPath. + /// The waypoint to go through + /// The duration of the tween + /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOLocalPath( + this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + // Used by path editor when creating the actual tween, so it can pass a pre-compiled path + internal static TweenerCore DOPath( + this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + return t; + } + internal static TweenerCore DOLocalPath( + this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta new file mode 100644 index 0000000..0ce0d75 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dae9aa560b4242648a3affa2bfabc365 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs new file mode 100644 index 0000000..8ce2b56 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs @@ -0,0 +1,193 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Plugins; +using DG.Tweening.Plugins.Core.PathCore; +using DG.Tweening.Plugins.Options; +using UnityEngine; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModulePhysics2D + { + #region Shortcuts + + #region Rigidbody2D Shortcuts + + /// Tweens a Rigidbody2D's position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMove(this Rigidbody2D target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody2D's X position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveX(this Rigidbody2D target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(endValue, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody2D's Y position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMoveY(this Rigidbody2D target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(0, endValue), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + + /// Tweens a Rigidbody2D's rotation to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DORotate(this Rigidbody2D target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration); + t.SetTarget(target); + return t; + } + + #region Special + + /// Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations. + /// IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJump(this Rigidbody2D target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.position, x => target.position = x, new Vector2(0, jumpPower), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(() => startPosY = target.position.y); + s.Append(DOTween.To(() => target.position, x => target.position = x, new Vector2(endValue.x, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + yTween.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector3 pos = target.position; + pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad); + target.MovePosition(pos); + }); + return s; + } + + /// Tweens a Rigidbody2D's position through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations. + /// NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOPath. + /// The waypoints to go through + /// The duration of the tween + /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOPath( + this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + int len = path.Length; + Vector3[] path3D = new Vector3[len]; + for (int i = 0; i < len; ++i) path3D[i] = path[i]; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), new Path(pathType, path3D, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + return t; + } + /// Tweens a Rigidbody2D's localPosition through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOLocalPath. + /// The waypoint to go through + /// The duration of the tween + /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOLocalPath( + this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + int len = path.Length; + Vector3[] path3D = new Vector3[len]; + for (int i = 0; i < len; ++i) path3D[i] = path[i]; + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path3D, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + // Used by path editor when creating the actual tween, so it can pass a pre-compiled path + internal static TweenerCore DOPath( + this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + return t; + } + internal static TweenerCore DOLocalPath( + this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody2D = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta new file mode 100644 index 0000000..ca9ed29 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 230fe34542e175245ba74b4659dae700 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs new file mode 100644 index 0000000..72afb7b --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs @@ -0,0 +1,93 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER +using System; +using UnityEngine; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleSprite + { + #region Shortcuts + + #region SpriteRenderer + + /// Tweens a SpriteRenderer's color to the given value. + /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this SpriteRenderer target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Material's alpha color to the given value. + /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this SpriteRenderer target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a SpriteRenderer's color using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this SpriteRenderer target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + + #endregion + + #region Blendables + + #region SpriteRenderer + + /// Tweens a SpriteRenderer's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this SpriteRenderer target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta new file mode 100644 index 0000000..a0c67c4 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 188918ab119d93148aa0de59ccf5286b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs new file mode 100644 index 0000000..2381f4c --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs @@ -0,0 +1,662 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER + +using System; +using System.Globalization; +using UnityEngine; +using UnityEngine.UI; +using DG.Tweening.Core; +using DG.Tweening.Core.Enums; +using DG.Tweening.Plugins; +using DG.Tweening.Plugins.Options; +using Outline = UnityEngine.UI.Outline; +using Text = UnityEngine.UI.Text; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleUI + { + #region Shortcuts + + #region CanvasGroup + + /// Tweens a CanvasGroup's alpha color to the given value. + /// Also stores the canvasGroup as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this CanvasGroup target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.alpha, x => target.alpha = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region Graphic + + /// Tweens an Graphic's color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Graphic target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Graphic's alpha color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Graphic target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region Image + + /// Tweens an Image's color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Image target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Image's alpha color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Image target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Image's fillAmount to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reach (0 to 1)The duration of the tween + public static TweenerCore DOFillAmount(this Image target, float endValue, float duration) + { + if (endValue > 1) endValue = 1; + else if (endValue < 0) endValue = 0; + TweenerCore t = DOTween.To(() => target.fillAmount, x => target.fillAmount = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens an Image's colors using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this Image target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + + #endregion + + #region LayoutElement + + /// Tweens an LayoutElement's flexibleWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOFlexibleSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => new Vector2(target.flexibleWidth, target.flexibleHeight), x => { + target.flexibleWidth = x.x; + target.flexibleHeight = x.y; + }, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens an LayoutElement's minWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOMinSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => new Vector2(target.minWidth, target.minHeight), x => { + target.minWidth = x.x; + target.minHeight = x.y; + }, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens an LayoutElement's preferredWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOPreferredSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => new Vector2(target.preferredWidth, target.preferredHeight), x => { + target.preferredWidth = x.x; + target.preferredHeight = x.y; + }, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + #endregion + + #region Outline + + /// Tweens a Outline's effectColor to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Outline target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.effectColor, x => target.effectColor = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Outline's effectColor alpha to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Outline target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.effectColor, x => target.effectColor = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Outline's effectDistance to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOScale(this Outline target, Vector2 endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.effectDistance, x => target.effectDistance = x, endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region RectTransform + + /// Tweens a RectTransform's anchoredPosition to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPosX(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPosY(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, endValue), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's anchoredPosition3D to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3D(this RectTransform target, Vector3 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition3D X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3DX(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(endValue, 0, 0), duration); + t.SetOptions(AxisConstraint.X, snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition3D Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3DY(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, endValue, 0), duration); + t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + return t; + } + /// Tweens a RectTransform's anchoredPosition3D Z to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorPos3DZ(this RectTransform target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, 0, endValue), duration); + t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's anchorMax to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorMax(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchorMax, x => target.anchorMax = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's anchorMin to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOAnchorMin(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.anchorMin, x => target.anchorMin = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's pivot to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPivot(this RectTransform target, Vector2 endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, endValue, duration); + t.SetTarget(target); + return t; + } + /// Tweens a RectTransform's pivot X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPivotX(this RectTransform target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(endValue, 0), duration); + t.SetOptions(AxisConstraint.X).SetTarget(target); + return t; + } + /// Tweens a RectTransform's pivot Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOPivotY(this RectTransform target, float endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(0, endValue), duration); + t.SetOptions(AxisConstraint.Y).SetTarget(target); + return t; + } + + /// Tweens a RectTransform's sizeDelta to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOSizeDelta(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.sizeDelta, x => target.sizeDelta = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + /// Punches a RectTransform's anchoredPosition towards the given direction and then back to the starting one + /// as if it was connected to the starting position via an elastic. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The direction and strength of the punch (added to the RectTransform's current position) + /// The duration of the tween + /// Indicates how much will the punch vibrate + /// Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. + /// 1 creates a full oscillation between the punch direction and the opposite direction, + /// while 0 oscillates only between the punch and the start position + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOPunchAnchorPos(this RectTransform target, Vector2 punch, float duration, int vibrato = 10, float elasticity = 1, bool snapping = false) + { + return DOTween.Punch(() => target.anchoredPosition, x => target.anchoredPosition = x, punch, duration, vibrato, elasticity) + .SetTarget(target).SetOptions(snapping); + } + + /// Shakes a RectTransform's anchoredPosition with the given values. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The duration of the tween + /// The shake strength + /// Indicates how much will the shake vibrate + /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + /// Setting it to 0 will shake along a single direction. + /// If TRUE the tween will smoothly snap all values to integers + /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + /// Randomness mode + public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, float strength = 100, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full) + { + return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, true, fadeOut, randomnessMode) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); + } + /// Shakes a RectTransform's anchoredPosition with the given values. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The duration of the tween + /// The shake strength on each axis + /// Indicates how much will the shake vibrate + /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + /// Setting it to 0 will shake along a single direction. + /// If TRUE the tween will smoothly snap all values to integers + /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + /// Randomness mode + public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, Vector2 strength, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full) + { + return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, fadeOut, randomnessMode) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); + } + + #region Special + + /// Tweens a RectTransform's anchoredPosition to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJumpAnchorPos(this RectTransform target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + + // Separate Y Tween so we can elaborate elapsedPercentage on that insted of on the Sequence + // (in case users add a delay or other elements to the Sequence) + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, jumpPower), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(()=> startPosY = target.anchoredPosition.y); + s.Append(DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue.x, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + s.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector2 pos = target.anchoredPosition; + pos.y += DOVirtual.EasedValue(0, offsetY, s.ElapsedDirectionalPercentage(), Ease.OutQuad); + target.anchoredPosition = pos; + }); + return s; + } + + #endregion + + #endregion + + #region ScrollRect + + /// Tweens a ScrollRect's horizontal/verticalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DONormalizedPos(this ScrollRect target, Vector2 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => new Vector2(target.horizontalNormalizedPosition, target.verticalNormalizedPosition), + x => { + target.horizontalNormalizedPosition = x.x; + target.verticalNormalizedPosition = x.y; + }, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + /// Tweens a ScrollRect's horizontalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOHorizontalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.horizontalNormalizedPosition, x => target.horizontalNormalizedPosition = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + /// Tweens a ScrollRect's verticalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOVerticalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.verticalNormalizedPosition, x => target.verticalNormalizedPosition = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + + #endregion + + #region Slider + + /// Tweens a Slider's value to the given value. + /// Also stores the Slider as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOValue(this Slider target, float endValue, float duration, bool snapping = false) + { + TweenerCore t = DOTween.To(() => target.value, x => target.value = x, endValue, duration); + t.SetOptions(snapping).SetTarget(target); + return t; + } + + #endregion + + #region Text + + /// Tweens a Text's color to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOColor(this Text target, Color endValue, float duration) + { + TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// + /// Tweens a Text's text from one integer to another, with options for thousands separators + /// + /// The value to start from + /// The end value to reach + /// The duration of the tween + /// If TRUE (default) also adds thousands separators + /// The to use (InvariantCulture if NULL) + public static TweenerCore DOCounter( + this Text target, int fromValue, int endValue, float duration, bool addThousandsSeparator = true, CultureInfo culture = null + ){ + int v = fromValue; + CultureInfo cInfo = !addThousandsSeparator ? null : culture ?? CultureInfo.InvariantCulture; + TweenerCore t = DOTween.To(() => v, x => { + v = x; + target.text = addThousandsSeparator + ? v.ToString("N0", cInfo) + : v.ToString(); + }, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Text's alpha color to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static TweenerCore DOFade(this Text target, float endValue, float duration) + { + TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Text's text to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end string to tween toThe duration of the tween + /// If TRUE (default), rich text will be interpreted correctly while animated, + /// otherwise all tags will be considered as normal text + /// The type of scramble mode to use, if any + /// A string containing the characters to use for scrambling. + /// Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters. + /// Leave it to NULL (default) to use default ones + public static TweenerCore DOText(this Text target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null) + { + if (endValue == null) { + if (Debugger.logPriority > 0) Debugger.LogWarning("You can't pass a NULL string to DOText: an empty string will be used instead to avoid errors"); + endValue = ""; + } + TweenerCore t = DOTween.To(() => target.text, x => target.text = x, endValue, duration); + t.SetOptions(richTextEnabled, scrambleMode, scrambleChars) + .SetTarget(target); + return t; + } + + #endregion + + #region Blendables + + #region Graphic + + /// Tweens a Graphic's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Graphic as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Graphic target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #region Image + + /// Tweens a Image's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Image as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Image target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #region Text + + /// Tweens a Text's color BY the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Text target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #endregion + + #region Shapes + + /// Tweens a RectTransform's anchoredPosition so that it draws a circle around the given center. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations. + /// IMPORTANT: SetFrom(value) requires a instead of a float, where the X property represents the "from degrees value" + /// Circle-center/pivot around which to rotate (in UI anchoredPosition coordinates) + /// The end value degrees to reach (to rotate counter-clockwise pass a negative value) + /// The duration of the tween + /// If TRUE the coordinates will be considered as relative to the target's current anchoredPosition + /// If TRUE the tween will smoothly snap all values to integers + public static TweenerCore DOShapeCircle( + this RectTransform target, Vector2 center, float endValueDegrees, float duration, bool relativeCenter = false, bool snapping = false + ) + { + TweenerCore t = DOTween.To( + CirclePlugin.Get(), () => target.anchoredPosition, x => target.anchoredPosition = x, center, duration + ); + t.SetOptions(endValueDegrees, relativeCenter, snapping).SetTarget(target); + return t; + } + + #endregion + + #endregion + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + + public static class Utils + { + /// + /// Converts the anchoredPosition of the first RectTransform to the second RectTransform, + /// taking into consideration offset, anchors and pivot, and returns the new anchoredPosition + /// + public static Vector2 SwitchToRectTransform(RectTransform from, RectTransform to) + { + Vector2 localPoint; + Vector2 fromPivotDerivedOffset = new Vector2(from.rect.width * 0.5f + from.rect.xMin, from.rect.height * 0.5f + from.rect.yMin); + Vector2 screenP = RectTransformUtility.WorldToScreenPoint(null, from.position); + screenP += fromPivotDerivedOffset; + RectTransformUtility.ScreenPointToLocalPointInRectangle(to, screenP, null, out localPoint); + Vector2 pivotDerivedOffset = new Vector2(to.rect.width * 0.5f + to.rect.xMin, to.rect.height * 0.5f + to.rect.yMin); + return to.anchoredPosition + localPoint - pivotDerivedOffset; + } + } + } +} +#endif diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta new file mode 100644 index 0000000..60d55ef --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a060394c03331a64392db53a10e7f2d1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs new file mode 100644 index 0000000..8f818ba --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs @@ -0,0 +1,389 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +using System; +using UnityEngine; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Options; +//#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0) +//using Task = System.Threading.Tasks.Task; +//#endif + +#pragma warning disable 1591 +namespace DG.Tweening +{ + /// + /// Shortcuts/functions that are not strictly related to specific Modules + /// but are available only on some Unity versions + /// + public static class DOTweenModuleUnityVersion + { + #region Material + + /// Tweens a Material's color using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this Material target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + /// Tweens a Material's named color property using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to use + /// The name of the material property to tween (like _Tint or _SpecColor) + /// The duration of the tween + public static Sequence DOGradientColor(this Material target, Gradient gradient, string property, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.SetColor(property, c.color); + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, property, colorDuration).SetEase(Ease.Linear)); + } + s.SetTarget(target); + return s; + } + + #endregion + + #region CustomYieldInstructions + + /// + /// Returns a that waits until the tween is killed or complete. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForCompletion(true); + /// + public static CustomYieldInstruction WaitForCompletion(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForCompletion(t); + } + + /// + /// Returns a that waits until the tween is killed or rewinded. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForRewind(); + /// + public static CustomYieldInstruction WaitForRewind(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForRewind(t); + } + + /// + /// Returns a that waits until the tween is killed. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForKill(); + /// + public static CustomYieldInstruction WaitForKill(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForKill(t); + } + + /// + /// Returns a that waits until the tween is killed or has gone through the given amount of loops. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForElapsedLoops(2); + /// + /// Elapsed loops to wait for + public static CustomYieldInstruction WaitForElapsedLoops(this Tween t, int elapsedLoops, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForElapsedLoops(t, elapsedLoops); + } + + /// + /// Returns a that waits until the tween is killed + /// or has reached the given time position (loops included, delays excluded). + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForPosition(2.5f); + /// + /// Position (loops included, delays excluded) to wait for + public static CustomYieldInstruction WaitForPosition(this Tween t, float position, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForPosition(t, position); + } + + /// + /// Returns a that waits until the tween is killed or started + /// (meaning when the tween is set in a playing state the first time, after any eventual delay). + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForStart(); + /// + public static CustomYieldInstruction WaitForStart(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForStart(t); + } + + #endregion + +#if UNITY_2018_1_OR_NEWER + #region Unity 2018.1 or Newer + + #region Material + + /// Tweens a Material's named texture offset property with the given ID to the given value. + /// Also stores the material as the tween's target so it can be used for filtered operations + /// The end value to reach + /// The ID of the material property to tween (also called nameID in Unity's manual) + /// The duration of the tween + public static TweenerCore DOOffset(this Material target, Vector2 endValue, int propertyID, float duration) + { + if (!target.HasProperty(propertyID)) { + if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID); + return null; + } + TweenerCore t = DOTween.To(() => target.GetTextureOffset(propertyID), x => target.SetTextureOffset(propertyID, x), endValue, duration); + t.SetTarget(target); + return t; + } + + /// Tweens a Material's named texture scale property with the given ID to the given value. + /// Also stores the material as the tween's target so it can be used for filtered operations + /// The end value to reach + /// The ID of the material property to tween (also called nameID in Unity's manual) + /// The duration of the tween + public static TweenerCore DOTiling(this Material target, Vector2 endValue, int propertyID, float duration) + { + if (!target.HasProperty(propertyID)) { + if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID); + return null; + } + TweenerCore t = DOTween.To(() => target.GetTextureScale(propertyID), x => target.SetTextureScale(propertyID, x), endValue, duration); + t.SetTarget(target); + return t; + } + + #endregion + + #region .NET 4.6 or Newer + +#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0) + + #region Async Instructions + + /// + /// Returns an async that waits until the tween is killed or complete. + /// It can be used inside an async operation. + /// Example usage:await myTween.WaitForCompletion(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForCompletion(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && !t.IsComplete()) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed or rewinded. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForRewind(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForRewind(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0)) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForKill(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForKill(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed or has gone through the given amount of loops. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForElapsedLoops(); + /// + /// Elapsed loops to wait for + public static async System.Threading.Tasks.Task AsyncWaitForElapsedLoops(this Tween t, int elapsedLoops) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && t.CompletedLoops() < elapsedLoops) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed or started + /// (meaning when the tween is set in a playing state the first time, after any eventual delay). + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForPosition(); + /// + /// Position (loops included, delays excluded) to wait for + public static async System.Threading.Tasks.Task AsyncWaitForPosition(this Tween t, float position) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && t.position * (t.CompletedLoops() + 1) < position) await System.Threading.Tasks.Task.Yield(); + } + + /// + /// Returns an async that waits until the tween is killed. + /// It can be used inside an async operation. + /// Example usage:await myTween.AsyncWaitForKill(); + /// + public static async System.Threading.Tasks.Task AsyncWaitForStart(this Tween t) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return; + } + while (t.active && !t.playedOnce) await System.Threading.Tasks.Task.Yield(); + } + + #endregion +#endif + + #endregion + + #endregion +#endif + } + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ CLASSES █████████████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + + public static class DOTweenCYInstruction + { + public class WaitForCompletion : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && !t.IsComplete(); + }} + readonly Tween t; + public WaitForCompletion(Tween tween) + { + t = tween; + } + } + + public class WaitForRewind : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0); + }} + readonly Tween t; + public WaitForRewind(Tween tween) + { + t = tween; + } + } + + public class WaitForKill : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active; + }} + readonly Tween t; + public WaitForKill(Tween tween) + { + t = tween; + } + } + + public class WaitForElapsedLoops : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && t.CompletedLoops() < elapsedLoops; + }} + readonly Tween t; + readonly int elapsedLoops; + public WaitForElapsedLoops(Tween tween, int elapsedLoops) + { + t = tween; + this.elapsedLoops = elapsedLoops; + } + } + + public class WaitForPosition : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && t.position * (t.CompletedLoops() + 1) < position; + }} + readonly Tween t; + readonly float position; + public WaitForPosition(Tween tween, float position) + { + t = tween; + this.position = position; + } + } + + public class WaitForStart : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && !t.playedOnce; + }} + readonly Tween t; + public WaitForStart(Tween tween) + { + t = tween; + } + } + } +} diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta new file mode 100644 index 0000000..290189f --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 63c02322328255542995bd02b47b0457 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs new file mode 100644 index 0000000..12a365d --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs @@ -0,0 +1,167 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +using System; +using System.Reflection; +using UnityEngine; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Core.PathCore; +using DG.Tweening.Plugins.Options; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + /// + /// Utility functions that deal with available Modules. + /// Modules defines: + /// - DOTAUDIO + /// - DOTPHYSICS + /// - DOTPHYSICS2D + /// - DOTSPRITE + /// - DOTUI + /// Extra defines set and used for implementation of external assets: + /// - DOTWEEN_TMP ► TextMesh Pro + /// - DOTWEEN_TK2D ► 2D Toolkit + /// + public static class DOTweenModuleUtils + { + static bool _initialized; + + #region Reflection + + /// + /// Called via Reflection by DOTweenComponent on Awake + /// +#if UNITY_2018_1_OR_NEWER + [UnityEngine.Scripting.Preserve] +#endif + public static void Init() + { + if (_initialized) return; + + _initialized = true; + DOTweenExternalCommand.SetOrientationOnPath += Physics.SetOrientationOnPath; + +#if UNITY_EDITOR +#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1 + UnityEditor.EditorApplication.playmodeStateChanged += PlaymodeStateChanged; +#else + UnityEditor.EditorApplication.playModeStateChanged += PlaymodeStateChanged; +#endif +#endif + } + +#if UNITY_2018_1_OR_NEWER +#pragma warning disable + [UnityEngine.Scripting.Preserve] + // Just used to preserve methods when building, never called + static void Preserver() + { + Assembly[] loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies(); + MethodInfo mi = typeof(MonoBehaviour).GetMethod("Stub"); + } +#pragma warning restore +#endif + + #endregion + +#if UNITY_EDITOR + // Fires OnApplicationPause in DOTweenComponent even when Editor is paused (otherwise it's only fired at runtime) +#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1 + static void PlaymodeStateChanged() + #else + static void PlaymodeStateChanged(UnityEditor.PlayModeStateChange state) +#endif + { + if (DOTween.instance == null) return; + DOTween.instance.OnApplicationPause(UnityEditor.EditorApplication.isPaused); + } +#endif + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + + public static class Physics + { + // Called via DOTweenExternalCommand callback + public static void SetOrientationOnPath(PathOptions options, Tween t, Quaternion newRot, Transform trans) + { +#if true // PHYSICS_MARKER + if (options.isRigidbody) ((Rigidbody)t.target).rotation = newRot; + else trans.rotation = newRot; +#else + trans.rotation = newRot; +#endif + } + + // Returns FALSE if the DOTween's Physics2D Module is disabled, or if there's no Rigidbody2D attached + public static bool HasRigidbody2D(Component target) + { +#if true // PHYSICS2D_MARKER + return target.GetComponent() != null; +#else + return false; +#endif + } + + #region Called via Reflection + + + // Called via Reflection by DOTweenPathInspector + // Returns FALSE if the DOTween's Physics Module is disabled, or if there's no rigidbody attached +#if UNITY_2018_1_OR_NEWER + [UnityEngine.Scripting.Preserve] +#endif + public static bool HasRigidbody(Component target) + { +#if true // PHYSICS_MARKER + return target.GetComponent() != null; +#else + return false; +#endif + } + + // Called via Reflection by DOTweenPath +#if UNITY_2018_1_OR_NEWER + [UnityEngine.Scripting.Preserve] +#endif + public static TweenerCore CreateDOTweenPathTween( + MonoBehaviour target, bool tweenRigidbody, bool isLocal, Path path, float duration, PathMode pathMode + ){ + TweenerCore t = null; + bool rBodyFoundAndTweened = false; +#if true // PHYSICS_MARKER + if (tweenRigidbody) { + Rigidbody rBody = target.GetComponent(); + if (rBody != null) { + rBodyFoundAndTweened = true; + t = isLocal + ? rBody.DOLocalPath(path, duration, pathMode) + : rBody.DOPath(path, duration, pathMode); + } + } +#endif +#if true // PHYSICS2D_MARKER + if (!rBodyFoundAndTweened && tweenRigidbody) { + Rigidbody2D rBody2D = target.GetComponent(); + if (rBody2D != null) { + rBodyFoundAndTweened = true; + t = isLocal + ? rBody2D.DOLocalPath(path, duration, pathMode) + : rBody2D.DOPath(path, duration, pathMode); + } + } +#endif + if (!rBodyFoundAndTweened) { + t = isLocal + ? target.transform.DOLocalPath(path, duration, pathMode) + : target.transform.DOPath(path, duration, pathMode); + } + return t; + } + + #endregion + } + } +} diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta new file mode 100644 index 0000000..ab62186 --- /dev/null +++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7bcaf917d9cf5b84090421a5a2abe42e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/Samples~/Hand Driver Demo/Runtime.meta b/Samples~/Hand Driver Demo/Runtime.meta new file mode 100644 index 0000000..f2181be --- /dev/null +++ b/Samples~/Hand Driver Demo/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2c9e2272c07c90a4eb03ef74f9a87470 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Hand Driver Demo/HandDriver/Scenes.meta b/Samples~/Hand Driver Demo/Scenes.meta similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Scenes.meta rename to Samples~/Hand Driver Demo/Scenes.meta diff --git a/Samples~/Hand Driver Demo/HandDriver/Scenes/Sample.unity b/Samples~/Hand Driver Demo/Scenes/Sample.unity similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Scenes/Sample.unity rename to Samples~/Hand Driver Demo/Scenes/Sample.unity diff --git a/Samples~/Hand Driver Demo/HandDriver/Scenes/Sample.unity.meta b/Samples~/Hand Driver Demo/Scenes/Sample.unity.meta similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Scenes/Sample.unity.meta rename to Samples~/Hand Driver Demo/Scenes/Sample.unity.meta diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts.meta b/Samples~/Hand Driver Demo/Scripts.meta similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Scripts.meta rename to Samples~/Hand Driver Demo/Scripts.meta diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/HandDriver.cs b/Samples~/Hand Driver Demo/Scripts/HandDriver.cs similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Scripts/HandDriver.cs rename to Samples~/Hand Driver Demo/Scripts/HandDriver.cs diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/HandDriver.cs.meta b/Samples~/Hand Driver Demo/Scripts/HandDriver.cs.meta similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Scripts/HandDriver.cs.meta rename to Samples~/Hand Driver Demo/Scripts/HandDriver.cs.meta diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/InputData.cs b/Samples~/Hand Driver Demo/Scripts/InputData.cs similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Scripts/InputData.cs rename to Samples~/Hand Driver Demo/Scripts/InputData.cs diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/InputData.cs.meta b/Samples~/Hand Driver Demo/Scripts/InputData.cs.meta similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Scripts/InputData.cs.meta rename to Samples~/Hand Driver Demo/Scripts/InputData.cs.meta diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/Network.cs b/Samples~/Hand Driver Demo/Scripts/Network.cs similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Scripts/Network.cs rename to Samples~/Hand Driver Demo/Scripts/Network.cs diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/Network.cs.meta b/Samples~/Hand Driver Demo/Scripts/Network.cs.meta similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Scripts/Network.cs.meta rename to Samples~/Hand Driver Demo/Scripts/Network.cs.meta diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/VibrationData.cs b/Samples~/Hand Driver Demo/Scripts/VibrationData.cs similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Scripts/VibrationData.cs rename to Samples~/Hand Driver Demo/Scripts/VibrationData.cs diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/VibrationData.cs.meta b/Samples~/Hand Driver Demo/Scripts/VibrationData.cs.meta similarity index 100% rename from Samples~/Hand Driver Demo/HandDriver/Scripts/VibrationData.cs.meta rename to Samples~/Hand Driver Demo/Scripts/VibrationData.cs.meta diff --git a/Samples~/Hand Driver Demo/_3rd.meta b/Samples~/Hand Driver Demo/_3rd.meta new file mode 100644 index 0000000..039595d --- /dev/null +++ b/Samples~/Hand Driver Demo/_3rd.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f94ed6072f4ff6646becdf1839ffe326 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TouchSocket.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket.meta similarity index 100% rename from TouchSocket.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket.meta diff --git a/TouchSocket/Core.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core.meta similarity index 100% rename from TouchSocket/Core.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core.meta diff --git a/TouchSocket/Core/ByteManager.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager.meta similarity index 100% rename from TouchSocket/Core/ByteManager.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager.meta diff --git a/TouchSocket/Core/ByteManager/ByteBlock.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ByteBlock.cs similarity index 100% rename from TouchSocket/Core/ByteManager/ByteBlock.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ByteBlock.cs diff --git a/TouchSocket/Core/ByteManager/ByteBlock.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ByteBlock.cs.meta similarity index 100% rename from TouchSocket/Core/ByteManager/ByteBlock.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ByteBlock.cs.meta diff --git a/TouchSocket/Core/ByteManager/BytePool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytePool.cs similarity index 100% rename from TouchSocket/Core/ByteManager/BytePool.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytePool.cs diff --git a/TouchSocket/Core/ByteManager/BytePool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytePool.cs.meta similarity index 100% rename from TouchSocket/Core/ByteManager/BytePool.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytePool.cs.meta diff --git a/TouchSocket/Core/ByteManager/BytesQueue.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytesQueue.cs similarity index 100% rename from TouchSocket/Core/ByteManager/BytesQueue.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytesQueue.cs diff --git a/TouchSocket/Core/ByteManager/BytesQueue.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytesQueue.cs.meta similarity index 100% rename from TouchSocket/Core/ByteManager/BytesQueue.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytesQueue.cs.meta diff --git a/TouchSocket/Core/ByteManager/ValueByteBlock.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ValueByteBlock.cs similarity index 100% rename from TouchSocket/Core/ByteManager/ValueByteBlock.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ValueByteBlock.cs diff --git a/TouchSocket/Core/ByteManager/ValueByteBlock.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ValueByteBlock.cs.meta similarity index 100% rename from TouchSocket/Core/ByteManager/ValueByteBlock.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ValueByteBlock.cs.meta diff --git a/TouchSocket/Core/Caching.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching.meta similarity index 100% rename from TouchSocket/Core/Caching.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching.meta diff --git a/TouchSocket/Core/Caching/CacheEntry.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheEntry.cs similarity index 100% rename from TouchSocket/Core/Caching/CacheEntry.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheEntry.cs diff --git a/TouchSocket/Core/Caching/CacheEntry.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheEntry.cs.meta similarity index 100% rename from TouchSocket/Core/Caching/CacheEntry.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheEntry.cs.meta diff --git a/TouchSocket/Core/Caching/CacheManagementExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheManagementExtensions.cs similarity index 100% rename from TouchSocket/Core/Caching/CacheManagementExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheManagementExtensions.cs diff --git a/TouchSocket/Core/Caching/CacheManagementExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheManagementExtensions.cs.meta similarity index 100% rename from TouchSocket/Core/Caching/CacheManagementExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheManagementExtensions.cs.meta diff --git a/TouchSocket/Core/Caching/ICache.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICache.cs similarity index 100% rename from TouchSocket/Core/Caching/ICache.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICache.cs diff --git a/TouchSocket/Core/Caching/ICache.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICache.cs.meta similarity index 100% rename from TouchSocket/Core/Caching/ICache.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICache.cs.meta diff --git a/TouchSocket/Core/Caching/ICacheEntry.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICacheEntry.cs similarity index 100% rename from TouchSocket/Core/Caching/ICacheEntry.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICacheEntry.cs diff --git a/TouchSocket/Core/Caching/ICacheEntry.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICacheEntry.cs.meta similarity index 100% rename from TouchSocket/Core/Caching/ICacheEntry.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICacheEntry.cs.meta diff --git a/TouchSocket/Core/Caching/MemoryCache.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/MemoryCache.cs similarity index 100% rename from TouchSocket/Core/Caching/MemoryCache.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/MemoryCache.cs diff --git a/TouchSocket/Core/Caching/MemoryCache.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/MemoryCache.cs.meta similarity index 100% rename from TouchSocket/Core/Caching/MemoryCache.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/MemoryCache.cs.meta diff --git a/TouchSocket/Core/Collections.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections.meta similarity index 100% rename from TouchSocket/Core/Collections.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections.meta diff --git a/TouchSocket/Core/Collections/Concurrent.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent.meta similarity index 100% rename from TouchSocket/Core/Collections/Concurrent.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent.meta diff --git a/TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs similarity index 100% rename from TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs diff --git a/TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs.meta similarity index 100% rename from TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs.meta diff --git a/TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs similarity index 100% rename from TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs diff --git a/TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs.meta similarity index 100% rename from TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs.meta diff --git a/TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs similarity index 100% rename from TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs diff --git a/TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs.meta similarity index 100% rename from TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs.meta diff --git a/TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs similarity index 100% rename from TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs diff --git a/TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs.meta similarity index 100% rename from TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs.meta diff --git a/TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs similarity index 100% rename from TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs diff --git a/TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs.meta similarity index 100% rename from TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs.meta diff --git a/TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs similarity index 100% rename from TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs diff --git a/TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs.meta similarity index 100% rename from TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs.meta diff --git a/TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs similarity index 100% rename from TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs diff --git a/TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs.meta similarity index 100% rename from TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs.meta diff --git a/TouchSocket/Core/Collections/NameValueCollectionDebugView.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/NameValueCollectionDebugView.cs similarity index 100% rename from TouchSocket/Core/Collections/NameValueCollectionDebugView.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/NameValueCollectionDebugView.cs diff --git a/TouchSocket/Core/Collections/NameValueCollectionDebugView.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/NameValueCollectionDebugView.cs.meta similarity index 100% rename from TouchSocket/Core/Collections/NameValueCollectionDebugView.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/NameValueCollectionDebugView.cs.meta diff --git a/TouchSocket/Core/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common.meta similarity index 100% rename from TouchSocket/Core/Common.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common.meta diff --git a/TouchSocket/Core/Common/AppConfigBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/AppConfigBase.cs similarity index 100% rename from TouchSocket/Core/Common/AppConfigBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/AppConfigBase.cs diff --git a/TouchSocket/Core/Common/AppConfigBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/AppConfigBase.cs.meta similarity index 100% rename from TouchSocket/Core/Common/AppConfigBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/AppConfigBase.cs.meta diff --git a/TouchSocket/Core/Common/DateExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DateExtensions.cs similarity index 100% rename from TouchSocket/Core/Common/DateExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DateExtensions.cs diff --git a/TouchSocket/Core/Common/DateExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DateExtensions.cs.meta similarity index 100% rename from TouchSocket/Core/Common/DateExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DateExtensions.cs.meta diff --git a/TouchSocket/Core/Common/DisposableObject.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DisposableObject.cs similarity index 100% rename from TouchSocket/Core/Common/DisposableObject.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DisposableObject.cs diff --git a/TouchSocket/Core/Common/DisposableObject.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DisposableObject.cs.meta similarity index 100% rename from TouchSocket/Core/Common/DisposableObject.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DisposableObject.cs.meta diff --git a/TouchSocket/Core/Common/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum.meta similarity index 100% rename from TouchSocket/Core/Common/Enum.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum.meta diff --git a/TouchSocket/Core/Common/Enum/EndianType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/EndianType.cs similarity index 100% rename from TouchSocket/Core/Common/Enum/EndianType.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/EndianType.cs diff --git a/TouchSocket/Core/Common/Enum/EndianType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/EndianType.cs.meta similarity index 100% rename from TouchSocket/Core/Common/Enum/EndianType.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/EndianType.cs.meta diff --git a/TouchSocket/Core/Common/Enum/ResultCode.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/ResultCode.cs similarity index 100% rename from TouchSocket/Core/Common/Enum/ResultCode.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/ResultCode.cs diff --git a/TouchSocket/Core/Common/Enum/ResultCode.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/ResultCode.cs.meta similarity index 100% rename from TouchSocket/Core/Common/Enum/ResultCode.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/ResultCode.cs.meta diff --git a/TouchSocket/Core/Common/FlowGate.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/FlowGate.cs similarity index 100% rename from TouchSocket/Core/Common/FlowGate.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/FlowGate.cs diff --git a/TouchSocket/Core/Common/FlowGate.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/FlowGate.cs.meta similarity index 100% rename from TouchSocket/Core/Common/FlowGate.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/FlowGate.cs.meta diff --git a/TouchSocket/Core/Common/GlobalEnvironment.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/GlobalEnvironment.cs similarity index 100% rename from TouchSocket/Core/Common/GlobalEnvironment.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/GlobalEnvironment.cs diff --git a/TouchSocket/Core/Common/GlobalEnvironment.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/GlobalEnvironment.cs.meta similarity index 100% rename from TouchSocket/Core/Common/GlobalEnvironment.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/GlobalEnvironment.cs.meta diff --git a/TouchSocket/Core/Common/IResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IResult.cs similarity index 100% rename from TouchSocket/Core/Common/IResult.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IResult.cs diff --git a/TouchSocket/Core/Common/IResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IResult.cs.meta similarity index 100% rename from TouchSocket/Core/Common/IResult.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IResult.cs.meta diff --git a/TouchSocket/Core/Common/IWrite.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IWrite.cs similarity index 100% rename from TouchSocket/Core/Common/IWrite.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IWrite.cs diff --git a/TouchSocket/Core/Common/IWrite.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IWrite.cs.meta similarity index 100% rename from TouchSocket/Core/Common/IWrite.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IWrite.cs.meta diff --git a/TouchSocket/Core/Common/Locker.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Locker.cs similarity index 100% rename from TouchSocket/Core/Common/Locker.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Locker.cs diff --git a/TouchSocket/Core/Common/Locker.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Locker.cs.meta similarity index 100% rename from TouchSocket/Core/Common/Locker.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Locker.cs.meta diff --git a/TouchSocket/Core/Common/Metadata.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Metadata.cs similarity index 100% rename from TouchSocket/Core/Common/Metadata.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Metadata.cs diff --git a/TouchSocket/Core/Common/Metadata.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Metadata.cs.meta similarity index 100% rename from TouchSocket/Core/Common/Metadata.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Metadata.cs.meta diff --git a/TouchSocket/Core/Common/MetadataFastBinaryConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/MetadataFastBinaryConverter.cs similarity index 100% rename from TouchSocket/Core/Common/MetadataFastBinaryConverter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/MetadataFastBinaryConverter.cs diff --git a/TouchSocket/Core/Common/MetadataFastBinaryConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/MetadataFastBinaryConverter.cs.meta similarity index 100% rename from TouchSocket/Core/Common/MetadataFastBinaryConverter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/MetadataFastBinaryConverter.cs.meta diff --git a/TouchSocket/Core/Common/OptimizedPlatforms.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/OptimizedPlatforms.cs similarity index 100% rename from TouchSocket/Core/Common/OptimizedPlatforms.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/OptimizedPlatforms.cs diff --git a/TouchSocket/Core/Common/OptimizedPlatforms.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/OptimizedPlatforms.cs.meta similarity index 100% rename from TouchSocket/Core/Common/OptimizedPlatforms.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/OptimizedPlatforms.cs.meta diff --git a/TouchSocket/Core/Common/Result.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Result.cs similarity index 100% rename from TouchSocket/Core/Common/Result.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Result.cs diff --git a/TouchSocket/Core/Common/Result.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Result.cs.meta similarity index 100% rename from TouchSocket/Core/Common/Result.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Result.cs.meta diff --git a/TouchSocket/Core/Common/SnowflakeIDGenerator.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/SnowflakeIDGenerator.cs similarity index 100% rename from TouchSocket/Core/Common/SnowflakeIDGenerator.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/SnowflakeIDGenerator.cs diff --git a/TouchSocket/Core/Common/SnowflakeIDGenerator.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/SnowflakeIDGenerator.cs.meta similarity index 100% rename from TouchSocket/Core/Common/SnowflakeIDGenerator.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/SnowflakeIDGenerator.cs.meta diff --git a/TouchSocket/Core/Common/StringResStore.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/StringResStore.cs similarity index 100% rename from TouchSocket/Core/Common/StringResStore.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/StringResStore.cs diff --git a/TouchSocket/Core/Common/StringResStore.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/StringResStore.cs.meta similarity index 100% rename from TouchSocket/Core/Common/StringResStore.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/StringResStore.cs.meta diff --git a/TouchSocket/Core/Common/ThrowHelper.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/ThrowHelper.cs similarity index 100% rename from TouchSocket/Core/Common/ThrowHelper.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/ThrowHelper.cs diff --git a/TouchSocket/Core/Common/ThrowHelper.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/ThrowHelper.cs.meta similarity index 100% rename from TouchSocket/Core/Common/ThrowHelper.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/ThrowHelper.cs.meta diff --git a/TouchSocket/Core/Common/TouchSocketBitConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketBitConverter.cs similarity index 100% rename from TouchSocket/Core/Common/TouchSocketBitConverter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketBitConverter.cs diff --git a/TouchSocket/Core/Common/TouchSocketBitConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketBitConverter.cs.meta similarity index 100% rename from TouchSocket/Core/Common/TouchSocketBitConverter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketBitConverter.cs.meta diff --git a/TouchSocket/Core/Common/TouchSocketCoreUtility.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketCoreUtility.cs similarity index 100% rename from TouchSocket/Core/Common/TouchSocketCoreUtility.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketCoreUtility.cs diff --git a/TouchSocket/Core/Common/TouchSocketCoreUtility.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketCoreUtility.cs.meta similarity index 100% rename from TouchSocket/Core/Common/TouchSocketCoreUtility.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketCoreUtility.cs.meta diff --git a/TouchSocket/Core/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config.meta similarity index 100% rename from TouchSocket/Core/Config.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config.meta diff --git a/TouchSocket/Core/Config/TouchSocketConfig.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketConfig.cs similarity index 100% rename from TouchSocket/Core/Config/TouchSocketConfig.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketConfig.cs diff --git a/TouchSocket/Core/Config/TouchSocketConfig.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketConfig.cs.meta similarity index 100% rename from TouchSocket/Core/Config/TouchSocketConfig.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketConfig.cs.meta diff --git a/TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs similarity index 100% rename from TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs diff --git a/TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs.meta similarity index 100% rename from TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs.meta diff --git a/TouchSocket/Core/Converter.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter.meta similarity index 100% rename from TouchSocket/Core/Converter.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter.meta diff --git a/TouchSocket/Core/Converter/BytesConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/BytesConverter.cs similarity index 100% rename from TouchSocket/Core/Converter/BytesConverter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/BytesConverter.cs diff --git a/TouchSocket/Core/Converter/BytesConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/BytesConverter.cs.meta similarity index 100% rename from TouchSocket/Core/Converter/BytesConverter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/BytesConverter.cs.meta diff --git a/TouchSocket/Core/Converter/IConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/IConverter.cs similarity index 100% rename from TouchSocket/Core/Converter/IConverter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/IConverter.cs diff --git a/TouchSocket/Core/Converter/IConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/IConverter.cs.meta similarity index 100% rename from TouchSocket/Core/Converter/IConverter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/IConverter.cs.meta diff --git a/TouchSocket/Core/Converter/StringConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/StringConverter.cs similarity index 100% rename from TouchSocket/Core/Converter/StringConverter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/StringConverter.cs diff --git a/TouchSocket/Core/Converter/StringConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/StringConverter.cs.meta similarity index 100% rename from TouchSocket/Core/Converter/StringConverter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/StringConverter.cs.meta diff --git a/TouchSocket/Core/Converter/TouchSocketConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/TouchSocketConverter.cs similarity index 100% rename from TouchSocket/Core/Converter/TouchSocketConverter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/TouchSocketConverter.cs diff --git a/TouchSocket/Core/Converter/TouchSocketConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/TouchSocketConverter.cs.meta similarity index 100% rename from TouchSocket/Core/Converter/TouchSocketConverter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/TouchSocketConverter.cs.meta diff --git a/TouchSocket/Core/Data.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data.meta similarity index 100% rename from TouchSocket/Core/Data.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data.meta diff --git a/TouchSocket/Core/Data/Compress.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress.meta similarity index 100% rename from TouchSocket/Core/Data/Compress.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress.meta diff --git a/TouchSocket/Core/Data/Compress/GZipDataCompressor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/GZipDataCompressor.cs similarity index 100% rename from TouchSocket/Core/Data/Compress/GZipDataCompressor.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/GZipDataCompressor.cs diff --git a/TouchSocket/Core/Data/Compress/GZipDataCompressor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/GZipDataCompressor.cs.meta similarity index 100% rename from TouchSocket/Core/Data/Compress/GZipDataCompressor.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/GZipDataCompressor.cs.meta diff --git a/TouchSocket/Core/Data/Compress/IDataCompressor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/IDataCompressor.cs similarity index 100% rename from TouchSocket/Core/Data/Compress/IDataCompressor.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/IDataCompressor.cs diff --git a/TouchSocket/Core/Data/Compress/IDataCompressor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/IDataCompressor.cs.meta similarity index 100% rename from TouchSocket/Core/Data/Compress/IDataCompressor.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/IDataCompressor.cs.meta diff --git a/TouchSocket/Core/Data/Crc.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Crc.cs similarity index 100% rename from TouchSocket/Core/Data/Crc.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Crc.cs diff --git a/TouchSocket/Core/Data/Crc.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Crc.cs.meta similarity index 100% rename from TouchSocket/Core/Data/Crc.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Crc.cs.meta diff --git a/TouchSocket/Core/Data/GZip.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/GZip.cs similarity index 100% rename from TouchSocket/Core/Data/GZip.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/GZip.cs diff --git a/TouchSocket/Core/Data/GZip.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/GZip.cs.meta similarity index 100% rename from TouchSocket/Core/Data/GZip.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/GZip.cs.meta diff --git a/TouchSocket/Core/Data/MD5.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/MD5.cs similarity index 100% rename from TouchSocket/Core/Data/MD5.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/MD5.cs diff --git a/TouchSocket/Core/Data/MD5.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/MD5.cs.meta similarity index 100% rename from TouchSocket/Core/Data/MD5.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/MD5.cs.meta diff --git a/TouchSocket/Core/Data/Security.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Security.meta similarity index 100% rename from TouchSocket/Core/Data/Security.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Security.meta diff --git a/TouchSocket/Core/Data/Security/DataSecurity.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Security/DataSecurity.cs similarity index 100% rename from TouchSocket/Core/Data/Security/DataSecurity.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Security/DataSecurity.cs diff --git a/TouchSocket/Core/Data/Security/DataSecurity.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Security/DataSecurity.cs.meta similarity index 100% rename from TouchSocket/Core/Data/Security/DataSecurity.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Security/DataSecurity.cs.meta diff --git a/TouchSocket/Core/Data/Swap.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Swap.cs similarity index 100% rename from TouchSocket/Core/Data/Swap.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Swap.cs diff --git a/TouchSocket/Core/Data/Swap.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Swap.cs.meta similarity index 100% rename from TouchSocket/Core/Data/Swap.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Swap.cs.meta diff --git a/TouchSocket/Core/Data/XML.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/XML.meta similarity index 100% rename from TouchSocket/Core/Data/XML.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/XML.meta diff --git a/TouchSocket/Core/Data/XML/XmlTool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/XML/XmlTool.cs similarity index 100% rename from TouchSocket/Core/Data/XML/XmlTool.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/XML/XmlTool.cs diff --git a/TouchSocket/Core/Data/XML/XmlTool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/XML/XmlTool.cs.meta similarity index 100% rename from TouchSocket/Core/Data/XML/XmlTool.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/XML/XmlTool.cs.meta diff --git a/TouchSocket/Core/Dependency.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency.meta similarity index 100% rename from TouchSocket/Core/Dependency.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency.meta diff --git a/TouchSocket/Core/Dependency/Attribute.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute.meta similarity index 100% rename from TouchSocket/Core/Dependency/Attribute.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute.meta diff --git a/TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs similarity index 100% rename from TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs diff --git a/TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs.meta similarity index 100% rename from TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs.meta diff --git a/TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs similarity index 100% rename from TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs diff --git a/TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs.meta similarity index 100% rename from TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs.meta diff --git a/TouchSocket/Core/Dependency/Container.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Container.cs similarity index 100% rename from TouchSocket/Core/Dependency/Container.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Container.cs diff --git a/TouchSocket/Core/Dependency/Container.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Container.cs.meta similarity index 100% rename from TouchSocket/Core/Dependency/Container.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Container.cs.meta diff --git a/TouchSocket/Core/Dependency/ContainerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerExtension.cs similarity index 100% rename from TouchSocket/Core/Dependency/ContainerExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerExtension.cs diff --git a/TouchSocket/Core/Dependency/ContainerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerExtension.cs.meta similarity index 100% rename from TouchSocket/Core/Dependency/ContainerExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerExtension.cs.meta diff --git a/TouchSocket/Core/Dependency/ContainerProvider.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerProvider.cs similarity index 100% rename from TouchSocket/Core/Dependency/ContainerProvider.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerProvider.cs diff --git a/TouchSocket/Core/Dependency/ContainerProvider.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerProvider.cs.meta similarity index 100% rename from TouchSocket/Core/Dependency/ContainerProvider.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerProvider.cs.meta diff --git a/TouchSocket/Core/Dependency/DependencyDescriptor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyDescriptor.cs similarity index 100% rename from TouchSocket/Core/Dependency/DependencyDescriptor.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyDescriptor.cs diff --git a/TouchSocket/Core/Dependency/DependencyDescriptor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyDescriptor.cs.meta similarity index 100% rename from TouchSocket/Core/Dependency/DependencyDescriptor.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyDescriptor.cs.meta diff --git a/TouchSocket/Core/Dependency/DependencyObject.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyObject.cs similarity index 100% rename from TouchSocket/Core/Dependency/DependencyObject.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyObject.cs diff --git a/TouchSocket/Core/Dependency/DependencyObject.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyObject.cs.meta similarity index 100% rename from TouchSocket/Core/Dependency/DependencyObject.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyObject.cs.meta diff --git a/TouchSocket/Core/Dependency/DependencyProperty.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyProperty.cs similarity index 100% rename from TouchSocket/Core/Dependency/DependencyProperty.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyProperty.cs diff --git a/TouchSocket/Core/Dependency/DependencyProperty.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyProperty.cs.meta similarity index 100% rename from TouchSocket/Core/Dependency/DependencyProperty.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyProperty.cs.meta diff --git a/TouchSocket/Core/Dependency/IContainer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainer.cs similarity index 100% rename from TouchSocket/Core/Dependency/IContainer.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainer.cs diff --git a/TouchSocket/Core/Dependency/IContainer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainer.cs.meta similarity index 100% rename from TouchSocket/Core/Dependency/IContainer.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainer.cs.meta diff --git a/TouchSocket/Core/Dependency/IContainerProvider.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainerProvider.cs similarity index 100% rename from TouchSocket/Core/Dependency/IContainerProvider.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainerProvider.cs diff --git a/TouchSocket/Core/Dependency/IContainerProvider.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainerProvider.cs.meta similarity index 100% rename from TouchSocket/Core/Dependency/IContainerProvider.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainerProvider.cs.meta diff --git a/TouchSocket/Core/Dependency/Lifetime.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Lifetime.cs similarity index 100% rename from TouchSocket/Core/Dependency/Lifetime.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Lifetime.cs diff --git a/TouchSocket/Core/Dependency/Lifetime.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Lifetime.cs.meta similarity index 100% rename from TouchSocket/Core/Dependency/Lifetime.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Lifetime.cs.meta diff --git a/TouchSocket/Core/Diagnostics.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Diagnostics.meta similarity index 100% rename from TouchSocket/Core/Diagnostics.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Diagnostics.meta diff --git a/TouchSocket/Core/Diagnostics/TimeMeasurer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Diagnostics/TimeMeasurer.cs similarity index 100% rename from TouchSocket/Core/Diagnostics/TimeMeasurer.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Diagnostics/TimeMeasurer.cs diff --git a/TouchSocket/Core/Diagnostics/TimeMeasurer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Diagnostics/TimeMeasurer.cs.meta similarity index 100% rename from TouchSocket/Core/Diagnostics/TimeMeasurer.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Diagnostics/TimeMeasurer.cs.meta diff --git a/TouchSocket/Core/Event.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Event.meta similarity index 100% rename from TouchSocket/Core/Event.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Event.meta diff --git a/TouchSocket/Core/Event/TouchSocketEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Event/TouchSocketEventArgs.cs similarity index 100% rename from TouchSocket/Core/Event/TouchSocketEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Event/TouchSocketEventArgs.cs diff --git a/TouchSocket/Core/Event/TouchSocketEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Event/TouchSocketEventArgs.cs.meta similarity index 100% rename from TouchSocket/Core/Event/TouchSocketEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Event/TouchSocketEventArgs.cs.meta diff --git a/TouchSocket/Core/Exceptions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions.meta similarity index 100% rename from TouchSocket/Core/Exceptions.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions.meta diff --git a/TouchSocket/Core/Exceptions/MessageNotFoundException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageNotFoundException.cs similarity index 100% rename from TouchSocket/Core/Exceptions/MessageNotFoundException.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageNotFoundException.cs diff --git a/TouchSocket/Core/Exceptions/MessageNotFoundException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageNotFoundException.cs.meta similarity index 100% rename from TouchSocket/Core/Exceptions/MessageNotFoundException.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageNotFoundException.cs.meta diff --git a/TouchSocket/Core/Exceptions/MessageRegisteredException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageRegisteredException.cs similarity index 100% rename from TouchSocket/Core/Exceptions/MessageRegisteredException.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageRegisteredException.cs diff --git a/TouchSocket/Core/Exceptions/MessageRegisteredException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageRegisteredException.cs.meta similarity index 100% rename from TouchSocket/Core/Exceptions/MessageRegisteredException.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageRegisteredException.cs.meta diff --git a/TouchSocket/Core/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions.meta similarity index 100% rename from TouchSocket/Core/Extensions.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions.meta diff --git a/TouchSocket/Core/Extensions/BytesExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/BytesExtension.cs similarity index 100% rename from TouchSocket/Core/Extensions/BytesExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/BytesExtension.cs diff --git a/TouchSocket/Core/Extensions/BytesExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/BytesExtension.cs.meta similarity index 100% rename from TouchSocket/Core/Extensions/BytesExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/BytesExtension.cs.meta diff --git a/TouchSocket/Core/Extensions/DictionaryExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/DictionaryExtension.cs similarity index 100% rename from TouchSocket/Core/Extensions/DictionaryExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/DictionaryExtension.cs diff --git a/TouchSocket/Core/Extensions/DictionaryExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/DictionaryExtension.cs.meta similarity index 100% rename from TouchSocket/Core/Extensions/DictionaryExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/DictionaryExtension.cs.meta diff --git a/TouchSocket/Core/Extensions/RangeExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/RangeExtension.cs similarity index 100% rename from TouchSocket/Core/Extensions/RangeExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/RangeExtension.cs diff --git a/TouchSocket/Core/Extensions/RangeExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/RangeExtension.cs.meta similarity index 100% rename from TouchSocket/Core/Extensions/RangeExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/RangeExtension.cs.meta diff --git a/TouchSocket/Core/Extensions/StringExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/StringExtension.cs similarity index 100% rename from TouchSocket/Core/Extensions/StringExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/StringExtension.cs diff --git a/TouchSocket/Core/Extensions/StringExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/StringExtension.cs.meta similarity index 100% rename from TouchSocket/Core/Extensions/StringExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/StringExtension.cs.meta diff --git a/TouchSocket/Core/Extensions/SystemExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemExtensions.cs similarity index 100% rename from TouchSocket/Core/Extensions/SystemExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemExtensions.cs diff --git a/TouchSocket/Core/Extensions/SystemExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemExtensions.cs.meta similarity index 100% rename from TouchSocket/Core/Extensions/SystemExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemExtensions.cs.meta diff --git a/TouchSocket/Core/Extensions/SystemNetExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemNetExtension.cs similarity index 100% rename from TouchSocket/Core/Extensions/SystemNetExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemNetExtension.cs diff --git a/TouchSocket/Core/Extensions/SystemNetExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemNetExtension.cs.meta similarity index 100% rename from TouchSocket/Core/Extensions/SystemNetExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemNetExtension.cs.meta diff --git a/TouchSocket/Core/Extensions/TaskExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TaskExtension.cs similarity index 100% rename from TouchSocket/Core/Extensions/TaskExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TaskExtension.cs diff --git a/TouchSocket/Core/Extensions/TaskExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TaskExtension.cs.meta similarity index 100% rename from TouchSocket/Core/Extensions/TaskExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TaskExtension.cs.meta diff --git a/TouchSocket/Core/Extensions/TupleExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TupleExtension.cs similarity index 100% rename from TouchSocket/Core/Extensions/TupleExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TupleExtension.cs diff --git a/TouchSocket/Core/Extensions/TupleExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TupleExtension.cs.meta similarity index 100% rename from TouchSocket/Core/Extensions/TupleExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TupleExtension.cs.meta diff --git a/TouchSocket/Core/Extensions/TypeExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TypeExtension.cs similarity index 100% rename from TouchSocket/Core/Extensions/TypeExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TypeExtension.cs diff --git a/TouchSocket/Core/Extensions/TypeExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TypeExtension.cs.meta similarity index 100% rename from TouchSocket/Core/Extensions/TypeExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TypeExtension.cs.meta diff --git a/TouchSocket/Core/IO.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO.meta similarity index 100% rename from TouchSocket/Core/IO.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO.meta diff --git a/TouchSocket/Core/IO/BlockReadStream.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReadStream.cs similarity index 100% rename from TouchSocket/Core/IO/BlockReadStream.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReadStream.cs diff --git a/TouchSocket/Core/IO/BlockReadStream.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReadStream.cs.meta similarity index 100% rename from TouchSocket/Core/IO/BlockReadStream.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReadStream.cs.meta diff --git a/TouchSocket/Core/IO/BlockReader.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReader.cs similarity index 100% rename from TouchSocket/Core/IO/BlockReader.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReader.cs diff --git a/TouchSocket/Core/IO/BlockReader.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReader.cs.meta similarity index 100% rename from TouchSocket/Core/IO/BlockReader.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReader.cs.meta diff --git a/TouchSocket/Core/IO/ConsoleAction.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/ConsoleAction.cs similarity index 100% rename from TouchSocket/Core/IO/ConsoleAction.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/ConsoleAction.cs diff --git a/TouchSocket/Core/IO/ConsoleAction.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/ConsoleAction.cs.meta similarity index 100% rename from TouchSocket/Core/IO/ConsoleAction.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/ConsoleAction.cs.meta diff --git a/TouchSocket/Core/IO/DirectoryUtility.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/DirectoryUtility.cs similarity index 100% rename from TouchSocket/Core/IO/DirectoryUtility.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/DirectoryUtility.cs diff --git a/TouchSocket/Core/IO/DirectoryUtility.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/DirectoryUtility.cs.meta similarity index 100% rename from TouchSocket/Core/IO/DirectoryUtility.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/DirectoryUtility.cs.meta diff --git a/TouchSocket/Core/IO/FileIO.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO.meta similarity index 100% rename from TouchSocket/Core/IO/FileIO.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO.meta diff --git a/TouchSocket/Core/IO/FileIO/FilePool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FilePool.cs similarity index 100% rename from TouchSocket/Core/IO/FileIO/FilePool.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FilePool.cs diff --git a/TouchSocket/Core/IO/FileIO/FilePool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FilePool.cs.meta similarity index 100% rename from TouchSocket/Core/IO/FileIO/FilePool.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FilePool.cs.meta diff --git a/TouchSocket/Core/IO/FileIO/FileStorage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorage.cs similarity index 100% rename from TouchSocket/Core/IO/FileIO/FileStorage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorage.cs diff --git a/TouchSocket/Core/IO/FileIO/FileStorage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorage.cs.meta similarity index 100% rename from TouchSocket/Core/IO/FileIO/FileStorage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorage.cs.meta diff --git a/TouchSocket/Core/IO/FileIO/FileStorageReader.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageReader.cs similarity index 100% rename from TouchSocket/Core/IO/FileIO/FileStorageReader.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageReader.cs diff --git a/TouchSocket/Core/IO/FileIO/FileStorageReader.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageReader.cs.meta similarity index 100% rename from TouchSocket/Core/IO/FileIO/FileStorageReader.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageReader.cs.meta diff --git a/TouchSocket/Core/IO/FileIO/FileStorageStream.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageStream.cs similarity index 100% rename from TouchSocket/Core/IO/FileIO/FileStorageStream.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageStream.cs diff --git a/TouchSocket/Core/IO/FileIO/FileStorageStream.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageStream.cs.meta similarity index 100% rename from TouchSocket/Core/IO/FileIO/FileStorageStream.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageStream.cs.meta diff --git a/TouchSocket/Core/IO/FileIO/FileStorageWriter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageWriter.cs similarity index 100% rename from TouchSocket/Core/IO/FileIO/FileStorageWriter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageWriter.cs diff --git a/TouchSocket/Core/IO/FileIO/FileStorageWriter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageWriter.cs.meta similarity index 100% rename from TouchSocket/Core/IO/FileIO/FileStorageWriter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageWriter.cs.meta diff --git a/TouchSocket/Core/IO/FileUtility.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileUtility.cs similarity index 100% rename from TouchSocket/Core/IO/FileUtility.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileUtility.cs diff --git a/TouchSocket/Core/IO/FileUtility.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileUtility.cs.meta similarity index 100% rename from TouchSocket/Core/IO/FileUtility.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileUtility.cs.meta diff --git a/TouchSocket/Core/IO/WrapStream.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/WrapStream.cs similarity index 100% rename from TouchSocket/Core/IO/WrapStream.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/WrapStream.cs diff --git a/TouchSocket/Core/IO/WrapStream.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/WrapStream.cs.meta similarity index 100% rename from TouchSocket/Core/IO/WrapStream.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/WrapStream.cs.meta diff --git a/TouchSocket/Core/Logger.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger.meta similarity index 100% rename from TouchSocket/Core/Logger.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger.meta diff --git a/TouchSocket/Core/Logger/ConsoleLogger.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ConsoleLogger.cs similarity index 100% rename from TouchSocket/Core/Logger/ConsoleLogger.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ConsoleLogger.cs diff --git a/TouchSocket/Core/Logger/ConsoleLogger.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ConsoleLogger.cs.meta similarity index 100% rename from TouchSocket/Core/Logger/ConsoleLogger.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ConsoleLogger.cs.meta diff --git a/TouchSocket/Core/Logger/EasyLogger.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/EasyLogger.cs similarity index 100% rename from TouchSocket/Core/Logger/EasyLogger.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/EasyLogger.cs diff --git a/TouchSocket/Core/Logger/EasyLogger.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/EasyLogger.cs.meta similarity index 100% rename from TouchSocket/Core/Logger/EasyLogger.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/EasyLogger.cs.meta diff --git a/TouchSocket/Core/Logger/FileLogger.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/FileLogger.cs similarity index 100% rename from TouchSocket/Core/Logger/FileLogger.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/FileLogger.cs diff --git a/TouchSocket/Core/Logger/FileLogger.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/FileLogger.cs.meta similarity index 100% rename from TouchSocket/Core/Logger/FileLogger.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/FileLogger.cs.meta diff --git a/TouchSocket/Core/Logger/ILog.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ILog.cs similarity index 100% rename from TouchSocket/Core/Logger/ILog.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ILog.cs diff --git a/TouchSocket/Core/Logger/ILog.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ILog.cs.meta similarity index 100% rename from TouchSocket/Core/Logger/ILog.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ILog.cs.meta diff --git a/TouchSocket/Core/Logger/LogType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LogType.cs similarity index 100% rename from TouchSocket/Core/Logger/LogType.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LogType.cs diff --git a/TouchSocket/Core/Logger/LogType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LogType.cs.meta similarity index 100% rename from TouchSocket/Core/Logger/LogType.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LogType.cs.meta diff --git a/TouchSocket/Core/Logger/LoggerBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerBase.cs similarity index 100% rename from TouchSocket/Core/Logger/LoggerBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerBase.cs diff --git a/TouchSocket/Core/Logger/LoggerBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerBase.cs.meta similarity index 100% rename from TouchSocket/Core/Logger/LoggerBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerBase.cs.meta diff --git a/TouchSocket/Core/Logger/LoggerContainerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerContainerExtension.cs similarity index 100% rename from TouchSocket/Core/Logger/LoggerContainerExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerContainerExtension.cs diff --git a/TouchSocket/Core/Logger/LoggerContainerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerContainerExtension.cs.meta similarity index 100% rename from TouchSocket/Core/Logger/LoggerContainerExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerContainerExtension.cs.meta diff --git a/TouchSocket/Core/Logger/LoggerExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerExtensions.cs similarity index 100% rename from TouchSocket/Core/Logger/LoggerExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerExtensions.cs diff --git a/TouchSocket/Core/Logger/LoggerExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerExtensions.cs.meta similarity index 100% rename from TouchSocket/Core/Logger/LoggerExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerExtensions.cs.meta diff --git a/TouchSocket/Core/Logger/LoggerGroup.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerGroup.cs similarity index 100% rename from TouchSocket/Core/Logger/LoggerGroup.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerGroup.cs diff --git a/TouchSocket/Core/Logger/LoggerGroup.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerGroup.cs.meta similarity index 100% rename from TouchSocket/Core/Logger/LoggerGroup.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerGroup.cs.meta diff --git a/TouchSocket/Core/Mapper.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper.meta similarity index 100% rename from TouchSocket/Core/Mapper.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper.meta diff --git a/TouchSocket/Core/Mapper/Mapper.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/Mapper.cs similarity index 100% rename from TouchSocket/Core/Mapper/Mapper.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/Mapper.cs diff --git a/TouchSocket/Core/Mapper/Mapper.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/Mapper.cs.meta similarity index 100% rename from TouchSocket/Core/Mapper/Mapper.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/Mapper.cs.meta diff --git a/TouchSocket/Core/Mapper/MapperOption.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/MapperOption.cs similarity index 100% rename from TouchSocket/Core/Mapper/MapperOption.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/MapperOption.cs diff --git a/TouchSocket/Core/Mapper/MapperOption.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/MapperOption.cs.meta similarity index 100% rename from TouchSocket/Core/Mapper/MapperOption.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/MapperOption.cs.meta diff --git a/TouchSocket/Core/Packages_.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_.meta similarity index 100% rename from TouchSocket/Core/Packages_.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_.meta diff --git a/TouchSocket/Core/Packages_/IPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/IPackage.cs similarity index 100% rename from TouchSocket/Core/Packages_/IPackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/IPackage.cs diff --git a/TouchSocket/Core/Packages_/IPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/IPackage.cs.meta similarity index 100% rename from TouchSocket/Core/Packages_/IPackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/IPackage.cs.meta diff --git a/TouchSocket/Core/Packages_/MsgRouterPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/MsgRouterPackage.cs similarity index 100% rename from TouchSocket/Core/Packages_/MsgRouterPackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/MsgRouterPackage.cs diff --git a/TouchSocket/Core/Packages_/MsgRouterPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/MsgRouterPackage.cs.meta similarity index 100% rename from TouchSocket/Core/Packages_/MsgRouterPackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/MsgRouterPackage.cs.meta diff --git a/TouchSocket/Core/Packages_/PackageBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageBase.cs similarity index 100% rename from TouchSocket/Core/Packages_/PackageBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageBase.cs diff --git a/TouchSocket/Core/Packages_/PackageBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageBase.cs.meta similarity index 100% rename from TouchSocket/Core/Packages_/PackageBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageBase.cs.meta diff --git a/TouchSocket/Core/Packages_/PackageExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageExtensions.cs similarity index 100% rename from TouchSocket/Core/Packages_/PackageExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageExtensions.cs diff --git a/TouchSocket/Core/Packages_/PackageExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageExtensions.cs.meta similarity index 100% rename from TouchSocket/Core/Packages_/PackageExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageExtensions.cs.meta diff --git a/TouchSocket/Core/Packages_/RouterPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/RouterPackage.cs similarity index 100% rename from TouchSocket/Core/Packages_/RouterPackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/RouterPackage.cs diff --git a/TouchSocket/Core/Packages_/RouterPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/RouterPackage.cs.meta similarity index 100% rename from TouchSocket/Core/Packages_/RouterPackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/RouterPackage.cs.meta diff --git a/TouchSocket/Core/Packages_/WaitPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitPackage.cs similarity index 100% rename from TouchSocket/Core/Packages_/WaitPackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitPackage.cs diff --git a/TouchSocket/Core/Packages_/WaitPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitPackage.cs.meta similarity index 100% rename from TouchSocket/Core/Packages_/WaitPackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitPackage.cs.meta diff --git a/TouchSocket/Core/Packages_/WaitRouterPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitRouterPackage.cs similarity index 100% rename from TouchSocket/Core/Packages_/WaitRouterPackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitRouterPackage.cs diff --git a/TouchSocket/Core/Packages_/WaitRouterPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitRouterPackage.cs.meta similarity index 100% rename from TouchSocket/Core/Packages_/WaitRouterPackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitRouterPackage.cs.meta diff --git a/TouchSocket/Core/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins.meta similarity index 100% rename from TouchSocket/Core/Plugins.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins.meta diff --git a/TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs similarity index 100% rename from TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs diff --git a/TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs.meta similarity index 100% rename from TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs.meta diff --git a/TouchSocket/Core/Plugins/IPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPlugin.cs similarity index 100% rename from TouchSocket/Core/Plugins/IPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPlugin.cs diff --git a/TouchSocket/Core/Plugins/IPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPlugin.cs.meta similarity index 100% rename from TouchSocket/Core/Plugins/IPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPlugin.cs.meta diff --git a/TouchSocket/Core/Plugins/IPluginObject.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginObject.cs similarity index 100% rename from TouchSocket/Core/Plugins/IPluginObject.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginObject.cs diff --git a/TouchSocket/Core/Plugins/IPluginObject.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginObject.cs.meta similarity index 100% rename from TouchSocket/Core/Plugins/IPluginObject.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginObject.cs.meta diff --git a/TouchSocket/Core/Plugins/IPluginsManager.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginsManager.cs similarity index 100% rename from TouchSocket/Core/Plugins/IPluginsManager.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginsManager.cs diff --git a/TouchSocket/Core/Plugins/IPluginsManager.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginsManager.cs.meta similarity index 100% rename from TouchSocket/Core/Plugins/IPluginsManager.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginsManager.cs.meta diff --git a/TouchSocket/Core/Plugins/PlguinObjectExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PlguinObjectExtension.cs similarity index 100% rename from TouchSocket/Core/Plugins/PlguinObjectExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PlguinObjectExtension.cs diff --git a/TouchSocket/Core/Plugins/PlguinObjectExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PlguinObjectExtension.cs.meta similarity index 100% rename from TouchSocket/Core/Plugins/PlguinObjectExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PlguinObjectExtension.cs.meta diff --git a/TouchSocket/Core/Plugins/PluginBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginBase.cs similarity index 100% rename from TouchSocket/Core/Plugins/PluginBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginBase.cs diff --git a/TouchSocket/Core/Plugins/PluginBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginBase.cs.meta similarity index 100% rename from TouchSocket/Core/Plugins/PluginBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginBase.cs.meta diff --git a/TouchSocket/Core/Plugins/PluginsManager.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManager.cs similarity index 100% rename from TouchSocket/Core/Plugins/PluginsManager.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManager.cs diff --git a/TouchSocket/Core/Plugins/PluginsManager.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManager.cs.meta similarity index 100% rename from TouchSocket/Core/Plugins/PluginsManager.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManager.cs.meta diff --git a/TouchSocket/Core/Plugins/PluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManagerExtension.cs similarity index 100% rename from TouchSocket/Core/Plugins/PluginsManagerExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManagerExtension.cs diff --git a/TouchSocket/Core/Plugins/PluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManagerExtension.cs.meta similarity index 100% rename from TouchSocket/Core/Plugins/PluginsManagerExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManagerExtension.cs.meta diff --git a/TouchSocket/Core/Plugins/SingletonPluginAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/SingletonPluginAttribute.cs similarity index 100% rename from TouchSocket/Core/Plugins/SingletonPluginAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/SingletonPluginAttribute.cs diff --git a/TouchSocket/Core/Plugins/SingletonPluginAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/SingletonPluginAttribute.cs.meta similarity index 100% rename from TouchSocket/Core/Plugins/SingletonPluginAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/SingletonPluginAttribute.cs.meta diff --git a/TouchSocket/Core/Pool.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool.meta similarity index 100% rename from TouchSocket/Core/Pool.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool.meta diff --git a/TouchSocket/Core/Pool/ObjectPool.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool.meta similarity index 100% rename from TouchSocket/Core/Pool/ObjectPool.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool.meta diff --git a/TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs similarity index 100% rename from TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs diff --git a/TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs.meta similarity index 100% rename from TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs.meta diff --git a/TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs similarity index 100% rename from TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs diff --git a/TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs.meta similarity index 100% rename from TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs.meta diff --git a/TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs similarity index 100% rename from TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs diff --git a/TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs.meta similarity index 100% rename from TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs.meta diff --git a/TouchSocket/Core/Reflection.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection.meta similarity index 100% rename from TouchSocket/Core/Reflection.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection.meta diff --git a/TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs similarity index 100% rename from TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs diff --git a/TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs.meta similarity index 100% rename from TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs.meta diff --git a/TouchSocket/Core/Reflection/ExpressionMapper.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/ExpressionMapper.cs similarity index 100% rename from TouchSocket/Core/Reflection/ExpressionMapper.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/ExpressionMapper.cs diff --git a/TouchSocket/Core/Reflection/ExpressionMapper.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/ExpressionMapper.cs.meta similarity index 100% rename from TouchSocket/Core/Reflection/ExpressionMapper.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/ExpressionMapper.cs.meta diff --git a/TouchSocket/Core/Reflection/IMemberAccessor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/IMemberAccessor.cs similarity index 100% rename from TouchSocket/Core/Reflection/IMemberAccessor.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/IMemberAccessor.cs diff --git a/TouchSocket/Core/Reflection/IMemberAccessor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/IMemberAccessor.cs.meta similarity index 100% rename from TouchSocket/Core/Reflection/IMemberAccessor.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/IMemberAccessor.cs.meta diff --git a/TouchSocket/Core/Reflection/Member.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Member.cs similarity index 100% rename from TouchSocket/Core/Reflection/Member.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Member.cs diff --git a/TouchSocket/Core/Reflection/Member.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Member.cs.meta similarity index 100% rename from TouchSocket/Core/Reflection/Member.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Member.cs.meta diff --git a/TouchSocket/Core/Reflection/MemberAccessor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberAccessor.cs similarity index 100% rename from TouchSocket/Core/Reflection/MemberAccessor.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberAccessor.cs diff --git a/TouchSocket/Core/Reflection/MemberAccessor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberAccessor.cs.meta similarity index 100% rename from TouchSocket/Core/Reflection/MemberAccessor.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberAccessor.cs.meta diff --git a/TouchSocket/Core/Reflection/MemberGetter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberGetter.cs similarity index 100% rename from TouchSocket/Core/Reflection/MemberGetter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberGetter.cs diff --git a/TouchSocket/Core/Reflection/MemberGetter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberGetter.cs.meta similarity index 100% rename from TouchSocket/Core/Reflection/MemberGetter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberGetter.cs.meta diff --git a/TouchSocket/Core/Reflection/MemberSetter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberSetter.cs similarity index 100% rename from TouchSocket/Core/Reflection/MemberSetter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberSetter.cs diff --git a/TouchSocket/Core/Reflection/MemberSetter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberSetter.cs.meta similarity index 100% rename from TouchSocket/Core/Reflection/MemberSetter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberSetter.cs.meta diff --git a/TouchSocket/Core/Reflection/Method.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Method.cs similarity index 100% rename from TouchSocket/Core/Reflection/Method.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Method.cs diff --git a/TouchSocket/Core/Reflection/Method.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Method.cs.meta similarity index 100% rename from TouchSocket/Core/Reflection/Method.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Method.cs.meta diff --git a/TouchSocket/Core/Reflection/Property.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Property.cs similarity index 100% rename from TouchSocket/Core/Reflection/Property.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Property.cs diff --git a/TouchSocket/Core/Reflection/Property.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Property.cs.meta similarity index 100% rename from TouchSocket/Core/Reflection/Property.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Property.cs.meta diff --git a/TouchSocket/Core/Run.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run.meta similarity index 100% rename from TouchSocket/Core/Run.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run.meta diff --git a/TouchSocket/Core/Run/Action.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action.meta similarity index 100% rename from TouchSocket/Core/Run/Action.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action.meta diff --git a/TouchSocket/Core/Run/Action/EasyTask.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/EasyTask.cs similarity index 100% rename from TouchSocket/Core/Run/Action/EasyTask.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/EasyTask.cs diff --git a/TouchSocket/Core/Run/Action/EasyTask.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/EasyTask.cs.meta similarity index 100% rename from TouchSocket/Core/Run/Action/EasyTask.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/EasyTask.cs.meta diff --git a/TouchSocket/Core/Run/Action/LoopAction.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/LoopAction.cs similarity index 100% rename from TouchSocket/Core/Run/Action/LoopAction.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/LoopAction.cs diff --git a/TouchSocket/Core/Run/Action/LoopAction.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/LoopAction.cs.meta similarity index 100% rename from TouchSocket/Core/Run/Action/LoopAction.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/LoopAction.cs.meta diff --git a/TouchSocket/Core/Run/Action/RunStatus.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/RunStatus.cs similarity index 100% rename from TouchSocket/Core/Run/Action/RunStatus.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/RunStatus.cs diff --git a/TouchSocket/Core/Run/Action/RunStatus.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/RunStatus.cs.meta similarity index 100% rename from TouchSocket/Core/Run/Action/RunStatus.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/RunStatus.cs.meta diff --git a/TouchSocket/Core/Run/Message.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message.meta similarity index 100% rename from TouchSocket/Core/Run/Message.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message.meta diff --git a/TouchSocket/Core/Run/Message/AppMessageAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessageAttribute.cs similarity index 100% rename from TouchSocket/Core/Run/Message/AppMessageAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessageAttribute.cs diff --git a/TouchSocket/Core/Run/Message/AppMessageAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessageAttribute.cs.meta similarity index 100% rename from TouchSocket/Core/Run/Message/AppMessageAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessageAttribute.cs.meta diff --git a/TouchSocket/Core/Run/Message/AppMessenger.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessenger.cs similarity index 100% rename from TouchSocket/Core/Run/Message/AppMessenger.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessenger.cs diff --git a/TouchSocket/Core/Run/Message/AppMessenger.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessenger.cs.meta similarity index 100% rename from TouchSocket/Core/Run/Message/AppMessenger.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessenger.cs.meta diff --git a/TouchSocket/Core/Run/Message/AppMessengerExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessengerExtensions.cs similarity index 100% rename from TouchSocket/Core/Run/Message/AppMessengerExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessengerExtensions.cs diff --git a/TouchSocket/Core/Run/Message/AppMessengerExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessengerExtensions.cs.meta similarity index 100% rename from TouchSocket/Core/Run/Message/AppMessengerExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessengerExtensions.cs.meta diff --git a/TouchSocket/Core/Run/Message/IMessageObject.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/IMessageObject.cs similarity index 100% rename from TouchSocket/Core/Run/Message/IMessageObject.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/IMessageObject.cs diff --git a/TouchSocket/Core/Run/Message/IMessageObject.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/IMessageObject.cs.meta similarity index 100% rename from TouchSocket/Core/Run/Message/IMessageObject.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/IMessageObject.cs.meta diff --git a/TouchSocket/Core/Run/Message/MessageInstance.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/MessageInstance.cs similarity index 100% rename from TouchSocket/Core/Run/Message/MessageInstance.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/MessageInstance.cs diff --git a/TouchSocket/Core/Run/Message/MessageInstance.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/MessageInstance.cs.meta similarity index 100% rename from TouchSocket/Core/Run/Message/MessageInstance.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/MessageInstance.cs.meta diff --git a/TouchSocket/Core/Run/Timers.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Timers.meta similarity index 100% rename from TouchSocket/Core/Run/Timers.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Timers.meta diff --git a/TouchSocket/Core/Run/Timers/SingleTimer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Timers/SingleTimer.cs similarity index 100% rename from TouchSocket/Core/Run/Timers/SingleTimer.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Timers/SingleTimer.cs diff --git a/TouchSocket/Core/Run/Timers/SingleTimer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Timers/SingleTimer.cs.meta similarity index 100% rename from TouchSocket/Core/Run/Timers/SingleTimer.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Timers/SingleTimer.cs.meta diff --git a/TouchSocket/Core/Run/WaitPool.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool.meta similarity index 100% rename from TouchSocket/Core/Run/WaitPool.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool.meta diff --git a/TouchSocket/Core/Run/WaitPool/IWaitResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/IWaitResult.cs similarity index 100% rename from TouchSocket/Core/Run/WaitPool/IWaitResult.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/IWaitResult.cs diff --git a/TouchSocket/Core/Run/WaitPool/IWaitResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/IWaitResult.cs.meta similarity index 100% rename from TouchSocket/Core/Run/WaitPool/IWaitResult.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/IWaitResult.cs.meta diff --git a/TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs similarity index 100% rename from TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs diff --git a/TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs.meta similarity index 100% rename from TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs.meta diff --git a/TouchSocket/Core/Run/WaitPool/WaitData.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitData.cs similarity index 100% rename from TouchSocket/Core/Run/WaitPool/WaitData.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitData.cs diff --git a/TouchSocket/Core/Run/WaitPool/WaitData.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitData.cs.meta similarity index 100% rename from TouchSocket/Core/Run/WaitPool/WaitData.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitData.cs.meta diff --git a/TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs similarity index 100% rename from TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs diff --git a/TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs.meta similarity index 100% rename from TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs.meta diff --git a/TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs similarity index 100% rename from TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs diff --git a/TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs.meta similarity index 100% rename from TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs.meta diff --git a/TouchSocket/Core/Run/WaitPool/WaitResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitResult.cs similarity index 100% rename from TouchSocket/Core/Run/WaitPool/WaitResult.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitResult.cs diff --git a/TouchSocket/Core/Run/WaitPool/WaitResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitResult.cs.meta similarity index 100% rename from TouchSocket/Core/Run/WaitPool/WaitResult.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitResult.cs.meta diff --git a/TouchSocket/Core/Serialization.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization.meta similarity index 100% rename from TouchSocket/Core/Serialization.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization.meta diff --git a/TouchSocket/Core/Serialization/Attributes.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes.meta similarity index 100% rename from TouchSocket/Core/Serialization/Attributes.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes.meta diff --git a/TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs similarity index 100% rename from TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs diff --git a/TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs.meta similarity index 100% rename from TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs.meta diff --git a/TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs similarity index 100% rename from TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs diff --git a/TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs.meta similarity index 100% rename from TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs.meta diff --git a/TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs similarity index 100% rename from TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs diff --git a/TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs.meta similarity index 100% rename from TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs.meta diff --git a/TouchSocket/Core/Serialization/FastBinary.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary.meta similarity index 100% rename from TouchSocket/Core/Serialization/FastBinary.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary.meta diff --git a/TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs similarity index 100% rename from TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs diff --git a/TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs.meta similarity index 100% rename from TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs.meta diff --git a/TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs similarity index 100% rename from TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs diff --git a/TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs.meta similarity index 100% rename from TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs.meta diff --git a/TouchSocket/Core/Serialization/FastBinary/InstanceType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/InstanceType.cs similarity index 100% rename from TouchSocket/Core/Serialization/FastBinary/InstanceType.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/InstanceType.cs diff --git a/TouchSocket/Core/Serialization/FastBinary/InstanceType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/InstanceType.cs.meta similarity index 100% rename from TouchSocket/Core/Serialization/FastBinary/InstanceType.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/InstanceType.cs.meta diff --git a/TouchSocket/Core/Serialization/FastBinary/SerializObject.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializObject.cs similarity index 100% rename from TouchSocket/Core/Serialization/FastBinary/SerializObject.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializObject.cs diff --git a/TouchSocket/Core/Serialization/FastBinary/SerializObject.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializObject.cs.meta similarity index 100% rename from TouchSocket/Core/Serialization/FastBinary/SerializObject.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializObject.cs.meta diff --git a/TouchSocket/Core/Serialization/FastBinary/SerializationType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializationType.cs similarity index 100% rename from TouchSocket/Core/Serialization/FastBinary/SerializationType.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializationType.cs diff --git a/TouchSocket/Core/Serialization/FastBinary/SerializationType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializationType.cs.meta similarity index 100% rename from TouchSocket/Core/Serialization/FastBinary/SerializationType.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializationType.cs.meta diff --git a/TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs similarity index 100% rename from TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs diff --git a/TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs.meta similarity index 100% rename from TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs.meta diff --git a/TouchSocket/Core/Serialization/Json.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json.meta similarity index 100% rename from TouchSocket/Core/Serialization/Json.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json.meta diff --git a/TouchSocket/Core/Serialization/Json/JsonFast.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonFast.cs similarity index 100% rename from TouchSocket/Core/Serialization/Json/JsonFast.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonFast.cs diff --git a/TouchSocket/Core/Serialization/Json/JsonFast.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonFast.cs.meta similarity index 100% rename from TouchSocket/Core/Serialization/Json/JsonFast.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonFast.cs.meta diff --git a/TouchSocket/Core/Serialization/Json/JsonNet.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonNet.cs similarity index 100% rename from TouchSocket/Core/Serialization/Json/JsonNet.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonNet.cs diff --git a/TouchSocket/Core/Serialization/Json/JsonNet.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonNet.cs.meta similarity index 100% rename from TouchSocket/Core/Serialization/Json/JsonNet.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonNet.cs.meta diff --git a/TouchSocket/Core/Serialization/SerializeConvert.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/SerializeConvert.cs similarity index 100% rename from TouchSocket/Core/Serialization/SerializeConvert.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/SerializeConvert.cs diff --git a/TouchSocket/Core/Serialization/SerializeConvert.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/SerializeConvert.cs.meta similarity index 100% rename from TouchSocket/Core/Serialization/SerializeConvert.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/SerializeConvert.cs.meta diff --git a/TouchSocket/Core/代码说明.txt b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/代码说明.txt similarity index 100% rename from TouchSocket/Core/代码说明.txt rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/代码说明.txt diff --git a/TouchSocket/Core/代码说明.txt.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/代码说明.txt.meta similarity index 100% rename from TouchSocket/Core/代码说明.txt.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/代码说明.txt.meta diff --git a/TouchSocket/Http.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http.meta similarity index 100% rename from TouchSocket/Http.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http.meta diff --git a/TouchSocket/Http/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common.meta similarity index 100% rename from TouchSocket/Http/Common.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common.meta diff --git a/TouchSocket/Http/Common/FileCachePool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/FileCachePool.cs similarity index 100% rename from TouchSocket/Http/Common/FileCachePool.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/FileCachePool.cs diff --git a/TouchSocket/Http/Common/FileCachePool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/FileCachePool.cs.meta similarity index 100% rename from TouchSocket/Http/Common/FileCachePool.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/FileCachePool.cs.meta diff --git a/TouchSocket/Http/Common/HttpBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpBase.cs similarity index 100% rename from TouchSocket/Http/Common/HttpBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpBase.cs diff --git a/TouchSocket/Http/Common/HttpBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpBase.cs.meta similarity index 100% rename from TouchSocket/Http/Common/HttpBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpBase.cs.meta diff --git a/TouchSocket/Http/Common/HttpContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpContext.cs similarity index 100% rename from TouchSocket/Http/Common/HttpContext.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpContext.cs diff --git a/TouchSocket/Http/Common/HttpContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpContext.cs.meta similarity index 100% rename from TouchSocket/Http/Common/HttpContext.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpContext.cs.meta diff --git a/TouchSocket/Http/Common/HttpProxy.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpProxy.cs similarity index 100% rename from TouchSocket/Http/Common/HttpProxy.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpProxy.cs diff --git a/TouchSocket/Http/Common/HttpProxy.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpProxy.cs.meta similarity index 100% rename from TouchSocket/Http/Common/HttpProxy.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpProxy.cs.meta diff --git a/TouchSocket/Http/Common/HttpRange.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRange.cs similarity index 100% rename from TouchSocket/Http/Common/HttpRange.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRange.cs diff --git a/TouchSocket/Http/Common/HttpRange.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRange.cs.meta similarity index 100% rename from TouchSocket/Http/Common/HttpRange.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRange.cs.meta diff --git a/TouchSocket/Http/Common/HttpRequest.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRequest.cs similarity index 100% rename from TouchSocket/Http/Common/HttpRequest.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRequest.cs diff --git a/TouchSocket/Http/Common/HttpRequest.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRequest.cs.meta similarity index 100% rename from TouchSocket/Http/Common/HttpRequest.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRequest.cs.meta diff --git a/TouchSocket/Http/Common/HttpResponse.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpResponse.cs similarity index 100% rename from TouchSocket/Http/Common/HttpResponse.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpResponse.cs diff --git a/TouchSocket/Http/Common/HttpResponse.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpResponse.cs.meta similarity index 100% rename from TouchSocket/Http/Common/HttpResponse.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpResponse.cs.meta diff --git a/TouchSocket/Http/Common/HttpTools.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpTools.cs similarity index 100% rename from TouchSocket/Http/Common/HttpTools.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpTools.cs diff --git a/TouchSocket/Http/Common/HttpTools.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpTools.cs.meta similarity index 100% rename from TouchSocket/Http/Common/HttpTools.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpTools.cs.meta diff --git a/TouchSocket/Http/Common/MultifileCollection.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/MultifileCollection.cs similarity index 100% rename from TouchSocket/Http/Common/MultifileCollection.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/MultifileCollection.cs diff --git a/TouchSocket/Http/Common/MultifileCollection.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/MultifileCollection.cs.meta similarity index 100% rename from TouchSocket/Http/Common/MultifileCollection.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/MultifileCollection.cs.meta diff --git a/TouchSocket/Http/Common/TouchSocketHttpUtility.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/TouchSocketHttpUtility.cs similarity index 100% rename from TouchSocket/Http/Common/TouchSocketHttpUtility.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/TouchSocketHttpUtility.cs diff --git a/TouchSocket/Http/Common/TouchSocketHttpUtility.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/TouchSocketHttpUtility.cs.meta similarity index 100% rename from TouchSocket/Http/Common/TouchSocketHttpUtility.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/TouchSocketHttpUtility.cs.meta diff --git a/TouchSocket/Http/Common/WebProxy.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy.meta similarity index 100% rename from TouchSocket/Http/Common/WebProxy.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy.meta diff --git a/TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs similarity index 100% rename from TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs diff --git a/TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs.meta similarity index 100% rename from TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs.meta diff --git a/TouchSocket/Http/Common/WebProxy/AuthenticationType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationType.cs similarity index 100% rename from TouchSocket/Http/Common/WebProxy/AuthenticationType.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationType.cs diff --git a/TouchSocket/Http/Common/WebProxy/AuthenticationType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationType.cs.meta similarity index 100% rename from TouchSocket/Http/Common/WebProxy/AuthenticationType.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationType.cs.meta diff --git a/TouchSocket/Http/Common/WebProxy/NetworkCredential.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/NetworkCredential.cs similarity index 100% rename from TouchSocket/Http/Common/WebProxy/NetworkCredential.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/NetworkCredential.cs diff --git a/TouchSocket/Http/Common/WebProxy/NetworkCredential.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/NetworkCredential.cs.meta similarity index 100% rename from TouchSocket/Http/Common/WebProxy/NetworkCredential.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/NetworkCredential.cs.meta diff --git a/TouchSocket/Http/Components.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components.meta similarity index 100% rename from TouchSocket/Http/Components.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components.meta diff --git a/TouchSocket/Http/Components/HttpClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpClient.cs similarity index 100% rename from TouchSocket/Http/Components/HttpClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpClient.cs diff --git a/TouchSocket/Http/Components/HttpClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpClient.cs.meta similarity index 100% rename from TouchSocket/Http/Components/HttpClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpClient.cs.meta diff --git a/TouchSocket/Http/Components/HttpService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpService.cs similarity index 100% rename from TouchSocket/Http/Components/HttpService.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpService.cs diff --git a/TouchSocket/Http/Components/HttpService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpService.cs.meta similarity index 100% rename from TouchSocket/Http/Components/HttpService.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpService.cs.meta diff --git a/TouchSocket/Http/Components/HttpSocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpSocketClient.cs similarity index 100% rename from TouchSocket/Http/Components/HttpSocketClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpSocketClient.cs diff --git a/TouchSocket/Http/Components/HttpSocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpSocketClient.cs.meta similarity index 100% rename from TouchSocket/Http/Components/HttpSocketClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpSocketClient.cs.meta diff --git a/TouchSocket/Http/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Config.meta similarity index 100% rename from TouchSocket/Http/Config.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Config.meta diff --git a/TouchSocket/Http/Config/HttpConfigExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Config/HttpConfigExtensions.cs similarity index 100% rename from TouchSocket/Http/Config/HttpConfigExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Config/HttpConfigExtensions.cs diff --git a/TouchSocket/Http/Config/HttpConfigExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Config/HttpConfigExtensions.cs.meta similarity index 100% rename from TouchSocket/Http/Config/HttpConfigExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Config/HttpConfigExtensions.cs.meta diff --git a/TouchSocket/Http/DataAdapter.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter.meta similarity index 100% rename from TouchSocket/Http/DataAdapter.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter.meta diff --git a/TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs similarity index 100% rename from TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs diff --git a/TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs.meta similarity index 100% rename from TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs.meta diff --git a/TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs similarity index 100% rename from TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs diff --git a/TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs.meta similarity index 100% rename from TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs.meta diff --git a/TouchSocket/Http/DelegateCollection.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DelegateCollection.cs similarity index 100% rename from TouchSocket/Http/DelegateCollection.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DelegateCollection.cs diff --git a/TouchSocket/Http/DelegateCollection.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DelegateCollection.cs.meta similarity index 100% rename from TouchSocket/Http/DelegateCollection.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DelegateCollection.cs.meta diff --git a/TouchSocket/Http/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Enum.meta similarity index 100% rename from TouchSocket/Http/Enum.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Enum.meta diff --git a/TouchSocket/Http/Enum/HttpHeaders.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Enum/HttpHeaders.cs similarity index 100% rename from TouchSocket/Http/Enum/HttpHeaders.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Enum/HttpHeaders.cs diff --git a/TouchSocket/Http/Enum/HttpHeaders.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Enum/HttpHeaders.cs.meta similarity index 100% rename from TouchSocket/Http/Enum/HttpHeaders.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Enum/HttpHeaders.cs.meta diff --git a/TouchSocket/Http/EventArgs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/EventArgs.meta similarity index 100% rename from TouchSocket/Http/EventArgs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/EventArgs.meta diff --git a/TouchSocket/Http/EventArgs/HttpContextEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/EventArgs/HttpContextEventArgs.cs similarity index 100% rename from TouchSocket/Http/EventArgs/HttpContextEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/EventArgs/HttpContextEventArgs.cs diff --git a/TouchSocket/Http/EventArgs/HttpContextEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/EventArgs/HttpContextEventArgs.cs.meta similarity index 100% rename from TouchSocket/Http/EventArgs/HttpContextEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/EventArgs/HttpContextEventArgs.cs.meta diff --git a/TouchSocket/Http/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions.meta similarity index 100% rename from TouchSocket/Http/Extensions.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions.meta diff --git a/TouchSocket/Http/Extensions/HttpExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpExtensions.cs similarity index 100% rename from TouchSocket/Http/Extensions/HttpExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpExtensions.cs diff --git a/TouchSocket/Http/Extensions/HttpExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpExtensions.cs.meta similarity index 100% rename from TouchSocket/Http/Extensions/HttpExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpExtensions.cs.meta diff --git a/TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs similarity index 100% rename from TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs diff --git a/TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs.meta similarity index 100% rename from TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs.meta diff --git a/TouchSocket/Http/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface.meta similarity index 100% rename from TouchSocket/Http/Interface.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface.meta diff --git a/TouchSocket/Http/Interface/HttpPluginInterface.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/HttpPluginInterface.cs similarity index 100% rename from TouchSocket/Http/Interface/HttpPluginInterface.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/HttpPluginInterface.cs diff --git a/TouchSocket/Http/Interface/HttpPluginInterface.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/HttpPluginInterface.cs.meta similarity index 100% rename from TouchSocket/Http/Interface/HttpPluginInterface.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/HttpPluginInterface.cs.meta diff --git a/TouchSocket/Http/Interface/IFormFile.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IFormFile.cs similarity index 100% rename from TouchSocket/Http/Interface/IFormFile.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IFormFile.cs diff --git a/TouchSocket/Http/Interface/IFormFile.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IFormFile.cs.meta similarity index 100% rename from TouchSocket/Http/Interface/IFormFile.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IFormFile.cs.meta diff --git a/TouchSocket/Http/Interface/IHttpClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpClient.cs similarity index 100% rename from TouchSocket/Http/Interface/IHttpClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpClient.cs diff --git a/TouchSocket/Http/Interface/IHttpClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpClient.cs.meta similarity index 100% rename from TouchSocket/Http/Interface/IHttpClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpClient.cs.meta diff --git a/TouchSocket/Http/Interface/IHttpService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpService.cs similarity index 100% rename from TouchSocket/Http/Interface/IHttpService.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpService.cs diff --git a/TouchSocket/Http/Interface/IHttpService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpService.cs.meta similarity index 100% rename from TouchSocket/Http/Interface/IHttpService.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpService.cs.meta diff --git a/TouchSocket/Http/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins.meta similarity index 100% rename from TouchSocket/Http/Plugins.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins.meta diff --git a/TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs similarity index 100% rename from TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs diff --git a/TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs.meta similarity index 100% rename from TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs.meta diff --git a/TouchSocket/Http/Plugins/HttpPluginBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpPluginBase.cs similarity index 100% rename from TouchSocket/Http/Plugins/HttpPluginBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpPluginBase.cs diff --git a/TouchSocket/Http/Plugins/HttpPluginBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpPluginBase.cs.meta similarity index 100% rename from TouchSocket/Http/Plugins/HttpPluginBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpPluginBase.cs.meta diff --git a/TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs similarity index 100% rename from TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs diff --git a/TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs.meta similarity index 100% rename from TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs.meta diff --git a/TouchSocket/Http/WebSockets.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets.meta similarity index 100% rename from TouchSocket/Http/WebSockets.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets.meta diff --git a/TouchSocket/Http/WebSockets/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Common.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common.meta diff --git a/TouchSocket/Http/WebSockets/Common/WSDataFrame.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSDataFrame.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Common/WSDataFrame.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSDataFrame.cs diff --git a/TouchSocket/Http/WebSockets/Common/WSDataFrame.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSDataFrame.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Common/WSDataFrame.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSDataFrame.cs.meta diff --git a/TouchSocket/Http/WebSockets/Common/WSTools.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSTools.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Common/WSTools.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSTools.cs diff --git a/TouchSocket/Http/WebSockets/Common/WSTools.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSTools.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Common/WSTools.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSTools.cs.meta diff --git a/TouchSocket/Http/WebSockets/Components.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Components.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Components.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Components.meta diff --git a/TouchSocket/Http/WebSockets/Components/WebSocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Components/WebSocketClient.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Components/WebSocketClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Components/WebSocketClient.cs diff --git a/TouchSocket/Http/WebSockets/Components/WebSocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Components/WebSocketClient.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Components/WebSocketClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Components/WebSocketClient.cs.meta diff --git a/TouchSocket/Http/WebSockets/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Config.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Config.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Config.meta diff --git a/TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs diff --git a/TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs.meta diff --git a/TouchSocket/Http/WebSockets/DataAdapter.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DataAdapter.meta similarity index 100% rename from TouchSocket/Http/WebSockets/DataAdapter.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DataAdapter.meta diff --git a/TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs similarity index 100% rename from TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs diff --git a/TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs.meta diff --git a/TouchSocket/Http/WebSockets/DelegateCollection.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DelegateCollection.cs similarity index 100% rename from TouchSocket/Http/WebSockets/DelegateCollection.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DelegateCollection.cs diff --git a/TouchSocket/Http/WebSockets/DelegateCollection.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DelegateCollection.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/DelegateCollection.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DelegateCollection.cs.meta diff --git a/TouchSocket/Http/WebSockets/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Enum.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Enum.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Enum.meta diff --git a/TouchSocket/Http/WebSockets/Enum/WSDataType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Enum/WSDataType.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Enum/WSDataType.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Enum/WSDataType.cs diff --git a/TouchSocket/Http/WebSockets/Enum/WSDataType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Enum/WSDataType.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Enum/WSDataType.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Enum/WSDataType.cs.meta diff --git a/TouchSocket/Http/WebSockets/EventArgs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/EventArgs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/EventArgs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/EventArgs.meta diff --git a/TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs similarity index 100% rename from TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs diff --git a/TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs.meta diff --git a/TouchSocket/Http/WebSockets/Exceptions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Exceptions.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Exceptions.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Exceptions.meta diff --git a/TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs diff --git a/TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs.meta diff --git a/TouchSocket/Http/WebSockets/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Extensions.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions.meta diff --git a/TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs diff --git a/TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs.meta diff --git a/TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs diff --git a/TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs.meta diff --git a/TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs diff --git a/TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs.meta diff --git a/TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs diff --git a/TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs.meta diff --git a/TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs diff --git a/TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs.meta diff --git a/TouchSocket/Http/WebSockets/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Interface.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface.meta diff --git a/TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs diff --git a/TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs.meta diff --git a/TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs diff --git a/TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs.meta diff --git a/TouchSocket/Http/WebSockets/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Plugins.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins.meta diff --git a/TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs diff --git a/TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs.meta diff --git a/TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs diff --git a/TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs.meta diff --git a/TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs diff --git a/TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs.meta diff --git a/TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs similarity index 100% rename from TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs diff --git a/TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs.meta similarity index 100% rename from TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs.meta diff --git a/TouchSocket/Resources.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources.meta similarity index 100% rename from TouchSocket/Resources.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources.meta diff --git a/TouchSocket/Resources/AssemblyInfo.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/AssemblyInfo.cs similarity index 100% rename from TouchSocket/Resources/AssemblyInfo.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/AssemblyInfo.cs diff --git a/TouchSocket/Resources/AssemblyInfo.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/AssemblyInfo.cs.meta similarity index 100% rename from TouchSocket/Resources/AssemblyInfo.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/AssemblyInfo.cs.meta diff --git a/TouchSocket/Resources/TouchSocketStatus.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatus.cs similarity index 100% rename from TouchSocket/Resources/TouchSocketStatus.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatus.cs diff --git a/TouchSocket/Resources/TouchSocketStatus.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatus.cs.meta similarity index 100% rename from TouchSocket/Resources/TouchSocketStatus.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatus.cs.meta diff --git a/TouchSocket/Resources/TouchSocketStatusExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatusExtension.cs similarity index 100% rename from TouchSocket/Resources/TouchSocketStatusExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatusExtension.cs diff --git a/TouchSocket/Resources/TouchSocketStatusExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatusExtension.cs.meta similarity index 100% rename from TouchSocket/Resources/TouchSocketStatusExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatusExtension.cs.meta diff --git a/TouchSocket/Rpc.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc.meta similarity index 100% rename from TouchSocket/Rpc.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc.meta diff --git a/TouchSocket/Rpc/Global.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global.meta similarity index 100% rename from TouchSocket/Rpc/Global.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global.meta diff --git a/TouchSocket/Rpc/Global/Attribute.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute.meta similarity index 100% rename from TouchSocket/Rpc/Global/Attribute.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute.meta diff --git a/TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs similarity index 100% rename from TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs diff --git a/TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs.meta diff --git a/TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs similarity index 100% rename from TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs diff --git a/TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs.meta diff --git a/TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs similarity index 100% rename from TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs diff --git a/TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs.meta diff --git a/TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs similarity index 100% rename from TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs diff --git a/TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs.meta diff --git a/TouchSocket/Rpc/Global/Code.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code.meta similarity index 100% rename from TouchSocket/Rpc/Global/Code.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code.meta diff --git a/TouchSocket/Rpc/Global/Code/ClassCellCode.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCellCode.cs similarity index 100% rename from TouchSocket/Rpc/Global/Code/ClassCellCode.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCellCode.cs diff --git a/TouchSocket/Rpc/Global/Code/ClassCellCode.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCellCode.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Code/ClassCellCode.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCellCode.cs.meta diff --git a/TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs similarity index 100% rename from TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs diff --git a/TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs.meta diff --git a/TouchSocket/Rpc/Global/Code/CodeGenerator.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/CodeGenerator.cs similarity index 100% rename from TouchSocket/Rpc/Global/Code/CodeGenerator.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/CodeGenerator.cs diff --git a/TouchSocket/Rpc/Global/Code/CodeGenerator.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/CodeGenerator.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Code/CodeGenerator.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/CodeGenerator.cs.meta diff --git a/TouchSocket/Rpc/Global/Code/MethodCellCode.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/MethodCellCode.cs similarity index 100% rename from TouchSocket/Rpc/Global/Code/MethodCellCode.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/MethodCellCode.cs diff --git a/TouchSocket/Rpc/Global/Code/MethodCellCode.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/MethodCellCode.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Code/MethodCellCode.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/MethodCellCode.cs.meta diff --git a/TouchSocket/Rpc/Global/Code/ServerCellCode.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ServerCellCode.cs similarity index 100% rename from TouchSocket/Rpc/Global/Code/ServerCellCode.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ServerCellCode.cs diff --git a/TouchSocket/Rpc/Global/Code/ServerCellCode.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ServerCellCode.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Code/ServerCellCode.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ServerCellCode.cs.meta diff --git a/TouchSocket/Rpc/Global/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common.meta similarity index 100% rename from TouchSocket/Rpc/Global/Common.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common.meta diff --git a/TouchSocket/Rpc/Global/Common/ActionMap.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/ActionMap.cs similarity index 100% rename from TouchSocket/Rpc/Global/Common/ActionMap.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/ActionMap.cs diff --git a/TouchSocket/Rpc/Global/Common/ActionMap.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/ActionMap.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Common/ActionMap.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/ActionMap.cs.meta diff --git a/TouchSocket/Rpc/Global/Common/FeedbackType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/FeedbackType.cs similarity index 100% rename from TouchSocket/Rpc/Global/Common/FeedbackType.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/FeedbackType.cs diff --git a/TouchSocket/Rpc/Global/Common/FeedbackType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/FeedbackType.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Common/FeedbackType.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/FeedbackType.cs.meta diff --git a/TouchSocket/Rpc/Global/Common/InvokeResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/InvokeResult.cs similarity index 100% rename from TouchSocket/Rpc/Global/Common/InvokeResult.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/InvokeResult.cs diff --git a/TouchSocket/Rpc/Global/Common/InvokeResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/InvokeResult.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Common/InvokeResult.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/InvokeResult.cs.meta diff --git a/TouchSocket/Rpc/Global/Common/MethodInstance.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/MethodInstance.cs similarity index 100% rename from TouchSocket/Rpc/Global/Common/MethodInstance.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/MethodInstance.cs diff --git a/TouchSocket/Rpc/Global/Common/MethodInstance.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/MethodInstance.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Common/MethodInstance.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/MethodInstance.cs.meta diff --git a/TouchSocket/Rpc/Global/Common/RpcServer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServer.cs similarity index 100% rename from TouchSocket/Rpc/Global/Common/RpcServer.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServer.cs diff --git a/TouchSocket/Rpc/Global/Common/RpcServer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServer.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Common/RpcServer.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServer.cs.meta diff --git a/TouchSocket/Rpc/Global/Common/RpcServerFactory.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServerFactory.cs similarity index 100% rename from TouchSocket/Rpc/Global/Common/RpcServerFactory.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServerFactory.cs diff --git a/TouchSocket/Rpc/Global/Common/RpcServerFactory.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServerFactory.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Common/RpcServerFactory.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServerFactory.cs.meta diff --git a/TouchSocket/Rpc/Global/Common/RpcStore.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcStore.cs similarity index 100% rename from TouchSocket/Rpc/Global/Common/RpcStore.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcStore.cs diff --git a/TouchSocket/Rpc/Global/Common/RpcStore.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcStore.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Common/RpcStore.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcStore.cs.meta diff --git a/TouchSocket/Rpc/Global/Common/TransientRpcServer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/TransientRpcServer.cs similarity index 100% rename from TouchSocket/Rpc/Global/Common/TransientRpcServer.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/TransientRpcServer.cs diff --git a/TouchSocket/Rpc/Global/Common/TransientRpcServer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/TransientRpcServer.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Common/TransientRpcServer.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/TransientRpcServer.cs.meta diff --git a/TouchSocket/Rpc/Global/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum.meta similarity index 100% rename from TouchSocket/Rpc/Global/Enum.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum.meta diff --git a/TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs similarity index 100% rename from TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs diff --git a/TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs.meta diff --git a/TouchSocket/Rpc/Global/Enum/InvokeStatus.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/InvokeStatus.cs similarity index 100% rename from TouchSocket/Rpc/Global/Enum/InvokeStatus.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/InvokeStatus.cs diff --git a/TouchSocket/Rpc/Global/Enum/InvokeStatus.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/InvokeStatus.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Enum/InvokeStatus.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/InvokeStatus.cs.meta diff --git a/TouchSocket/Rpc/Global/Enum/MethodFlags.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/MethodFlags.cs similarity index 100% rename from TouchSocket/Rpc/Global/Enum/MethodFlags.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/MethodFlags.cs diff --git a/TouchSocket/Rpc/Global/Enum/MethodFlags.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/MethodFlags.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Enum/MethodFlags.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/MethodFlags.cs.meta diff --git a/TouchSocket/Rpc/Global/Exceptions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Exceptions.meta similarity index 100% rename from TouchSocket/Rpc/Global/Exceptions.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Exceptions.meta diff --git a/TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs similarity index 100% rename from TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs diff --git a/TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs.meta diff --git a/TouchSocket/Rpc/Global/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions.meta similarity index 100% rename from TouchSocket/Rpc/Global/Extensions.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions.meta diff --git a/TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs similarity index 100% rename from TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs diff --git a/TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs.meta diff --git a/TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs similarity index 100% rename from TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs diff --git a/TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs.meta diff --git a/TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs similarity index 100% rename from TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs diff --git a/TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs.meta diff --git a/TouchSocket/Rpc/Global/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface.meta similarity index 100% rename from TouchSocket/Rpc/Global/Interface.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface.meta diff --git a/TouchSocket/Rpc/Global/Interface/ICallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ICallContext.cs similarity index 100% rename from TouchSocket/Rpc/Global/Interface/ICallContext.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ICallContext.cs diff --git a/TouchSocket/Rpc/Global/Interface/ICallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ICallContext.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Interface/ICallContext.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ICallContext.cs.meta diff --git a/TouchSocket/Rpc/Global/Interface/IInvokeOption.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IInvokeOption.cs similarity index 100% rename from TouchSocket/Rpc/Global/Interface/IInvokeOption.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IInvokeOption.cs diff --git a/TouchSocket/Rpc/Global/Interface/IInvokeOption.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IInvokeOption.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Interface/IInvokeOption.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IInvokeOption.cs.meta diff --git a/TouchSocket/Rpc/Global/Interface/IRemoteServer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRemoteServer.cs similarity index 100% rename from TouchSocket/Rpc/Global/Interface/IRemoteServer.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRemoteServer.cs diff --git a/TouchSocket/Rpc/Global/Interface/IRemoteServer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRemoteServer.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Interface/IRemoteServer.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRemoteServer.cs.meta diff --git a/TouchSocket/Rpc/Global/Interface/IRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcClient.cs similarity index 100% rename from TouchSocket/Rpc/Global/Interface/IRpcClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcClient.cs diff --git a/TouchSocket/Rpc/Global/Interface/IRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Interface/IRpcClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcClient.cs.meta diff --git a/TouchSocket/Rpc/Global/Interface/IRpcParser.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcParser.cs similarity index 100% rename from TouchSocket/Rpc/Global/Interface/IRpcParser.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcParser.cs diff --git a/TouchSocket/Rpc/Global/Interface/IRpcParser.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcParser.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Interface/IRpcParser.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcParser.cs.meta diff --git a/TouchSocket/Rpc/Global/Interface/IRpcServer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServer.cs similarity index 100% rename from TouchSocket/Rpc/Global/Interface/IRpcServer.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServer.cs diff --git a/TouchSocket/Rpc/Global/Interface/IRpcServer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServer.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Interface/IRpcServer.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServer.cs.meta diff --git a/TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs similarity index 100% rename from TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs diff --git a/TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs.meta diff --git a/TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs similarity index 100% rename from TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs diff --git a/TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs.meta similarity index 100% rename from TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs.meta diff --git a/TouchSocket/Rpc/JsonRpc.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc.meta diff --git a/TouchSocket/Rpc/JsonRpc/Attribute.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Attribute.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Attribute.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Attribute.meta diff --git a/TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs diff --git a/TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs.meta diff --git a/TouchSocket/Rpc/JsonRpc/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Common.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common.meta diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs.meta diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs.meta diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs.meta diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs.meta diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs.meta diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs.meta diff --git a/TouchSocket/Rpc/JsonRpc/Components.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Components.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Components.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Components.meta diff --git a/TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs diff --git a/TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs.meta diff --git a/TouchSocket/Rpc/JsonRpc/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Config.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Config.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Config.meta diff --git a/TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs diff --git a/TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs.meta diff --git a/TouchSocket/Rpc/JsonRpc/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Enum.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Enum.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Enum.meta diff --git a/TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs diff --git a/TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs.meta diff --git a/TouchSocket/Rpc/JsonRpc/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Extensions.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Extensions.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Extensions.meta diff --git a/TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs diff --git a/TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs.meta diff --git a/TouchSocket/Rpc/JsonRpc/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Interface.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface.meta diff --git a/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs diff --git a/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs.meta diff --git a/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs diff --git a/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs.meta diff --git a/TouchSocket/Rpc/JsonRpc/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Plugins.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Plugins.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Plugins.meta diff --git a/TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs diff --git a/TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs.meta similarity index 100% rename from TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc.meta diff --git a/TouchSocket/Rpc/TouchRpc/Attribute.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Attribute.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Attribute.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Attribute.meta diff --git a/TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs diff --git a/TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Channel.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Channel.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel.meta diff --git a/TouchSocket/Rpc/TouchRpc/Channel/Channel.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/Channel.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Channel/Channel.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/Channel.cs diff --git a/TouchSocket/Rpc/TouchRpc/Channel/Channel.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/Channel.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Channel/Channel.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/Channel.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs diff --git a/TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs diff --git a/TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs diff --git a/TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common.meta diff --git a/TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs diff --git a/TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/Interface.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface.meta diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs diff --git a/TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs diff --git a/TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs diff --git a/TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs diff --git a/TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Http.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Http/Interface.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Tcp.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Udp.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Udp.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Udp/Interface.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Websocket.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Config.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Config.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Config.meta diff --git a/TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs diff --git a/TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Enum.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum.meta diff --git a/TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs diff --git a/TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs diff --git a/TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs diff --git a/TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs.meta diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Exceptions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Exceptions.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions.meta diff --git a/TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs diff --git a/TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs diff --git a/TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs diff --git a/TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Extensions.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions.meta diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/File.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File.meta diff --git a/TouchSocket/Rpc/TouchRpc/File/FileOperator.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileOperator.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/FileOperator.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileOperator.cs diff --git a/TouchSocket/Rpc/TouchRpc/File/FileOperator.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileOperator.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/FileOperator.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileOperator.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs diff --git a/TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs diff --git a/TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs diff --git a/TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs diff --git a/TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs diff --git a/TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs diff --git a/TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs diff --git a/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs diff --git a/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/MessageQueue.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue.meta diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Plugins.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins.meta diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Redis.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Redis.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis.meta diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Rpc.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc.meta diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/Serialization.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc/Serialization.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization.meta diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor.meta diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface.meta diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Udp.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Udp.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Udp.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Udp.meta diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Stream.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Stream.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream.meta diff --git a/TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs diff --git a/TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs diff --git a/TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs.meta diff --git a/TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs diff --git a/TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs.meta similarity index 100% rename from TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs.meta diff --git a/TouchSocket/Rpc/WebApi.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi.meta similarity index 100% rename from TouchSocket/Rpc/WebApi.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi.meta diff --git a/TouchSocket/Rpc/WebApi/Attribute.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Attribute.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute.meta diff --git a/TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs similarity index 100% rename from TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs diff --git a/TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs.meta diff --git a/TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs similarity index 100% rename from TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs diff --git a/TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs.meta diff --git a/TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs similarity index 100% rename from TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs diff --git a/TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs.meta diff --git a/TouchSocket/Rpc/WebApi/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Common.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common.meta diff --git a/TouchSocket/Rpc/WebApi/Common/ActionResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/ActionResult.cs similarity index 100% rename from TouchSocket/Rpc/WebApi/Common/ActionResult.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/ActionResult.cs diff --git a/TouchSocket/Rpc/WebApi/Common/ActionResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/ActionResult.cs.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Common/ActionResult.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/ActionResult.cs.meta diff --git a/TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs similarity index 100% rename from TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs diff --git a/TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs.meta diff --git a/TouchSocket/Rpc/WebApi/Components.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Components.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Components.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Components.meta diff --git a/TouchSocket/Rpc/WebApi/Components/WebApiClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Components/WebApiClient.cs similarity index 100% rename from TouchSocket/Rpc/WebApi/Components/WebApiClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Components/WebApiClient.cs diff --git a/TouchSocket/Rpc/WebApi/Components/WebApiClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Components/WebApiClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Components/WebApiClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Components/WebApiClient.cs.meta diff --git a/TouchSocket/Rpc/WebApi/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Config.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Config.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Config.meta diff --git a/TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs similarity index 100% rename from TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs diff --git a/TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs.meta diff --git a/TouchSocket/Rpc/WebApi/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Enum.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Enum.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Enum.meta diff --git a/TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs similarity index 100% rename from TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs diff --git a/TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs.meta diff --git a/TouchSocket/Rpc/WebApi/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Extensions.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Extensions.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Extensions.meta diff --git a/TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs similarity index 100% rename from TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs diff --git a/TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs.meta diff --git a/TouchSocket/Rpc/WebApi/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Interface.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface.meta diff --git a/TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs similarity index 100% rename from TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs diff --git a/TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs.meta diff --git a/TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs similarity index 100% rename from TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs diff --git a/TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs.meta diff --git a/TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs similarity index 100% rename from TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs diff --git a/TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs.meta diff --git a/TouchSocket/Rpc/WebApi/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Plugins.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Plugins.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Plugins.meta diff --git a/TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs similarity index 100% rename from TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs diff --git a/TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs.meta similarity index 100% rename from TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs.meta diff --git a/TouchSocket/Rpc/XmlRpc.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc.meta diff --git a/TouchSocket/Rpc/XmlRpc/Attribute.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Attribute.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Attribute.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Attribute.meta diff --git a/TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs diff --git a/TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs.meta diff --git a/TouchSocket/Rpc/XmlRpc/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Common.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common.meta diff --git a/TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs diff --git a/TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs.meta diff --git a/TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs diff --git a/TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs.meta diff --git a/TouchSocket/Rpc/XmlRpc/Components.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Components.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Components.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Components.meta diff --git a/TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs diff --git a/TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs.meta diff --git a/TouchSocket/Rpc/XmlRpc/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Config.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Config.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Config.meta diff --git a/TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs diff --git a/TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs.meta diff --git a/TouchSocket/Rpc/XmlRpc/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Extensions.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Extensions.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Extensions.meta diff --git a/TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs diff --git a/TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs.meta diff --git a/TouchSocket/Rpc/XmlRpc/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Interface.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface.meta diff --git a/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs diff --git a/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs.meta diff --git a/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs diff --git a/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs.meta diff --git a/TouchSocket/Rpc/XmlRpc/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Plugins.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Plugins.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Plugins.meta diff --git a/TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs diff --git a/TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs.meta similarity index 100% rename from TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs.meta diff --git a/TouchSocket/Sockets.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets.meta similarity index 100% rename from TouchSocket/Sockets.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets.meta diff --git a/TouchSocket/Sockets/BaseSocket.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/BaseSocket.cs similarity index 100% rename from TouchSocket/Sockets/BaseSocket.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/BaseSocket.cs diff --git a/TouchSocket/Sockets/BaseSocket.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/BaseSocket.cs.meta similarity index 100% rename from TouchSocket/Sockets/BaseSocket.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/BaseSocket.cs.meta diff --git a/TouchSocket/Sockets/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common.meta similarity index 100% rename from TouchSocket/Sockets/Common.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common.meta diff --git a/TouchSocket/Sockets/Common/DelaySender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/DelaySender.cs similarity index 100% rename from TouchSocket/Sockets/Common/DelaySender.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/DelaySender.cs diff --git a/TouchSocket/Sockets/Common/DelaySender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/DelaySender.cs.meta similarity index 100% rename from TouchSocket/Sockets/Common/DelaySender.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/DelaySender.cs.meta diff --git a/TouchSocket/Sockets/Common/IPHost.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/IPHost.cs similarity index 100% rename from TouchSocket/Sockets/Common/IPHost.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/IPHost.cs diff --git a/TouchSocket/Sockets/Common/IPHost.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/IPHost.cs.meta similarity index 100% rename from TouchSocket/Sockets/Common/IPHost.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/IPHost.cs.meta diff --git a/TouchSocket/Sockets/Common/KeepAliveValue.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/KeepAliveValue.cs similarity index 100% rename from TouchSocket/Sockets/Common/KeepAliveValue.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/KeepAliveValue.cs diff --git a/TouchSocket/Sockets/Common/KeepAliveValue.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/KeepAliveValue.cs.meta similarity index 100% rename from TouchSocket/Sockets/Common/KeepAliveValue.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/KeepAliveValue.cs.meta diff --git a/TouchSocket/Sockets/Common/NetworkMonitor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/NetworkMonitor.cs similarity index 100% rename from TouchSocket/Sockets/Common/NetworkMonitor.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/NetworkMonitor.cs diff --git a/TouchSocket/Sockets/Common/NetworkMonitor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/NetworkMonitor.cs.meta similarity index 100% rename from TouchSocket/Sockets/Common/NetworkMonitor.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/NetworkMonitor.cs.meta diff --git a/TouchSocket/Sockets/Common/Options.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options.meta similarity index 100% rename from TouchSocket/Sockets/Common/Options.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options.meta diff --git a/TouchSocket/Sockets/Common/Options/ClientSslOption.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ClientSslOption.cs similarity index 100% rename from TouchSocket/Sockets/Common/Options/ClientSslOption.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ClientSslOption.cs diff --git a/TouchSocket/Sockets/Common/Options/ClientSslOption.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ClientSslOption.cs.meta similarity index 100% rename from TouchSocket/Sockets/Common/Options/ClientSslOption.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ClientSslOption.cs.meta diff --git a/TouchSocket/Sockets/Common/Options/DelaySenderOption.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/DelaySenderOption.cs similarity index 100% rename from TouchSocket/Sockets/Common/Options/DelaySenderOption.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/DelaySenderOption.cs diff --git a/TouchSocket/Sockets/Common/Options/DelaySenderOption.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/DelaySenderOption.cs.meta similarity index 100% rename from TouchSocket/Sockets/Common/Options/DelaySenderOption.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/DelaySenderOption.cs.meta diff --git a/TouchSocket/Sockets/Common/Options/ServiceSslOption.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ServiceSslOption.cs similarity index 100% rename from TouchSocket/Sockets/Common/Options/ServiceSslOption.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ServiceSslOption.cs diff --git a/TouchSocket/Sockets/Common/Options/ServiceSslOption.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ServiceSslOption.cs.meta similarity index 100% rename from TouchSocket/Sockets/Common/Options/ServiceSslOption.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ServiceSslOption.cs.meta diff --git a/TouchSocket/Sockets/Common/Options/SslOption.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/SslOption.cs similarity index 100% rename from TouchSocket/Sockets/Common/Options/SslOption.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/SslOption.cs diff --git a/TouchSocket/Sockets/Common/Options/SslOption.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/SslOption.cs.meta similarity index 100% rename from TouchSocket/Sockets/Common/Options/SslOption.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/SslOption.cs.meta diff --git a/TouchSocket/Sockets/Common/Protocol.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Protocol.cs similarity index 100% rename from TouchSocket/Sockets/Common/Protocol.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Protocol.cs diff --git a/TouchSocket/Sockets/Common/Protocol.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Protocol.cs.meta similarity index 100% rename from TouchSocket/Sockets/Common/Protocol.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Protocol.cs.meta diff --git a/TouchSocket/Sockets/Common/SocketCliectCollection.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/SocketCliectCollection.cs similarity index 100% rename from TouchSocket/Sockets/Common/SocketCliectCollection.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/SocketCliectCollection.cs diff --git a/TouchSocket/Sockets/Common/SocketCliectCollection.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/SocketCliectCollection.cs.meta similarity index 100% rename from TouchSocket/Sockets/Common/SocketCliectCollection.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/SocketCliectCollection.cs.meta diff --git a/TouchSocket/Sockets/Common/TouchSocketUtility.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/TouchSocketUtility.cs similarity index 100% rename from TouchSocket/Sockets/Common/TouchSocketUtility.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/TouchSocketUtility.cs diff --git a/TouchSocket/Sockets/Common/TouchSocketUtility.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/TouchSocketUtility.cs.meta similarity index 100% rename from TouchSocket/Sockets/Common/TouchSocketUtility.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/TouchSocketUtility.cs.meta diff --git a/TouchSocket/Sockets/Components.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components.meta similarity index 100% rename from TouchSocket/Sockets/Components.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components.meta diff --git a/TouchSocket/Sockets/Components/Factory.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory.meta similarity index 100% rename from TouchSocket/Sockets/Components/Factory.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory.meta diff --git a/TouchSocket/Sockets/Components/Factory/ClientFactory.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/ClientFactory.cs similarity index 100% rename from TouchSocket/Sockets/Components/Factory/ClientFactory.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/ClientFactory.cs diff --git a/TouchSocket/Sockets/Components/Factory/ClientFactory.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/ClientFactory.cs.meta similarity index 100% rename from TouchSocket/Sockets/Components/Factory/ClientFactory.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/ClientFactory.cs.meta diff --git a/TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs similarity index 100% rename from TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs diff --git a/TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs.meta similarity index 100% rename from TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs.meta diff --git a/TouchSocket/Sockets/Components/NAT.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT.meta similarity index 100% rename from TouchSocket/Sockets/Components/NAT.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT.meta diff --git a/TouchSocket/Sockets/Components/NAT/NATService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATService.cs similarity index 100% rename from TouchSocket/Sockets/Components/NAT/NATService.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATService.cs diff --git a/TouchSocket/Sockets/Components/NAT/NATService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATService.cs.meta similarity index 100% rename from TouchSocket/Sockets/Components/NAT/NATService.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATService.cs.meta diff --git a/TouchSocket/Sockets/Components/NAT/NATSocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATSocketClient.cs similarity index 100% rename from TouchSocket/Sockets/Components/NAT/NATSocketClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATSocketClient.cs diff --git a/TouchSocket/Sockets/Components/NAT/NATSocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATSocketClient.cs.meta similarity index 100% rename from TouchSocket/Sockets/Components/NAT/NATSocketClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATSocketClient.cs.meta diff --git a/TouchSocket/Sockets/Components/TCP.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP.meta similarity index 100% rename from TouchSocket/Sockets/Components/TCP.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP.meta diff --git a/TouchSocket/Sockets/Components/TCP/SocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/SocketClient.cs similarity index 100% rename from TouchSocket/Sockets/Components/TCP/SocketClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/SocketClient.cs diff --git a/TouchSocket/Sockets/Components/TCP/SocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/SocketClient.cs.meta similarity index 100% rename from TouchSocket/Sockets/Components/TCP/SocketClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/SocketClient.cs.meta diff --git a/TouchSocket/Sockets/Components/TCP/TcpClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpClient.cs similarity index 100% rename from TouchSocket/Sockets/Components/TCP/TcpClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpClient.cs diff --git a/TouchSocket/Sockets/Components/TCP/TcpClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpClient.cs.meta similarity index 100% rename from TouchSocket/Sockets/Components/TCP/TcpClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpClient.cs.meta diff --git a/TouchSocket/Sockets/Components/TCP/TcpService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpService.cs similarity index 100% rename from TouchSocket/Sockets/Components/TCP/TcpService.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpService.cs diff --git a/TouchSocket/Sockets/Components/TCP/TcpService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpService.cs.meta similarity index 100% rename from TouchSocket/Sockets/Components/TCP/TcpService.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpService.cs.meta diff --git a/TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs similarity index 100% rename from TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs diff --git a/TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs.meta similarity index 100% rename from TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs.meta diff --git a/TouchSocket/Sockets/Components/UDP.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/UDP.meta similarity index 100% rename from TouchSocket/Sockets/Components/UDP.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/UDP.meta diff --git a/TouchSocket/Sockets/Components/UDP/UdpSession.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/UDP/UdpSession.cs similarity index 100% rename from TouchSocket/Sockets/Components/UDP/UdpSession.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/UDP/UdpSession.cs diff --git a/TouchSocket/Sockets/Components/UDP/UdpSession.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/UDP/UdpSession.cs.meta similarity index 100% rename from TouchSocket/Sockets/Components/UDP/UdpSession.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/UDP/UdpSession.cs.meta diff --git a/TouchSocket/Sockets/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Config.meta similarity index 100% rename from TouchSocket/Sockets/Config.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Config.meta diff --git a/TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs similarity index 100% rename from TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs diff --git a/TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs.meta similarity index 100% rename from TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter.meta diff --git a/TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/Custom.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Custom.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom.meta diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/Package.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Package.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package.meta diff --git a/TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/Test.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Test.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Test.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Test.meta diff --git a/TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs diff --git a/TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/Udp.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Udp.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp.meta diff --git a/TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs.meta diff --git a/TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs diff --git a/TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs.meta similarity index 100% rename from TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs.meta diff --git a/TouchSocket/Sockets/DelegateCollection.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DelegateCollection.cs similarity index 100% rename from TouchSocket/Sockets/DelegateCollection.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DelegateCollection.cs diff --git a/TouchSocket/Sockets/DelegateCollection.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DelegateCollection.cs.meta similarity index 100% rename from TouchSocket/Sockets/DelegateCollection.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DelegateCollection.cs.meta diff --git a/TouchSocket/Sockets/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum.meta similarity index 100% rename from TouchSocket/Sockets/Enum.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum.meta diff --git a/TouchSocket/Sockets/Enum/CheckClearType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/CheckClearType.cs similarity index 100% rename from TouchSocket/Sockets/Enum/CheckClearType.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/CheckClearType.cs diff --git a/TouchSocket/Sockets/Enum/CheckClearType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/CheckClearType.cs.meta similarity index 100% rename from TouchSocket/Sockets/Enum/CheckClearType.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/CheckClearType.cs.meta diff --git a/TouchSocket/Sockets/Enum/FilterResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FilterResult.cs similarity index 100% rename from TouchSocket/Sockets/Enum/FilterResult.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FilterResult.cs diff --git a/TouchSocket/Sockets/Enum/FilterResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FilterResult.cs.meta similarity index 100% rename from TouchSocket/Sockets/Enum/FilterResult.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FilterResult.cs.meta diff --git a/TouchSocket/Sockets/Enum/FixedHeaderType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FixedHeaderType.cs similarity index 100% rename from TouchSocket/Sockets/Enum/FixedHeaderType.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FixedHeaderType.cs diff --git a/TouchSocket/Sockets/Enum/FixedHeaderType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FixedHeaderType.cs.meta similarity index 100% rename from TouchSocket/Sockets/Enum/FixedHeaderType.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FixedHeaderType.cs.meta diff --git a/TouchSocket/Sockets/Enum/ReceiveType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ReceiveType.cs similarity index 100% rename from TouchSocket/Sockets/Enum/ReceiveType.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ReceiveType.cs diff --git a/TouchSocket/Sockets/Enum/ReceiveType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ReceiveType.cs.meta similarity index 100% rename from TouchSocket/Sockets/Enum/ReceiveType.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ReceiveType.cs.meta diff --git a/TouchSocket/Sockets/Enum/ServerState.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ServerState.cs similarity index 100% rename from TouchSocket/Sockets/Enum/ServerState.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ServerState.cs diff --git a/TouchSocket/Sockets/Enum/ServerState.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ServerState.cs.meta similarity index 100% rename from TouchSocket/Sockets/Enum/ServerState.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ServerState.cs.meta diff --git a/TouchSocket/Sockets/EventArgs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs.meta similarity index 100% rename from TouchSocket/Sockets/EventArgs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs.meta diff --git a/TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs similarity index 100% rename from TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs diff --git a/TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs.meta similarity index 100% rename from TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs.meta diff --git a/TouchSocket/Sockets/EventArgs/BytesEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/BytesEventArgs.cs similarity index 100% rename from TouchSocket/Sockets/EventArgs/BytesEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/BytesEventArgs.cs diff --git a/TouchSocket/Sockets/EventArgs/BytesEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/BytesEventArgs.cs.meta similarity index 100% rename from TouchSocket/Sockets/EventArgs/BytesEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/BytesEventArgs.cs.meta diff --git a/TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs similarity index 100% rename from TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs diff --git a/TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs.meta similarity index 100% rename from TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs.meta diff --git a/TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs similarity index 100% rename from TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs diff --git a/TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs.meta similarity index 100% rename from TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs.meta diff --git a/TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs similarity index 100% rename from TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs diff --git a/TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs.meta similarity index 100% rename from TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs.meta diff --git a/TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs similarity index 100% rename from TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs diff --git a/TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs.meta similarity index 100% rename from TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs.meta diff --git a/TouchSocket/Sockets/EventArgs/MsgEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/MsgEventArgs.cs similarity index 100% rename from TouchSocket/Sockets/EventArgs/MsgEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/MsgEventArgs.cs diff --git a/TouchSocket/Sockets/EventArgs/MsgEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/MsgEventArgs.cs.meta similarity index 100% rename from TouchSocket/Sockets/EventArgs/MsgEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/MsgEventArgs.cs.meta diff --git a/TouchSocket/Sockets/EventArgs/OperationEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/OperationEventArgs.cs similarity index 100% rename from TouchSocket/Sockets/EventArgs/OperationEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/OperationEventArgs.cs diff --git a/TouchSocket/Sockets/EventArgs/OperationEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/OperationEventArgs.cs.meta similarity index 100% rename from TouchSocket/Sockets/EventArgs/OperationEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/OperationEventArgs.cs.meta diff --git a/TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs similarity index 100% rename from TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs diff --git a/TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs.meta similarity index 100% rename from TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs.meta diff --git a/TouchSocket/Sockets/EventArgs/SendingEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/SendingEventArgs.cs similarity index 100% rename from TouchSocket/Sockets/EventArgs/SendingEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/SendingEventArgs.cs diff --git a/TouchSocket/Sockets/EventArgs/SendingEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/SendingEventArgs.cs.meta similarity index 100% rename from TouchSocket/Sockets/EventArgs/SendingEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/SendingEventArgs.cs.meta diff --git a/TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs similarity index 100% rename from TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs diff --git a/TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs.meta similarity index 100% rename from TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs.meta diff --git a/TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs similarity index 100% rename from TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs diff --git a/TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs.meta similarity index 100% rename from TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs.meta diff --git a/TouchSocket/Sockets/Exceptions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions.meta similarity index 100% rename from TouchSocket/Sockets/Exceptions.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions.meta diff --git a/TouchSocket/Sockets/Exceptions/ClientNotFindException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/ClientNotFindException.cs similarity index 100% rename from TouchSocket/Sockets/Exceptions/ClientNotFindException.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/ClientNotFindException.cs diff --git a/TouchSocket/Sockets/Exceptions/ClientNotFindException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/ClientNotFindException.cs.meta similarity index 100% rename from TouchSocket/Sockets/Exceptions/ClientNotFindException.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/ClientNotFindException.cs.meta diff --git a/TouchSocket/Sockets/Exceptions/NotConnectedException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/NotConnectedException.cs similarity index 100% rename from TouchSocket/Sockets/Exceptions/NotConnectedException.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/NotConnectedException.cs diff --git a/TouchSocket/Sockets/Exceptions/NotConnectedException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/NotConnectedException.cs.meta similarity index 100% rename from TouchSocket/Sockets/Exceptions/NotConnectedException.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/NotConnectedException.cs.meta diff --git a/TouchSocket/Sockets/Exceptions/OverlengthException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/OverlengthException.cs similarity index 100% rename from TouchSocket/Sockets/Exceptions/OverlengthException.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/OverlengthException.cs diff --git a/TouchSocket/Sockets/Exceptions/OverlengthException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/OverlengthException.cs.meta similarity index 100% rename from TouchSocket/Sockets/Exceptions/OverlengthException.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/OverlengthException.cs.meta diff --git a/TouchSocket/Sockets/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions.meta similarity index 100% rename from TouchSocket/Sockets/Extensions.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions.meta diff --git a/TouchSocket/Sockets/Extensions/ClientExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/ClientExtension.cs similarity index 100% rename from TouchSocket/Sockets/Extensions/ClientExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/ClientExtension.cs diff --git a/TouchSocket/Sockets/Extensions/ClientExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/ClientExtension.cs.meta similarity index 100% rename from TouchSocket/Sockets/Extensions/ClientExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/ClientExtension.cs.meta diff --git a/TouchSocket/Sockets/Extensions/SenderExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SenderExtension.cs similarity index 100% rename from TouchSocket/Sockets/Extensions/SenderExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SenderExtension.cs diff --git a/TouchSocket/Sockets/Extensions/SenderExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SenderExtension.cs.meta similarity index 100% rename from TouchSocket/Sockets/Extensions/SenderExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SenderExtension.cs.meta diff --git a/TouchSocket/Sockets/Extensions/SocketExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketExtension.cs similarity index 100% rename from TouchSocket/Sockets/Extensions/SocketExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketExtension.cs diff --git a/TouchSocket/Sockets/Extensions/SocketExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketExtension.cs.meta similarity index 100% rename from TouchSocket/Sockets/Extensions/SocketExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketExtension.cs.meta diff --git a/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs similarity index 100% rename from TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs diff --git a/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs.meta similarity index 100% rename from TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs.meta diff --git a/TouchSocket/Sockets/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface.meta similarity index 100% rename from TouchSocket/Sockets/Interface.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface.meta diff --git a/TouchSocket/Sockets/Interface/IClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IClient.cs similarity index 100% rename from TouchSocket/Sockets/Interface/IClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IClient.cs diff --git a/TouchSocket/Sockets/Interface/IClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IClient.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/IClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IClient.cs.meta diff --git a/TouchSocket/Sockets/Interface/INATSocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/INATSocketClient.cs similarity index 100% rename from TouchSocket/Sockets/Interface/INATSocketClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/INATSocketClient.cs diff --git a/TouchSocket/Sockets/Interface/INATSocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/INATSocketClient.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/INATSocketClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/INATSocketClient.cs.meta diff --git a/TouchSocket/Sockets/Interface/IRequestInfo.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IRequestInfo.cs similarity index 100% rename from TouchSocket/Sockets/Interface/IRequestInfo.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IRequestInfo.cs diff --git a/TouchSocket/Sockets/Interface/IRequestInfo.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IRequestInfo.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/IRequestInfo.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IRequestInfo.cs.meta diff --git a/TouchSocket/Sockets/Interface/ISender.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ISender.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender.meta diff --git a/TouchSocket/Sockets/Interface/ISender/IClientSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IClientSender.cs similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IClientSender.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IClientSender.cs diff --git a/TouchSocket/Sockets/Interface/ISender/IClientSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IClientSender.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IClientSender.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IClientSender.cs.meta diff --git a/TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs diff --git a/TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs.meta diff --git a/TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs diff --git a/TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs.meta diff --git a/TouchSocket/Sockets/Interface/ISender/IIDSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDSender.cs similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IIDSender.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDSender.cs diff --git a/TouchSocket/Sockets/Interface/ISender/IIDSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDSender.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IIDSender.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDSender.cs.meta diff --git a/TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs diff --git a/TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs.meta diff --git a/TouchSocket/Sockets/Interface/ISender/ISender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISender.cs similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/ISender.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISender.cs diff --git a/TouchSocket/Sockets/Interface/ISender/ISender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISender.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/ISender.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISender.cs.meta diff --git a/TouchSocket/Sockets/Interface/ISender/ISenderBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISenderBase.cs similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/ISenderBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISenderBase.cs diff --git a/TouchSocket/Sockets/Interface/ISender/ISenderBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISenderBase.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/ISenderBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISenderBase.cs.meta diff --git a/TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs diff --git a/TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs.meta diff --git a/TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs diff --git a/TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs.meta diff --git a/TouchSocket/Sockets/Interface/ISender/IWaitSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IWaitSender.cs similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IWaitSender.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IWaitSender.cs diff --git a/TouchSocket/Sockets/Interface/ISender/IWaitSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IWaitSender.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ISender/IWaitSender.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IWaitSender.cs.meta diff --git a/TouchSocket/Sockets/Interface/IService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IService.cs similarity index 100% rename from TouchSocket/Sockets/Interface/IService.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IService.cs diff --git a/TouchSocket/Sockets/Interface/IService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IService.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/IService.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IService.cs.meta diff --git a/TouchSocket/Sockets/Interface/ISocket.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocket.cs similarity index 100% rename from TouchSocket/Sockets/Interface/ISocket.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocket.cs diff --git a/TouchSocket/Sockets/Interface/ISocket.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocket.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ISocket.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocket.cs.meta diff --git a/TouchSocket/Sockets/Interface/ISocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocketClient.cs similarity index 100% rename from TouchSocket/Sockets/Interface/ISocketClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocketClient.cs diff --git a/TouchSocket/Sockets/Interface/ISocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocketClient.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ISocketClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocketClient.cs.meta diff --git a/TouchSocket/Sockets/Interface/ITcpClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClient.cs similarity index 100% rename from TouchSocket/Sockets/Interface/ITcpClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClient.cs diff --git a/TouchSocket/Sockets/Interface/ITcpClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClient.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ITcpClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClient.cs.meta diff --git a/TouchSocket/Sockets/Interface/ITcpClientBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClientBase.cs similarity index 100% rename from TouchSocket/Sockets/Interface/ITcpClientBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClientBase.cs diff --git a/TouchSocket/Sockets/Interface/ITcpClientBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClientBase.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ITcpClientBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClientBase.cs.meta diff --git a/TouchSocket/Sockets/Interface/ITcpService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpService.cs similarity index 100% rename from TouchSocket/Sockets/Interface/ITcpService.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpService.cs diff --git a/TouchSocket/Sockets/Interface/ITcpService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpService.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/ITcpService.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpService.cs.meta diff --git a/TouchSocket/Sockets/Interface/IUdpSession.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IUdpSession.cs similarity index 100% rename from TouchSocket/Sockets/Interface/IUdpSession.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IUdpSession.cs diff --git a/TouchSocket/Sockets/Interface/IUdpSession.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IUdpSession.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/IUdpSession.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IUdpSession.cs.meta diff --git a/TouchSocket/Sockets/Interface/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins.meta similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins.meta diff --git a/TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs diff --git a/TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs.meta diff --git a/TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs diff --git a/TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs.meta diff --git a/TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs diff --git a/TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs.meta diff --git a/TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs diff --git a/TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs.meta diff --git a/TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs diff --git a/TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs.meta diff --git a/TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs diff --git a/TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs.meta diff --git a/TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs diff --git a/TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs.meta diff --git a/TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs diff --git a/TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs.meta similarity index 100% rename from TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs.meta diff --git a/TouchSocket/Sockets/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins.meta similarity index 100% rename from TouchSocket/Sockets/Plugins.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins.meta diff --git a/TouchSocket/Sockets/Plugins/CheckClearPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/CheckClearPlugin.cs similarity index 100% rename from TouchSocket/Sockets/Plugins/CheckClearPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/CheckClearPlugin.cs diff --git a/TouchSocket/Sockets/Plugins/CheckClearPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/CheckClearPlugin.cs.meta similarity index 100% rename from TouchSocket/Sockets/Plugins/CheckClearPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/CheckClearPlugin.cs.meta diff --git a/TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs similarity index 100% rename from TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs diff --git a/TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs.meta similarity index 100% rename from TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs.meta diff --git a/TouchSocket/Sockets/Plugins/ServicePlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ServicePlugin.cs similarity index 100% rename from TouchSocket/Sockets/Plugins/ServicePlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ServicePlugin.cs diff --git a/TouchSocket/Sockets/Plugins/ServicePlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ServicePlugin.cs.meta similarity index 100% rename from TouchSocket/Sockets/Plugins/ServicePlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ServicePlugin.cs.meta diff --git a/TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs similarity index 100% rename from TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs diff --git a/TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs.meta similarity index 100% rename from TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs.meta diff --git a/TouchSocket/Sockets/Plugins/TcpPluginBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpPluginBase.cs similarity index 100% rename from TouchSocket/Sockets/Plugins/TcpPluginBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpPluginBase.cs diff --git a/TouchSocket/Sockets/Plugins/TcpPluginBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpPluginBase.cs.meta similarity index 100% rename from TouchSocket/Sockets/Plugins/TcpPluginBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpPluginBase.cs.meta diff --git a/TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs similarity index 100% rename from TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs diff --git a/TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs.meta similarity index 100% rename from TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs.meta diff --git a/TouchSocket/Sockets/WaitingClient.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient.meta similarity index 100% rename from TouchSocket/Sockets/WaitingClient.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient.meta diff --git a/TouchSocket/Sockets/WaitingClient/IWaitingClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/IWaitingClient.cs similarity index 100% rename from TouchSocket/Sockets/WaitingClient/IWaitingClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/IWaitingClient.cs diff --git a/TouchSocket/Sockets/WaitingClient/IWaitingClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/IWaitingClient.cs.meta similarity index 100% rename from TouchSocket/Sockets/WaitingClient/IWaitingClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/IWaitingClient.cs.meta diff --git a/TouchSocket/Sockets/WaitingClient/ResponsedData.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/ResponsedData.cs similarity index 100% rename from TouchSocket/Sockets/WaitingClient/ResponsedData.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/ResponsedData.cs diff --git a/TouchSocket/Sockets/WaitingClient/ResponsedData.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/ResponsedData.cs.meta similarity index 100% rename from TouchSocket/Sockets/WaitingClient/ResponsedData.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/ResponsedData.cs.meta diff --git a/TouchSocket/Sockets/WaitingClient/WaitingClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClient.cs similarity index 100% rename from TouchSocket/Sockets/WaitingClient/WaitingClient.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClient.cs diff --git a/TouchSocket/Sockets/WaitingClient/WaitingClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClient.cs.meta similarity index 100% rename from TouchSocket/Sockets/WaitingClient/WaitingClient.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClient.cs.meta diff --git a/TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs similarity index 100% rename from TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs diff --git a/TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs.meta similarity index 100% rename from TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs.meta diff --git a/TouchSocket/Sockets/WaitingClient/WaitingOptions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingOptions.cs similarity index 100% rename from TouchSocket/Sockets/WaitingClient/WaitingOptions.cs rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingOptions.cs diff --git a/TouchSocket/Sockets/WaitingClient/WaitingOptions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingOptions.cs.meta similarity index 100% rename from TouchSocket/Sockets/WaitingClient/WaitingOptions.cs.meta rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingOptions.cs.meta diff --git a/Samples~/Hand Driver Demo/package.json b/Samples~/Hand Driver Demo/package.json new file mode 100644 index 0000000..2debf2c --- /dev/null +++ b/Samples~/Hand Driver Demo/package.json @@ -0,0 +1,10 @@ +{ +"name": "com.udexreal.handdriver", +"displayName": "HandDriver", +"description": "HandDriver", +"version": "2.1.8", +"unity": "2022.3", +"license": "MIT", +"dependencies": { + } +} \ No newline at end of file diff --git a/Samples~/Hand Driver Demo/package.json.meta b/Samples~/Hand Driver Demo/package.json.meta new file mode 100644 index 0000000..7009360 --- /dev/null +++ b/Samples~/Hand Driver Demo/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 55fb2bfbd9252144d814a5950abfa968 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: