diff --git a/LocalPackages/com.nimin.lowlevel/Runtime/StructUtility.cs b/LocalPackages/com.nimin.lowlevel/Runtime/LowLevelUtility.cs similarity index 53% rename from LocalPackages/com.nimin.lowlevel/Runtime/StructUtility.cs rename to LocalPackages/com.nimin.lowlevel/Runtime/LowLevelUtility.cs index d35b058..3b73776 100644 --- a/LocalPackages/com.nimin.lowlevel/Runtime/StructUtility.cs +++ b/LocalPackages/com.nimin.lowlevel/Runtime/LowLevelUtility.cs @@ -2,11 +2,21 @@ using Unity.Collections.LowLevel.Unsafe; namespace GameCore.LowLevel { - public static class StructUtility + public static class LowLevelUtility { + public static int HashCombine(int h1, int h2) + { + var hash = h1; + hash = (hash * 397) ^ h2; + return hash; + } + + public static int HashCombine(int h1, int h2, int h3) + { + return HashCombine(HashCombine(h1, h2), h3); + } + public static int OffsetOf() - where T : struct - where F : struct { var fields = typeof(T).GetFields(); foreach (var f in fields) diff --git a/LocalPackages/com.nimin.lowlevel/Runtime/StructUtility.cs.meta b/LocalPackages/com.nimin.lowlevel/Runtime/LowLevelUtility.cs.meta similarity index 100% rename from LocalPackages/com.nimin.lowlevel/Runtime/StructUtility.cs.meta rename to LocalPackages/com.nimin.lowlevel/Runtime/LowLevelUtility.cs.meta diff --git a/LocalPackages/com.nimin.network/Runtime.meta b/LocalPackages/com.nimin.network/Runtime.meta new file mode 100644 index 0000000..d8a5a92 --- /dev/null +++ b/LocalPackages/com.nimin.network/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 601e75d3d590e6d46a9e4dcc626bc18a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/LocalPackages/com.nimin.network/Runtime/NetworkDriverAsset.cs b/LocalPackages/com.nimin.network/Runtime/NetworkDriverAsset.cs new file mode 100644 index 0000000..8d80813 --- /dev/null +++ b/LocalPackages/com.nimin.network/Runtime/NetworkDriverAsset.cs @@ -0,0 +1,21 @@ +using System.Collections; +using System.Collections.Generic; +using Unity.Collections; +using Unity.Networking.Transport; +using Unity.Networking.Transport.Utilities; +using UnityEngine; + +namespace GameCore.Network +{ + public class NewBehaviourScript : ScriptableObject + { + // private NetworkDriver CreateNetworkDriver() + // { + // var settings = new NetworkSettings(Allocator.Temp); + // settings.WithNetworkConfigParameters(disconnectTimeoutMS: 5000); + // settings.WithReliableStageParameters(32); + // + // } + } + +} \ No newline at end of file diff --git a/LocalPackages/com.nimin.network/Runtime/NetworkDriverAsset.cs.meta b/LocalPackages/com.nimin.network/Runtime/NetworkDriverAsset.cs.meta new file mode 100644 index 0000000..d214f1c --- /dev/null +++ b/LocalPackages/com.nimin.network/Runtime/NetworkDriverAsset.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b79190dcfae6a2f4fbdfc9deccf00ef7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/LocalPackages/com.nimin.network/Runtime/nimin.network.asmdef b/LocalPackages/com.nimin.network/Runtime/nimin.network.asmdef new file mode 100644 index 0000000..5190d75 --- /dev/null +++ b/LocalPackages/com.nimin.network/Runtime/nimin.network.asmdef @@ -0,0 +1,32 @@ +{ + "name": "nimin.network", + "rootNamespace": "", + "references": [ + "Unity.Networking.Transport" + ], + "includePlatforms": [ + "Android", + "Editor", + "iOS", + "LinuxStandalone64", + "Lumin", + "macOSStandalone", + "PS4", + "Stadia", + "Switch", + "tvOS", + "WSA", + "WebGL", + "WindowsStandalone32", + "WindowsStandalone64", + "XboxOne" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/LocalPackages/com.nimin.network/Runtime/nimin.network.asmdef.meta b/LocalPackages/com.nimin.network/Runtime/nimin.network.asmdef.meta new file mode 100644 index 0000000..5d0fc0d --- /dev/null +++ b/LocalPackages/com.nimin.network/Runtime/nimin.network.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 91141161d71157d48bf0b89f0037a92c +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/LocalPackages/com.nimin.network/package.json b/LocalPackages/com.nimin.network/package.json new file mode 100644 index 0000000..15a4337 --- /dev/null +++ b/LocalPackages/com.nimin.network/package.json @@ -0,0 +1,14 @@ +{ + "name": "com.nimin.network", + "displayName": "GameCore Network", + "version": "0.1.0", + "unity": "2021.3", + "description": "Network based on Unity Transport", + "dependencies": { + "com.unity.transport": "1.0.0" + }, + "keywords": [ + "Network", + "JobSystem" + ] +} \ No newline at end of file diff --git a/LocalPackages/com.nimin.network/package.json.meta b/LocalPackages/com.nimin.network/package.json.meta new file mode 100644 index 0000000..de070b9 --- /dev/null +++ b/LocalPackages/com.nimin.network/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0d7dbfe60d6acb342bf4cf03c23adb14 +PackageManifestImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/LocalPackages/com.nimin.tinyecs/Runtime/Entity.cs b/LocalPackages/com.nimin.tinyecs/Runtime/Entity.cs index 28b94bc..73fc0d8 100644 --- a/LocalPackages/com.nimin.tinyecs/Runtime/Entity.cs +++ b/LocalPackages/com.nimin.tinyecs/Runtime/Entity.cs @@ -1,4 +1,5 @@ using System; +using GameCore.LowLevel; namespace GameCore.TinyECS { @@ -18,7 +19,7 @@ namespace GameCore.TinyECS public override string ToString() => $"Entity<{type}>({index},{generation})"; public bool Equals(Entity other) => type.Equals(other.type) && index == other.index && generation == other.generation; public override bool Equals(object obj) => obj is Entity other && Equals(other); - public override int GetHashCode() => HashCode.Combine(type, index, generation); + public override int GetHashCode() => LowLevelUtility.HashCombine(type.GetHashCode(), index, generation); public static bool operator ==(Entity lhs, Entity rhs) => lhs.Equals(rhs); public static bool operator !=(Entity lhs, Entity rhs) => !(lhs == rhs); diff --git a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.gen.cs b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.gen.cs index e25eee8..21d7338 100644 --- a/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.gen.cs +++ b/LocalPackages/com.nimin.tinyecs/Runtime/EntityDataBlock.gen.cs @@ -35,8 +35,8 @@ namespace GameCore.TinyECS var id2 = ComponentId.Get(); meta.componentIdToIndex[id1] = 1; meta.componentIdToIndex[id2] = 2; - meta.componentIdToOffset[id1] = (short)StructUtility.OffsetOf<(T1, T2), T1>(); - meta.componentIdToOffset[id2] = (short)StructUtility.OffsetOf<(T1, T2), T2>(); + meta.componentIdToOffset[id1] = (short)LowLevelUtility.OffsetOf<(T1, T2), T1>(); + meta.componentIdToOffset[id2] = (short)LowLevelUtility.OffsetOf<(T1, T2), T2>(); meta.elementSize = UnsafeUtility.SizeOf<(T1, T2)>(); meta.elementAlign = UnsafeUtility.AlignOf<(T2, T2)>(); return meta; diff --git a/Packages/manifest.json b/Packages/manifest.json index 8afc3b6..c80afdb 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -42,6 +42,7 @@ "com.unity.modules.wind": "1.0.0", "com.unity.modules.xr": "1.0.0", "com.nimin.lowlevel": "file:../LocalPackages/com.nimin.lowlevel", - "com.nimin.tinyecs": "file:../LocalPackages/com.nimin.tinyecs" + "com.nimin.tinyecs": "file:../LocalPackages/com.nimin.tinyecs", + "com.nimin.network": "file:../LocalPackages/com.nimin.network" } } diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index aab9fe9..df514c1 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -9,6 +9,14 @@ "com.unity.burst": "1.8.1" } }, + "com.nimin.network": { + "version": "file:../LocalPackages/com.nimin.network", + "depth": 0, + "source": "local", + "dependencies": { + "com.unity.transport": "1.0.0" + } + }, "com.nimin.tinyecs": { "version": "file:../LocalPackages/com.nimin.tinyecs", "depth": 0, @@ -18,13 +26,14 @@ } }, "com.unity.burst": { - "version": "1.8.1", + "version": "1.8.21", "depth": 1, "source": "registry", "dependencies": { - "com.unity.mathematics": "1.2.1" + "com.unity.mathematics": "1.2.1", + "com.unity.modules.jsonserialize": "1.0.0" }, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.collab-proxy": { "version": "1.17.1", @@ -33,7 +42,7 @@ "dependencies": { "com.unity.services.core": "1.0.1" }, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.collections": { "version": "1.2.4", @@ -43,120 +52,120 @@ "com.unity.burst": "1.6.6", "com.unity.test-framework": "1.1.31" }, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.editorcoroutines": { "version": "1.0.0", "depth": 1, "source": "registry", "dependencies": {}, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.ext.nunit": { "version": "1.0.6", "depth": 1, "source": "registry", "dependencies": {}, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.feature.development": { "version": "1.0.1", "depth": 0, "source": "builtin", "dependencies": { - "com.unity.ide.visualstudio": "2.0.16", - "com.unity.ide.rider": "3.0.15", + "com.unity.ide.visualstudio": "2.0.22", + "com.unity.ide.rider": "3.0.36", "com.unity.ide.vscode": "1.2.5", "com.unity.editorcoroutines": "1.0.0", - "com.unity.performance.profile-analyzer": "1.1.1", - "com.unity.test-framework": "1.1.31", - "com.unity.testtools.codecoverage": "1.0.1" + "com.unity.performance.profile-analyzer": "1.2.3", + "com.unity.test-framework": "1.1.33", + "com.unity.testtools.codecoverage": "1.2.6" } }, "com.unity.ide.rider": { - "version": "3.0.15", - "depth": 0, + "version": "3.0.36", + "depth": 1, "source": "registry", "dependencies": { "com.unity.ext.nunit": "1.0.6" }, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.ide.visualstudio": { - "version": "2.0.16", - "depth": 0, + "version": "2.0.22", + "depth": 1, "source": "registry", "dependencies": { "com.unity.test-framework": "1.1.9" }, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.ide.vscode": { "version": "1.2.5", "depth": 0, "source": "registry", "dependencies": {}, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.mathematics": { "version": "1.2.6", "depth": 2, "source": "registry", "dependencies": {}, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.nuget.newtonsoft-json": { - "version": "3.0.2", + "version": "3.2.1", "depth": 2, "source": "registry", "dependencies": {}, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.performance.profile-analyzer": { - "version": "1.1.1", + "version": "1.2.3", "depth": 1, "source": "registry", "dependencies": {}, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.services.core": { - "version": "1.4.2", + "version": "1.14.0", "depth": 1, "source": "registry", "dependencies": { - "com.unity.modules.unitywebrequest": "1.0.0", - "com.unity.nuget.newtonsoft-json": "3.0.2", - "com.unity.modules.androidjni": "1.0.0" + "com.unity.modules.androidjni": "1.0.0", + "com.unity.nuget.newtonsoft-json": "3.2.1", + "com.unity.modules.unitywebrequest": "1.0.0" }, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.settings-manager": { - "version": "1.0.3", + "version": "2.1.0", "depth": 2, "source": "registry", "dependencies": {}, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.test-framework": { - "version": "1.1.31", - "depth": 0, + "version": "1.1.33", + "depth": 1, "source": "registry", "dependencies": { "com.unity.ext.nunit": "1.0.6", "com.unity.modules.imgui": "1.0.0", "com.unity.modules.jsonserialize": "1.0.0" }, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.testtools.codecoverage": { - "version": "1.0.1", + "version": "1.2.6", "depth": 1, "source": "registry", "dependencies": { "com.unity.test-framework": "1.0.16", "com.unity.settings-manager": "1.0.1" }, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.textmeshpro": { "version": "3.0.6", @@ -165,19 +174,30 @@ "dependencies": { "com.unity.ugui": "1.0.0" }, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.timeline": { "version": "1.6.4", "depth": 0, "source": "registry", "dependencies": { + "com.unity.modules.audio": "1.0.0", "com.unity.modules.director": "1.0.0", "com.unity.modules.animation": "1.0.0", - "com.unity.modules.audio": "1.0.0", "com.unity.modules.particlesystem": "1.0.0" }, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" + }, + "com.unity.transport": { + "version": "1.5.0", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.6.6", + "com.unity.collections": "1.2.4", + "com.unity.mathematics": "1.2.6" + }, + "url": "https://packages.unity.com" }, "com.unity.ugui": { "version": "1.0.0", @@ -196,7 +216,7 @@ "com.unity.ugui": "1.0.0", "com.unity.modules.jsonserialize": "1.0.0" }, - "url": "https://packages.unity.cn" + "url": "https://packages.unity.com" }, "com.unity.modules.ai": { "version": "1.0.0", @@ -330,17 +350,6 @@ "version": "1.0.0", "depth": 0, "source": "builtin", - "dependencies": { - "com.unity.modules.ui": "1.0.0", - "com.unity.modules.imgui": "1.0.0", - "com.unity.modules.jsonserialize": "1.0.0", - "com.unity.modules.uielementsnative": "1.0.0" - } - }, - "com.unity.modules.uielementsnative": { - "version": "1.0.0", - "depth": 1, - "source": "builtin", "dependencies": { "com.unity.modules.ui": "1.0.0", "com.unity.modules.imgui": "1.0.0", diff --git a/ProjectSettings/PackageManagerSettings.asset b/ProjectSettings/PackageManagerSettings.asset index c038a6f..06e9fc4 100644 --- a/ProjectSettings/PackageManagerSettings.asset +++ b/ProjectSettings/PackageManagerSettings.asset @@ -13,23 +13,24 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_EnablePreReleasePackages: 0 - m_EnablePackageDependencies: 0 m_AdvancedSettingsExpanded: 1 m_ScopedRegistriesSettingsExpanded: 1 m_SeeAllPackageVersions: 0 + m_DismissPreviewPackagesInUse: 0 oneTimeWarningShown: 0 m_Registries: - m_Id: main m_Name: - m_Url: https://packages.unity.cn + m_Url: https://packages.unity.com m_Scopes: [] m_IsDefault: 1 m_Capabilities: 7 + m_ConfigSource: 0 m_UserSelectedRegistryName: m_UserAddingNewScopedRegistry: 0 m_RegistryInfoDraft: m_Modified: 0 m_ErrorMessage: - m_UserModificationsInstanceId: -832 - m_OriginalInstanceId: -834 + m_UserModificationsInstanceId: -854 + m_OriginalInstanceId: -856 m_LoadAssets: 0 diff --git a/ProjectSettings/boot.config b/ProjectSettings/Packages/com.unity.services.core/Settings.json similarity index 100% rename from ProjectSettings/boot.config rename to ProjectSettings/Packages/com.unity.services.core/Settings.json diff --git a/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json b/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json index ad11087..3c7b4c1 100644 --- a/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json +++ b/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json @@ -1,6 +1,4 @@ { - "m_Name": "Settings", - "m_Path": "ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json", "m_Dictionary": { "m_DictionaryValues": [] } diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 979428e..b852362 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2021.3.8f1c1 -m_EditorVersionWithRevision: 2021.3.8f1c1 (c20728c1e961) +m_EditorVersion: 2022.3.62f2 +m_EditorVersionWithRevision: 2022.3.62f2 (7670c08855a9) diff --git a/UnityECS.sln.DotSettings.user b/UnityECS.sln.DotSettings.user new file mode 100644 index 0000000..475ffd2 --- /dev/null +++ b/UnityECS.sln.DotSettings.user @@ -0,0 +1,2 @@ + + ForceIncluded \ No newline at end of file