diff --git a/.editorconfig b/.editorconfig
index a50a818..b2ccab7 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -267,13 +267,6 @@ resharper_switch_statement_handles_some_known_enum_values_with_default_highlight
# BannedApiAnalyzers
dotnet_diagnostic.RS0030.severity = error
-# Suppress C#8.0+ syntax sugar (for under Unity 2020.2 compatibility)
-# See: https://www.jetbrains.com/help/resharper/Reference__Code_Inspections_CSHARP.html
-resharper_convert_to_using_declaration_highlighting = none
-resharper_convert_to_null_coalescing_compound_assignment_highlighting = none
-resharper_merge_into_logical_pattern_highlighting = none
-resharper_use_negated_pattern_in_is_expression_highlighting = none
-
# Test codes for Unity Test Framework
[**/Tests/**/*.cs]
diff --git a/.github/workflows/test-integration.yml b/.github/workflows/test-integration.yml
index 77169fc..cdc6746 100644
--- a/.github/workflows/test-integration.yml
+++ b/.github/workflows/test-integration.yml
@@ -40,10 +40,6 @@ jobs:
fail-fast: false
matrix:
unityVersion: # Available versions see: https://game.ci/docs/docker/versions
- - 2019.4.40f1
- - 2020.3.49f1
- - 2021.3.45f1
- - 2022.3.62f1
- 6000.0.43f1
- 6000.0.44f1 # pin test-framework v1.5.1
- 6000.0.59f2 # pin test-framework v1.6.0
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 5c6f188..30e6224 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -41,10 +41,6 @@ jobs:
fail-fast: false
matrix:
unityVersion: # Available versions see: https://game.ci/docs/docker/versions
- - 2019.4.40f1
- - 2020.3.49f1
- - 2021.3.45f1
- - 2022.3.62f1
- 6000.0.43f1
- 6000.0.44f1 # pin test-framework v1.5.1
- 6000.0.59f2 # pin test-framework v1.6.0
diff --git a/.idea/.idea.UnityTestExamples/.idea/copilot.data.migration.ask2agent.xml b/.idea/.idea.UnityTestExamples/.idea/copilot.data.migration.ask2agent.xml
new file mode 100644
index 0000000..1f2ea11
--- /dev/null
+++ b/.idea/.idea.UnityTestExamples/.idea/copilot.data.migration.ask2agent.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assets/APIExamples/Tests/Editor/APIExamples.Editor.Tests.asmdef b/Assets/APIExamples/Tests/Editor/APIExamples.Editor.Tests.asmdef
index 3e283a5..bfbd6f9 100644
--- a/Assets/APIExamples/Tests/Editor/APIExamples.Editor.Tests.asmdef
+++ b/Assets/APIExamples/Tests/Editor/APIExamples.Editor.Tests.asmdef
@@ -4,10 +4,10 @@
"references": [
"UnityEngine.TestRunner",
"UnityEditor.TestRunner",
- "NUnit.Analyzers_Unity",
- "APIExamples.Tests",
- "UniTask",
- "TestHelper"
+ "APIExamples.Tests",
+ "UniTask",
+ "TestHelper",
+ "NUnit.Analyzers_Unity"
],
"includePlatforms": [
"Editor"
@@ -22,6 +22,17 @@
"defineConstraints": [
"UNITY_INCLUDE_TESTS"
],
- "versionDefines": [],
+ "versionDefines": [
+ {
+ "name": "com.unity.test-framework",
+ "expression": "1.5",
+ "define": "ENABLE_UTF_1_5"
+ },
+ {
+ "name": "com.unity.test-framework",
+ "expression": "1.6",
+ "define": "ENABLE_UTF_1_6"
+ }
+ ],
"noEngineReferences": false
}
\ No newline at end of file
diff --git a/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityOneTimeSetupAttributeExample.cs b/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityOneTimeSetupAttributeExample.cs
new file mode 100644
index 0000000..ada2be4
--- /dev/null
+++ b/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityOneTimeSetupAttributeExample.cs
@@ -0,0 +1,73 @@
+// Copyright (c) 2021-2025 Koji Hasegawa.
+// This software is released under the MIT License.
+
+#if ENABLE_UTF_1_5
+using System.Collections;
+using System.Diagnostics.CodeAnalysis;
+using System.Threading.Tasks;
+using APIExamples.NUnit;
+using NUnit.Framework;
+using UnityEngine.TestTools;
+using Is = APIExamples.NUnit.Is;
+
+namespace APIExamples.Editor.UnityTestFramework
+{
+ ///
+ /// の使用例
+ ///
+ ///
+ /// Required: Unity Test Framework v1.5 or later
+ ///
+ ///
+ ///
+ [TestFixture]
+ [SuppressMessage("ReSharper", "AccessToStaticMemberViaDerivedType")]
+ public class UnityOneTimeSetupAttributeExample
+ {
+ private int _oneTimeSetupCount;
+ private int _setupCount;
+
+ ///
+ /// テストクラス内の最初のテストの実行前に一度だけ実行されます
+ ///
+ [UnityOneTimeSetUp]
+ public IEnumerator OneTimeSetUp()
+ {
+ yield return null;
+ _oneTimeSetupCount++;
+ }
+
+ ///
+ /// 各テストメソッドの前に実行されます
+ ///
+ [SetUp]
+ public void SetUp()
+ {
+ _setupCount++;
+ }
+
+ [Test, Order(0)]
+ public void TestMethod()
+ {
+ Assert.That(_oneTimeSetupCount, Is.EqualTo(1), "OneTimeSetUpはTestFixtureごとに一度だけ実行される");
+ Assert.That(_setupCount, Is.EqualTo(1), "最初のテストなのでSetUpは1回実行されている");
+ }
+
+ [Test, Order(1)]
+ public async Task TestMethodAsync()
+ {
+ await Task.Yield();
+ Assert.That(_oneTimeSetupCount, Is.EqualTo(1), "OneTimeSetUpはTestFixtureごとに一度だけ実行される");
+ Assert.That(_setupCount, Is.EqualTo(2), "2番目のテストなのでSetUpは2回実行されている");
+ }
+
+ [UnityTest, Order(2)]
+ public IEnumerator UnityTestMethod()
+ {
+ yield return null;
+ Assert.That(_oneTimeSetupCount, Is.EqualTo(1), "OneTimeSetUpはTestFixtureごとに一度だけ実行される");
+ Assert.That(_setupCount, Is.EqualTo(3), "3番目のテストなのでSetUpは3回実行されている");
+ }
+ }
+}
+#endif
diff --git a/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityOneTimeSetupAttributeExample.cs.meta b/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityOneTimeSetupAttributeExample.cs.meta
new file mode 100644
index 0000000..7f9627c
--- /dev/null
+++ b/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityOneTimeSetupAttributeExample.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: dc4b105e00624aac8b90c524c27db1c7
+timeCreated: 1762467282
\ No newline at end of file
diff --git a/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityOneTimeTearDownAttributeExample.cs b/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityOneTimeTearDownAttributeExample.cs
new file mode 100644
index 0000000..35eb39f
--- /dev/null
+++ b/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityOneTimeTearDownAttributeExample.cs
@@ -0,0 +1,76 @@
+// Copyright (c) 2021-2025 Koji Hasegawa.
+// This software is released under the MIT License.
+
+#if ENABLE_UTF_1_5
+using System.Collections;
+using System.Diagnostics.CodeAnalysis;
+using System.Threading.Tasks;
+using APIExamples.NUnit;
+using NUnit.Framework;
+using UnityEngine;
+using UnityEngine.TestTools;
+using Is = APIExamples.NUnit.Is;
+
+namespace APIExamples.Editor.UnityTestFramework
+{
+ ///
+ /// の使用例
+ ///
+ ///
+ /// Required: Unity Test Framework v1.5 or later
+ ///
+ ///
+ ///
+ [TestFixture]
+ [SuppressMessage("ReSharper", "AccessToStaticMemberViaDerivedType")]
+ public class UnityOneTimeTearDownAttributeExample
+ {
+ private int _oneTimeTeardownCount;
+ private int _teardownCount;
+
+ ///
+ /// クラス内の最後のテストの実行後に一度だけ実行されます
+ ///
+ [UnityOneTimeTearDown]
+ public IEnumerator OneTimeTearDown()
+ {
+ yield return null;
+ Debug.Log($"UnityOneTimeTearDown");
+ _oneTimeTeardownCount++;
+
+ Assert.That(_oneTimeTeardownCount, Is.EqualTo(1), "OneTimeTearDownはTestFixtureごとに一度だけ実行される");
+ Assert.That(_teardownCount, Is.EqualTo(3), "3つのテストがあるのでTearDownは3回実行されている");
+ }
+
+ ///
+ /// 各テストメソッドの後に実行されます
+ ///
+ [TearDown]
+ public void TearDown()
+ {
+ Debug.Log($"TearDown");
+ _teardownCount++;
+ }
+
+ [Test]
+ public void TestMethod()
+ {
+ Debug.Log($"TestMethod");
+ }
+
+ [Test]
+ public async Task TestMethodAsync()
+ {
+ await Task.Yield();
+ Debug.Log($"TestMethodAsync");
+ }
+
+ [UnityTest]
+ public IEnumerator UnityTestMethod()
+ {
+ yield return null;
+ Debug.Log($"UnityTestMethod");
+ }
+ }
+}
+#endif
diff --git a/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityOneTimeTearDownAttributeExample.cs.meta b/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityOneTimeTearDownAttributeExample.cs.meta
new file mode 100644
index 0000000..46ac3e2
--- /dev/null
+++ b/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityOneTimeTearDownAttributeExample.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: fff43dc8c86648aead6768826c0ee184
+timeCreated: 1762467282
\ No newline at end of file
diff --git a/Assets/APIExamples/Tests/Runtime/APIExamples.Tests.asmdef b/Assets/APIExamples/Tests/Runtime/APIExamples.Tests.asmdef
index eefcc21..3d1d0a4 100644
--- a/Assets/APIExamples/Tests/Runtime/APIExamples.Tests.asmdef
+++ b/Assets/APIExamples/Tests/Runtime/APIExamples.Tests.asmdef
@@ -5,8 +5,9 @@
"UnityEngine.TestRunner",
"UnityEditor.TestRunner",
"APIExamples",
- "UniTask",
- "TestHelper"
+ "UniTask",
+ "TestHelper",
+ "NUnit.Analyzers_Unity"
],
"includePlatforms": [],
"excludePlatforms": [],
@@ -19,6 +20,17 @@
"defineConstraints": [
"UNITY_INCLUDE_TESTS"
],
- "versionDefines": [],
+ "versionDefines": [
+ {
+ "name": "com.unity.test-framework",
+ "expression": "1.5",
+ "define": "ENABLE_UTF_1_5"
+ },
+ {
+ "name": "com.unity.test-framework",
+ "expression": "1.6",
+ "define": "ENABLE_UTF_1_6"
+ }
+ ],
"noEngineReferences": false
}
\ No newline at end of file
diff --git a/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupAttributeExample.cs b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupAttributeExample.cs
index 878526e..dd95afc 100644
--- a/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupAttributeExample.cs
+++ b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupAttributeExample.cs
@@ -7,13 +7,13 @@
namespace APIExamples.UnityTestFramework
{
///
- /// で指定した実装クラスの`Setup()`メソッドが使用されます
+ /// で指定した 実装クラスの Setup メソッドが使用されます
+ ///
+ /// - 複数のテストに PrebuildSetup 属性が配置されていても、Setup の実行は1回だけです
+ /// - を実装していないクラスを渡した場合、何も起きません(エラーにもなりません)
+ /// - PrebuildSetup 属性は、クラスにもメソッドにも配置できます
+ ///
///
- ///
- /// - 複数のテストに属性が付与されていた場合、`Setup()`の実行は1回だけです
- /// - を実装していないクラスを渡した場合、何も起きません(エラーにもなりません)
- /// - 属性は、クラスにもメソッドにも付与できます
- ///
[PrebuildSetup(typeof(PreBuildSetupExample))]
[PostBuildCleanup(typeof(PreBuildSetupExample))]
public class PreBuildSetupAttributeExample
diff --git a/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupExample.cs b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupExample.cs
index 84d2f8c..ec72155 100644
--- a/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupExample.cs
+++ b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupExample.cs
@@ -2,25 +2,34 @@
// This software is released under the MIT License.
using NUnit.Framework;
+using UnityEngine;
using UnityEngine.TestTools;
namespace APIExamples.UnityTestFramework
{
+ ///
+ /// ビルド前後に処理を挿むための および の実装例
+ ///
public class PreBuildSetupExample : IPrebuildSetup, IPostBuildCleanup
{
///
+ ///
+ /// Unityエディター実行(Edit ModeテストおよびPlay Modeテスト)では、すべてのテストの実行に先立って実行されます。
+ /// プレイヤー実行(Play Modeテスト)では、ビルド前に実行されます。
+ ///
public void Setup()
{
- // Edit ModeテストおよびPlay Modeテスト(Unityエディター実行)では、すべてのテストの実行に先立って実行される
- // Play Modeテスト(プレイヤー実行)では、ビルド前に実行される
- // テスト用のビルドにのみResourcesに含めたいアセットをコピーする使用例は `LoadAssetExample` を参照してください
+ Debug.Log("PreBuildSetupExample.Setup");
}
///
+ ///
+ /// Unityエディター実行(Edit ModeテストおよびPlay Modeテスト)では、すべてのテストの実行終了後に実行されます。
+ /// プレイヤー実行(Play Modeテスト)では、ビルド後に実行されます。
+ ///
public void Cleanup()
{
- // Edit ModeテストおよびPlay Modeテスト(Unityエディター実行)では、すべてのテストの実行終了後に実行される
- // Play Modeテスト(プレイヤー実行)では、ビルド後に実行される
+ Debug.Log("PreBuildSetupExample.Cleanup");
}
[Test]
diff --git a/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupWithTestDataAttributeExample.cs b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupWithTestDataAttributeExample.cs
new file mode 100644
index 0000000..3a04121
--- /dev/null
+++ b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupWithTestDataAttributeExample.cs
@@ -0,0 +1,28 @@
+// Copyright (c) 2021-2025 Koji Hasegawa.
+// This software is released under the MIT License.
+
+#if ENABLE_UTF_1_6
+using NUnit.Framework;
+using UnityEngine.TestTools;
+
+namespace APIExamples.UnityTestFramework
+{
+ ///
+ /// で指定した 実装クラスの Setup メソッドが使用されます
+ ///
+ ///
+ /// Required: Unity Test Framework v1.6 or later
+ ///
+ ///
+ [PrebuildSetupWithTestData(typeof(PreBuildSetupWithTestDataExample))]
+ [PostBuildCleanupWithTestData(typeof(PreBuildSetupWithTestDataExample))]
+ public class PreBuildSetupWithTestDataAttributeExample
+ {
+ [Test]
+ public void PrebuildSetupWithTestDataAttributeを付与したテストの例()
+ {
+ Assert.That(true, Is.True);
+ }
+ }
+}
+#endif
diff --git a/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupWithTestDataAttributeExample.cs.meta b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupWithTestDataAttributeExample.cs.meta
new file mode 100644
index 0000000..a2af8a7
--- /dev/null
+++ b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupWithTestDataAttributeExample.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 0119066ebb6b49a5a0f8268a2db3ac5a
+timeCreated: 1762468572
\ No newline at end of file
diff --git a/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupWithTestDataExample.cs b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupWithTestDataExample.cs
new file mode 100644
index 0000000..5f73ee3
--- /dev/null
+++ b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupWithTestDataExample.cs
@@ -0,0 +1,51 @@
+// Copyright (c) 2021-2025 Koji Hasegawa.
+// This software is released under the MIT License.
+
+#if ENABLE_UTF_1_6
+using NUnit.Framework;
+using UnityEngine;
+using UnityEngine.TestTools;
+
+namespace APIExamples.UnityTestFramework
+{
+ ///
+ /// ビルド前後に処理を挿むための および の実装例
+ ///
+ ///
+ /// Required: Unity Test Framework v1.6 or later
+ ///
+ ///
+ public class PreBuildSetupWithTestDataExample : IPrebuildSetupWithTestData, IPostbuildCleanupWithTestData
+ {
+ ///
+ ///
+ /// Unityエディター実行(Edit ModeテストおよびPlay Modeテスト)では、すべてのテストの実行に先立って実行されます。
+ /// プレイヤー実行(Play Modeテスト)では、ビルド前に実行されます。
+ ///
+ /// には、テストモード、テストプラットフォーム、実行されるテストのリストが含まれます
+ ///
+ public void Setup(TestData testData)
+ {
+ Debug.Log($"PreBuildSetupWithTestDataExample.Setup; testData: {testData}");
+ }
+
+ ///
+ ///
+ /// Unityエディター実行(Edit ModeテストおよびPlay Modeテスト)では、すべてのテストの実行終了後に実行されます。
+ /// プレイヤー実行(Play Modeテスト)では、ビルド後に実行されます。
+ ///
+ /// には、テストモード、テストプラットフォーム、実行されるテストのリストが含まれます
+ ///
+ public void Cleanup(TestData testData)
+ {
+ Debug.Log($"PreBuildSetupWithTestDataExample.Cleanup; testData: {testData}");
+ }
+
+ [Test]
+ public void IPrebuildSetupWithTestDataを実装したテストの例()
+ {
+ Assert.That(true, Is.True);
+ }
+ }
+}
+#endif
diff --git a/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupWithTestDataExample.cs.meta b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupWithTestDataExample.cs.meta
new file mode 100644
index 0000000..a1b4026
--- /dev/null
+++ b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/PreBuildSetupWithTestDataExample.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: c99ecd621549428f922e512fc2778c1b
+timeCreated: 1762468080
\ No newline at end of file
diff --git a/Assets/APIExamples/Tests/Runtime/UnityTestFramework/UnityOneTimeSetupAttributeExample.cs b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/UnityOneTimeSetupAttributeExample.cs
new file mode 100644
index 0000000..e2711f3
--- /dev/null
+++ b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/UnityOneTimeSetupAttributeExample.cs
@@ -0,0 +1,75 @@
+// Copyright (c) 2021-2025 Koji Hasegawa.
+// This software is released under the MIT License.
+
+#if ENABLE_UTF_1_5
+using System.Collections;
+using System.Diagnostics.CodeAnalysis;
+using System.Threading.Tasks;
+using APIExamples.NUnit;
+using NUnit.Framework;
+using UnityEngine.TestTools;
+using Is = APIExamples.NUnit.Is;
+
+namespace APIExamples.UnityTestFramework
+{
+ ///
+ /// の使用例
+ ///
+ ///
+ /// Required: Unity Test Framework v1.5 or later
+ ///
+ ///
+ ///
+ ///
+ ///
+ [TestFixture]
+ [SuppressMessage("ReSharper", "AccessToStaticMemberViaDerivedType")]
+ public class UnityOneTimeSetupAttributeExample
+ {
+ private int _oneTimeSetupCount;
+ private int _setupCount;
+
+ ///
+ /// テストクラス内の最初のテストの実行前に一度だけ実行されます
+ ///
+ [UnityOneTimeSetUp]
+ public IEnumerator OneTimeSetUp()
+ {
+ yield return null;
+ _oneTimeSetupCount++;
+ }
+
+ ///
+ /// 各テストメソッドの前に実行されます
+ ///
+ [SetUp]
+ public void SetUp()
+ {
+ _setupCount++;
+ }
+
+ [Test, Order(0)]
+ public void TestMethod()
+ {
+ Assert.That(_oneTimeSetupCount, Is.EqualTo(1), "OneTimeSetUpはTestFixtureごとに一度だけ実行される");
+ Assert.That(_setupCount, Is.EqualTo(1), "最初のテストなのでSetUpは1回実行されている");
+ }
+
+ [Test, Order(1)]
+ public async Task TestMethodAsync()
+ {
+ await Task.Yield();
+ Assert.That(_oneTimeSetupCount, Is.EqualTo(1), "OneTimeSetUpはTestFixtureごとに一度だけ実行される");
+ Assert.That(_setupCount, Is.EqualTo(2), "2番目のテストなのでSetUpは2回実行されている");
+ }
+
+ [UnityTest, Order(2)]
+ public IEnumerator UnityTestMethod()
+ {
+ yield return null;
+ Assert.That(_oneTimeSetupCount, Is.EqualTo(1), "OneTimeSetUpはTestFixtureごとに一度だけ実行される");
+ Assert.That(_setupCount, Is.EqualTo(3), "3番目のテストなのでSetUpは3回実行されている");
+ }
+ }
+}
+#endif
diff --git a/Assets/APIExamples/Tests/Runtime/UnityTestFramework/UnityOneTimeSetupAttributeExample.cs.meta b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/UnityOneTimeSetupAttributeExample.cs.meta
new file mode 100644
index 0000000..6cd45db
--- /dev/null
+++ b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/UnityOneTimeSetupAttributeExample.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 229f96c95185415da79ce61b23f777e0
+timeCreated: 1762466846
\ No newline at end of file
diff --git a/Assets/APIExamples/Tests/Runtime/UnityTestFramework/UnityOneTimeTearDownAttributeExample.cs b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/UnityOneTimeTearDownAttributeExample.cs
new file mode 100644
index 0000000..cdb69ff
--- /dev/null
+++ b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/UnityOneTimeTearDownAttributeExample.cs
@@ -0,0 +1,78 @@
+// Copyright (c) 2021-2025 Koji Hasegawa.
+// This software is released under the MIT License.
+
+#if ENABLE_UTF_1_5
+using System.Collections;
+using System.Diagnostics.CodeAnalysis;
+using System.Threading.Tasks;
+using APIExamples.NUnit;
+using NUnit.Framework;
+using UnityEngine;
+using UnityEngine.TestTools;
+using Is = APIExamples.NUnit.Is;
+
+namespace APIExamples.UnityTestFramework
+{
+ ///
+ /// の使用例
+ ///
+ ///
+ /// Required: Unity Test Framework v1.5 or later
+ ///
+ ///
+ ///
+ ///
+ ///
+ [TestFixture]
+ [SuppressMessage("ReSharper", "AccessToStaticMemberViaDerivedType")]
+ public class UnityOneTimeTearDownAttributeExample
+ {
+ private int _oneTimeTeardownCount;
+ private int _teardownCount;
+
+ ///
+ /// クラス内の最後のテストの実行後に一度だけ実行されます
+ ///
+ [UnityOneTimeTearDown]
+ public IEnumerator OneTimeTearDown()
+ {
+ yield return null;
+ Debug.Log($"UnityOneTimeTearDown");
+ _oneTimeTeardownCount++;
+
+ Assert.That(_oneTimeTeardownCount, Is.EqualTo(1), "OneTimeTearDownはTestFixtureごとに一度だけ実行される");
+ Assert.That(_teardownCount, Is.EqualTo(3), "3つのテストがあるのでTearDownは3回実行されている");
+ }
+
+ ///
+ /// 各テストメソッドの後に実行されます
+ ///
+ [TearDown]
+ public void TearDown()
+ {
+ Debug.Log($"TearDown");
+ _teardownCount++;
+ }
+
+ [Test]
+ public void TestMethod()
+ {
+ Debug.Log($"TestMethod");
+ }
+
+ [Test]
+ public async Task TestMethodAsync()
+ {
+ await Task.Yield();
+ Debug.Log($"TestMethodAsync");
+ }
+
+ [UnityTest]
+ public IEnumerator UnityTestMethod()
+ {
+ yield return null;
+ Debug.Log($"UnityTestMethod");
+ }
+ }
+}
+#endif
diff --git a/Assets/APIExamples/Tests/Runtime/UnityTestFramework/UnityOneTimeTearDownAttributeExample.cs.meta b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/UnityOneTimeTearDownAttributeExample.cs.meta
new file mode 100644
index 0000000..9442aca
--- /dev/null
+++ b/Assets/APIExamples/Tests/Runtime/UnityTestFramework/UnityOneTimeTearDownAttributeExample.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: cfef6d7d5aab42b1a4fa76ec161a29c4
+timeCreated: 1762466846
\ No newline at end of file
diff --git a/Assets/BasicExample/Tests/Editor/BasicExample.Editor.Tests.asmdef b/Assets/BasicExample/Tests/Editor/BasicExample.Editor.Tests.asmdef
index 625f125..fdc26ab 100644
--- a/Assets/BasicExample/Tests/Editor/BasicExample.Editor.Tests.asmdef
+++ b/Assets/BasicExample/Tests/Editor/BasicExample.Editor.Tests.asmdef
@@ -6,7 +6,8 @@
"UnityEditor.TestRunner",
"BasicExample.Editor",
"BasicExample",
- "BasicExample.Tests"
+ "BasicExample.Tests",
+ "NUnit.Analyzers_Unity"
],
"includePlatforms": [
"Editor"
diff --git a/Assets/BasicExample/Tests/Runtime/BasicExample.Tests.asmdef b/Assets/BasicExample/Tests/Runtime/BasicExample.Tests.asmdef
index 8d5a9f0..af9a3ac 100644
--- a/Assets/BasicExample/Tests/Runtime/BasicExample.Tests.asmdef
+++ b/Assets/BasicExample/Tests/Runtime/BasicExample.Tests.asmdef
@@ -4,9 +4,9 @@
"references": [
"UnityEngine.TestRunner",
"UnityEditor.TestRunner",
- "NUnit.Analyzers_Unity",
+ "BasicExample",
"TestHelper",
- "BasicExample"
+ "NUnit.Analyzers_Unity"
],
"includePlatforms": [],
"excludePlatforms": [],
diff --git a/Assets/InputSystemExample/Scripts/Runtime/Input/PlayerInputActions.cs b/Assets/InputSystemExample/Scripts/Runtime/Input/PlayerInputActions.cs
index e1fabae..f1872de 100644
--- a/Assets/InputSystemExample/Scripts/Runtime/Input/PlayerInputActions.cs
+++ b/Assets/InputSystemExample/Scripts/Runtime/Input/PlayerInputActions.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
//
// This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator
-// version 1.7.0
+// version 1.13.1
// from Assets/InputSystemExample/Scripts/Runtime/Input/PlayerInputActions.inputactions
//
// Changes to this file may cause incorrect behavior and will be lost if
@@ -17,9 +17,73 @@
namespace InputSystemExample.Input
{
+ ///
+ /// Provides programmatic access to , , and instances defined in asset "Assets/InputSystemExample/Scripts/Runtime/Input/PlayerInputActions.inputactions".
+ ///
+ ///
+ /// This class is source generated and any manual edits will be discarded if the associated asset is reimported or modified.
+ ///
+ ///
+ ///
+ /// using namespace UnityEngine;
+ /// using UnityEngine.InputSystem;
+ ///
+ /// // Example of using an InputActionMap named "Player" from a UnityEngine.MonoBehaviour implementing callback interface.
+ /// public class Example : MonoBehaviour, MyActions.IPlayerActions
+ /// {
+ /// private MyActions_Actions m_Actions; // Source code representation of asset.
+ /// private MyActions_Actions.PlayerActions m_Player; // Source code representation of action map.
+ ///
+ /// void Awake()
+ /// {
+ /// m_Actions = new MyActions_Actions(); // Create asset object.
+ /// m_Player = m_Actions.Player; // Extract action map object.
+ /// m_Player.AddCallbacks(this); // Register callback interface IPlayerActions.
+ /// }
+ ///
+ /// void OnDestroy()
+ /// {
+ /// m_Actions.Dispose(); // Destroy asset object.
+ /// }
+ ///
+ /// void OnEnable()
+ /// {
+ /// m_Player.Enable(); // Enable all actions within map.
+ /// }
+ ///
+ /// void OnDisable()
+ /// {
+ /// m_Player.Disable(); // Disable all actions within map.
+ /// }
+ ///
+ /// #region Interface implementation of MyActions.IPlayerActions
+ ///
+ /// // Invoked when "Move" action is either started, performed or canceled.
+ /// public void OnMove(InputAction.CallbackContext context)
+ /// {
+ /// Debug.Log($"OnMove: {context.ReadValue<Vector2>()}");
+ /// }
+ ///
+ /// // Invoked when "Attack" action is either started, performed or canceled.
+ /// public void OnAttack(InputAction.CallbackContext context)
+ /// {
+ /// Debug.Log($"OnAttack: {context.ReadValue<float>()}");
+ /// }
+ ///
+ /// #endregion
+ /// }
+ ///
+ ///
public partial class @PlayerInputActions: IInputActionCollection2, IDisposable
{
+ ///
+ /// Provides access to the underlying asset instance.
+ ///
public InputActionAsset asset { get; }
+
+ ///
+ /// Constructs a new instance.
+ ///
public @PlayerInputActions()
{
asset = InputActionAsset.FromJson(@"{
@@ -285,57 +349,76 @@ public @PlayerInputActions()
m_Player_Jump = m_Player.FindAction("Jump", throwIfNotFound: true);
}
+ ~@PlayerInputActions()
+ {
+ UnityEngine.Debug.Assert(!m_Player.enabled, "This will cause a leak and performance issues, PlayerInputActions.Player.Disable() has not been called.");
+ }
+
+ ///
+ /// Destroys this asset and all associated instances.
+ ///
public void Dispose()
{
UnityEngine.Object.Destroy(asset);
}
+ ///
public InputBinding? bindingMask
{
get => asset.bindingMask;
set => asset.bindingMask = value;
}
+ ///
public ReadOnlyArray? devices
{
get => asset.devices;
set => asset.devices = value;
}
+ ///
public ReadOnlyArray controlSchemes => asset.controlSchemes;
+ ///
public bool Contains(InputAction action)
{
return asset.Contains(action);
}
+ ///
public IEnumerator GetEnumerator()
{
return asset.GetEnumerator();
}
+ ///
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
+ ///
public void Enable()
{
asset.Enable();
}
+ ///
public void Disable()
{
asset.Disable();
}
+ ///
public IEnumerable bindings => asset.bindings;
+ ///
public InputAction FindAction(string actionNameOrId, bool throwIfNotFound = false)
{
return asset.FindAction(actionNameOrId, throwIfNotFound);
}
+ ///
public int FindBinding(InputBinding bindingMask, out InputAction action)
{
return asset.FindBinding(bindingMask, out action);
@@ -347,18 +430,51 @@ public int FindBinding(InputBinding bindingMask, out InputAction action)
private readonly InputAction m_Player_Move;
private readonly InputAction m_Player_Look;
private readonly InputAction m_Player_Jump;
+ ///
+ /// Provides access to input actions defined in input action map "Player".
+ ///
public struct PlayerActions
{
private @PlayerInputActions m_Wrapper;
+
+ ///
+ /// Construct a new instance of the input action map wrapper class.
+ ///
public PlayerActions(@PlayerInputActions wrapper) { m_Wrapper = wrapper; }
+ ///
+ /// Provides access to the underlying input action "Player/Move".
+ ///
public InputAction @Move => m_Wrapper.m_Player_Move;
+ ///
+ /// Provides access to the underlying input action "Player/Look".
+ ///
public InputAction @Look => m_Wrapper.m_Player_Look;
+ ///
+ /// Provides access to the underlying input action "Player/Jump".
+ ///
public InputAction @Jump => m_Wrapper.m_Player_Jump;
+ ///
+ /// Provides access to the underlying input action map instance.
+ ///
public InputActionMap Get() { return m_Wrapper.m_Player; }
+ ///
public void Enable() { Get().Enable(); }
+ ///
public void Disable() { Get().Disable(); }
+ ///
public bool enabled => Get().enabled;
+ ///
+ /// Implicitly converts an to an instance.
+ ///
public static implicit operator InputActionMap(PlayerActions set) { return set.Get(); }
+ ///
+ /// Adds , and callbacks provided via on all input actions contained in this map.
+ ///
+ /// Callback instance.
+ ///
+ /// If is null or have already been added this method does nothing.
+ ///
+ ///
public void AddCallbacks(IPlayerActions instance)
{
if (instance == null || m_Wrapper.m_PlayerActionsCallbackInterfaces.Contains(instance)) return;
@@ -374,6 +490,13 @@ public void AddCallbacks(IPlayerActions instance)
@Jump.canceled += instance.OnJump;
}
+ ///
+ /// Removes , and callbacks provided via on all input actions contained in this map.
+ ///
+ ///
+ /// Calling this method when have not previously been registered has no side-effects.
+ ///
+ ///
private void UnregisterCallbacks(IPlayerActions instance)
{
@Move.started -= instance.OnMove;
@@ -387,12 +510,25 @@ private void UnregisterCallbacks(IPlayerActions instance)
@Jump.canceled -= instance.OnJump;
}
+ ///
+ /// Unregisters and unregisters all input action callbacks via .
+ ///
+ ///
public void RemoveCallbacks(IPlayerActions instance)
{
if (m_Wrapper.m_PlayerActionsCallbackInterfaces.Remove(instance))
UnregisterCallbacks(instance);
}
+ ///
+ /// Replaces all existing callback instances and previously registered input action callbacks associated with them with callbacks provided via .
+ ///
+ ///
+ /// If is null, calling this method will only unregister all existing callbacks but not register any new callbacks.
+ ///
+ ///
+ ///
+ ///
public void SetCallbacks(IPlayerActions instance)
{
foreach (var item in m_Wrapper.m_PlayerActionsCallbackInterfaces)
@@ -401,8 +537,15 @@ public void SetCallbacks(IPlayerActions instance)
AddCallbacks(instance);
}
}
+ ///
+ /// Provides a new instance referencing this action map.
+ ///
public PlayerActions @Player => new PlayerActions(this);
private int m_KeyboardMouseSchemeIndex = -1;
+ ///
+ /// Provides access to the input control scheme.
+ ///
+ ///
public InputControlScheme KeyboardMouseScheme
{
get
@@ -412,6 +555,10 @@ public InputControlScheme KeyboardMouseScheme
}
}
private int m_GamepadSchemeIndex = -1;
+ ///
+ /// Provides access to the input control scheme.
+ ///
+ ///
public InputControlScheme GamepadScheme
{
get
@@ -421,6 +568,10 @@ public InputControlScheme GamepadScheme
}
}
private int m_TouchSchemeIndex = -1;
+ ///
+ /// Provides access to the input control scheme.
+ ///
+ ///
public InputControlScheme TouchScheme
{
get
@@ -430,6 +581,10 @@ public InputControlScheme TouchScheme
}
}
private int m_JoystickSchemeIndex = -1;
+ ///
+ /// Provides access to the input control scheme.
+ ///
+ ///
public InputControlScheme JoystickScheme
{
get
@@ -439,6 +594,10 @@ public InputControlScheme JoystickScheme
}
}
private int m_XRSchemeIndex = -1;
+ ///
+ /// Provides access to the input control scheme.
+ ///
+ ///
public InputControlScheme XRScheme
{
get
@@ -447,10 +606,33 @@ public InputControlScheme XRScheme
return asset.controlSchemes[m_XRSchemeIndex];
}
}
+ ///
+ /// Interface to implement callback methods for all input action callbacks associated with input actions defined by "Player" which allows adding and removing callbacks.
+ ///
+ ///
+ ///
public interface IPlayerActions
{
+ ///
+ /// Method invoked when associated input action "Move" is either , or .
+ ///
+ ///
+ ///
+ ///
void OnMove(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Look" is either , or .
+ ///
+ ///
+ ///
+ ///
void OnLook(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "Jump" is either , or .
+ ///
+ ///
+ ///
+ ///
void OnJump(InputAction.CallbackContext context);
}
}
diff --git a/Assets/TestDoubleExample/Tests/Runtime/TestDoubleExample.Tests.asmdef b/Assets/TestDoubleExample/Tests/Runtime/TestDoubleExample.Tests.asmdef
index 2ba2425..73e4d45 100644
--- a/Assets/TestDoubleExample/Tests/Runtime/TestDoubleExample.Tests.asmdef
+++ b/Assets/TestDoubleExample/Tests/Runtime/TestDoubleExample.Tests.asmdef
@@ -4,7 +4,9 @@
"references": [
"UnityEngine.TestRunner",
"UnityEditor.TestRunner",
- "TestDoubleExample"
+ "TestDoubleExample",
+ "NUnit.Analyzers_Unity",
+ "NSubstitute.Analyzers.CSharp_Unity"
],
"includePlatforms": [],
"excludePlatforms": [],
@@ -12,9 +14,7 @@
"overrideReferences": true,
"precompiledReferences": [
"nunit.framework.dll",
- "NSubstitute.dll",
- "Castle.Core.dll",
- "System.Threading.Tasks.Extensions.dll"
+ "NSubstitute.dll"
],
"autoReferenced": false,
"defineConstraints": [
diff --git a/Packages/manifest.json b/Packages/manifest.json
index a93354f..e9a8033 100644
--- a/Packages/manifest.json
+++ b/Packages/manifest.json
@@ -7,16 +7,20 @@
"com.nowsprinting.test-helper.input": "1.0.1",
"com.nowsprinting.test-helper.random": "1.1.0",
"com.nowsprinting.test-helper.ui": "1.1.3",
- "com.unity.collab-proxy": "1.14.18",
+ "com.unity.ai.navigation": "2.0.6",
+ "com.unity.collab-proxy": "2.7.1",
"com.unity.ide.rider": "3.0.34",
"com.unity.ide.visualstudio": "2.0.22",
- "com.unity.inputsystem": "1.7.0",
+ "com.unity.inputsystem": "1.13.1",
+ "com.unity.multiplayer.center": "1.0.0",
"com.unity.test-framework": "1.4.6",
- "com.unity.testtools.codecoverage": "1.2.4",
- "com.unity.textmeshpro": "2.1.6",
- "com.unity.timeline": "1.2.18",
- "com.unity.ugui": "1.0.0",
- "net.tnrd.nsubstitute": "4.2.2",
+ "com.unity.testtools.codecoverage": "1.2.6",
+ "com.unity.timeline": "1.8.7",
+ "com.unity.ugui": "2.0.0",
+ "org.nuget.nsubstitute": "5.3.0",
+ "org.nuget.nsubstitute.analyzers.csharp": "1.0.17",
+ "org.nuget.nunit.analyzers": "3.9.0",
+ "com.unity.modules.accessibility": "1.0.0",
"com.unity.modules.ai": "1.0.0",
"com.unity.modules.androidjni": "1.0.0",
"com.unity.modules.animation": "1.0.0",
@@ -54,14 +58,20 @@
],
"scopedRegistries": [
{
- "name": "package.openupm.com",
+ "name": "OpenUPM",
"url": "https://package.openupm.com",
"scopes": [
- "com.cysharp",
"com.nowsprinting",
- "com.openupm",
- "net.tnrd.nsubstitute"
+ "com.cysharp"
]
+ },
+ {
+ "name": "UnityNuGet",
+ "url": "https://package.openupm.com",
+ "scopes": [
+ "org.nuget"
+ ],
+ "overrideBuiltIns": true
}
]
}
diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json
index d39fe08..a7bdafb 100644
--- a/Packages/packages-lock.json
+++ b/Packages/packages-lock.json
@@ -61,43 +61,29 @@
},
"url": "https://package.openupm.com"
},
- "com.unity.addressables": {
- "version": "1.17.15",
- "depth": 1,
+ "com.unity.ai.navigation": {
+ "version": "2.0.6",
+ "depth": 0,
"source": "registry",
"dependencies": {
- "com.unity.modules.assetbundle": "1.0.0",
- "com.unity.modules.jsonserialize": "1.0.0",
- "com.unity.modules.imageconversion": "1.0.0",
- "com.unity.modules.unitywebrequest": "1.0.0",
- "com.unity.scriptablebuildpipeline": "1.17.0",
- "com.unity.modules.unitywebrequestassetbundle": "1.0.0"
+ "com.unity.modules.ai": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.collab-proxy": {
- "version": "1.14.18",
+ "version": "2.7.1",
"depth": 0,
"source": "registry",
"dependencies": {},
"url": "https://packages.unity.com"
},
"com.unity.ext.nunit": {
- "version": "2.0.3",
+ "version": "2.0.5",
"depth": 1,
"source": "registry",
"dependencies": {},
"url": "https://packages.unity.com"
},
- "com.unity.external.test-protocol": {
- "version": "1.0.0-preview",
- "depth": 1,
- "source": "registry",
- "dependencies": {
- "com.unity.nuget.newtonsoft-json": "2.0.0-preview"
- },
- "url": "https://packages.unity.com"
- },
"com.unity.ide.rider": {
"version": "3.0.34",
"depth": 0,
@@ -117,7 +103,7 @@
"url": "https://packages.unity.com"
},
"com.unity.inputsystem": {
- "version": "1.7.0",
+ "version": "1.13.1",
"depth": 0,
"source": "registry",
"dependencies": {
@@ -125,34 +111,21 @@
},
"url": "https://packages.unity.com"
},
- "com.unity.nuget.newtonsoft-json": {
- "version": "2.0.0",
- "depth": 1,
- "source": "registry",
- "dependencies": {},
- "url": "https://packages.unity.com"
- },
- "com.unity.scriptablebuildpipeline": {
- "version": "1.17.0",
- "depth": 2,
- "source": "registry",
- "dependencies": {},
- "url": "https://packages.unity.com"
+ "com.unity.multiplayer.center": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {
+ "com.unity.modules.uielements": "1.0.0"
+ }
},
"com.unity.settings-manager": {
- "version": "1.0.1",
+ "version": "2.0.1",
"depth": 1,
"source": "registry",
"dependencies": {},
"url": "https://packages.unity.com"
},
- "com.unity.subsystemregistration": {
- "version": "1.0.6",
- "depth": 2,
- "source": "registry",
- "dependencies": {},
- "url": "https://packages.unity.com"
- },
"com.unity.test-framework": {
"version": "1.4.6",
"depth": 0,
@@ -165,7 +138,7 @@
"url": "https://packages.unity.com"
},
"com.unity.testtools.codecoverage": {
- "version": "1.2.4",
+ "version": "1.2.6",
"depth": 0,
"source": "registry",
"dependencies": {
@@ -174,17 +147,8 @@
},
"url": "https://packages.unity.com"
},
- "com.unity.textmeshpro": {
- "version": "2.1.6",
- "depth": 0,
- "source": "registry",
- "dependencies": {
- "com.unity.ugui": "1.0.0"
- },
- "url": "https://packages.unity.com"
- },
"com.unity.timeline": {
- "version": "1.2.18",
+ "version": "1.8.7",
"depth": 0,
"source": "registry",
"dependencies": {
@@ -196,7 +160,7 @@
"url": "https://packages.unity.com"
},
"com.unity.ugui": {
- "version": "1.0.0",
+ "version": "2.0.0",
"depth": 0,
"source": "builtin",
"dependencies": {
@@ -204,13 +168,85 @@
"com.unity.modules.imgui": "1.0.0"
}
},
- "net.tnrd.nsubstitute": {
- "version": "4.2.2",
+ "org.nuget.castle.core": {
+ "version": "5.1.1",
+ "depth": 1,
+ "source": "registry",
+ "dependencies": {
+ "org.nuget.system.diagnostics.eventlog": "4.7.0",
+ "org.nuget.system.reflection.emit": "4.7.0"
+ },
+ "url": "https://package.openupm.com"
+ },
+ "org.nuget.nsubstitute": {
+ "version": "5.3.0",
"depth": 0,
"source": "registry",
+ "dependencies": {
+ "org.nuget.castle.core": "5.1.1",
+ "org.nuget.system.threading.tasks.extensions": "4.4.0"
+ },
+ "url": "https://package.openupm.com"
+ },
+ "org.nuget.nsubstitute.analyzers.csharp": {
+ "version": "1.0.17",
+ "depth": 0,
+ "source": "registry",
+ "dependencies": {},
+ "url": "https://package.openupm.com"
+ },
+ "org.nuget.nunit.analyzers": {
+ "version": "3.9.0",
+ "depth": 0,
+ "source": "registry",
+ "dependencies": {},
+ "url": "https://package.openupm.com"
+ },
+ "org.nuget.system.diagnostics.eventlog": {
+ "version": "4.7.0",
+ "depth": 2,
+ "source": "registry",
+ "dependencies": {
+ "org.nuget.system.security.principal.windows": "4.7.0"
+ },
+ "url": "https://package.openupm.com"
+ },
+ "org.nuget.system.reflection.emit": {
+ "version": "4.7.0",
+ "depth": 2,
+ "source": "registry",
+ "dependencies": {
+ "org.nuget.system.reflection.emit.ilgeneration": "4.7.0"
+ },
+ "url": "https://package.openupm.com"
+ },
+ "org.nuget.system.reflection.emit.ilgeneration": {
+ "version": "4.7.0",
+ "depth": 3,
+ "source": "registry",
+ "dependencies": {},
+ "url": "https://package.openupm.com"
+ },
+ "org.nuget.system.security.principal.windows": {
+ "version": "4.7.0",
+ "depth": 3,
+ "source": "registry",
"dependencies": {},
"url": "https://package.openupm.com"
},
+ "org.nuget.system.threading.tasks.extensions": {
+ "version": "4.4.0",
+ "depth": 1,
+ "source": "registry",
+ "dependencies": {},
+ "url": "https://package.openupm.com"
+ },
+ "com.unity.modules.accessibility": {
+ "version": "1.0.0",
+ "depth": 0,
+ "source": "builtin",
+ "dependencies": {}
+ },
"com.unity.modules.ai": {
"version": "1.0.0",
"depth": 0,
@@ -258,6 +294,12 @@
"com.unity.modules.animation": "1.0.0"
}
},
+ "com.unity.modules.hierarchycore": {
+ "version": "1.0.0",
+ "depth": 1,
+ "source": "builtin",
+ "dependencies": {}
+ },
"com.unity.modules.imageconversion": {
"version": "1.0.0",
"depth": 0,
@@ -344,8 +386,10 @@
"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.jsonserialize": "1.0.0",
+ "com.unity.modules.hierarchycore": "1.0.0"
}
},
"com.unity.modules.umbra": {
diff --git a/ProjectSettings/MemorySettings.asset b/ProjectSettings/MemorySettings.asset
new file mode 100644
index 0000000..5b5face
--- /dev/null
+++ b/ProjectSettings/MemorySettings.asset
@@ -0,0 +1,35 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!387306366 &1
+MemorySettings:
+ m_ObjectHideFlags: 0
+ m_EditorMemorySettings:
+ m_MainAllocatorBlockSize: -1
+ m_ThreadAllocatorBlockSize: -1
+ m_MainGfxBlockSize: -1
+ m_ThreadGfxBlockSize: -1
+ m_CacheBlockSize: -1
+ m_TypetreeBlockSize: -1
+ m_ProfilerBlockSize: -1
+ m_ProfilerEditorBlockSize: -1
+ m_BucketAllocatorGranularity: -1
+ m_BucketAllocatorBucketsCount: -1
+ m_BucketAllocatorBlockSize: -1
+ m_BucketAllocatorBlockCount: -1
+ m_ProfilerBucketAllocatorGranularity: -1
+ m_ProfilerBucketAllocatorBucketsCount: -1
+ m_ProfilerBucketAllocatorBlockSize: -1
+ m_ProfilerBucketAllocatorBlockCount: -1
+ m_TempAllocatorSizeMain: -1
+ m_JobTempAllocatorBlockSize: -1
+ m_BackgroundJobTempAllocatorBlockSize: -1
+ m_JobTempAllocatorReducedBlockSize: -1
+ m_TempAllocatorSizeGIBakingWorker: -1
+ m_TempAllocatorSizeNavMeshWorker: -1
+ m_TempAllocatorSizeAudioWorker: -1
+ m_TempAllocatorSizeCloudWorker: -1
+ m_TempAllocatorSizeGfx: -1
+ m_TempAllocatorSizeJobWorker: -1
+ m_TempAllocatorSizeBackgroundWorker: -1
+ m_TempAllocatorSizePreloadManager: -1
+ m_PlatformMemorySettings: {}
diff --git a/ProjectSettings/MultiplayerManager.asset b/ProjectSettings/MultiplayerManager.asset
new file mode 100644
index 0000000..2a93664
--- /dev/null
+++ b/ProjectSettings/MultiplayerManager.asset
@@ -0,0 +1,7 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!655991488 &1
+MultiplayerManager:
+ m_ObjectHideFlags: 0
+ m_EnableMultiplayerRoles: 0
+ m_StrippingTypes: {}
diff --git a/ProjectSettings/PackageManagerSettings.asset b/ProjectSettings/PackageManagerSettings.asset
index abe1834..e568051 100644
--- a/ProjectSettings/PackageManagerSettings.asset
+++ b/ProjectSettings/PackageManagerSettings.asset
@@ -12,43 +12,43 @@ MonoBehaviour:
m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
+ m_EnablePreReleasePackages: 0
+ m_AdvancedSettingsExpanded: 1
m_ScopedRegistriesSettingsExpanded: 1
+ m_SeeAllPackageVersions: 0
+ m_DismissPreviewPackagesInUse: 0
oneTimeWarningShown: 0
+ oneTimeDeprecatedPopUpShown: 0
m_Registries:
- m_Id: main
m_Name:
m_Url: https://packages.unity.com
m_Scopes: []
m_IsDefault: 1
- - m_Id: scoped:package.openupm.com
- m_Name: package.openupm.com
+ m_Capabilities: 7
+ m_ConfigSource: 0
+ - m_Id: scoped:project:OpenUPM
+ m_Name: OpenUPM
m_Url: https://package.openupm.com
m_Scopes:
- - com.cysharp
- com.nowsprinting
- - com.openupm
- - net.tnrd.nsubstitute
+ - com.cysharp
+ m_IsDefault: 0
+ m_Capabilities: 0
+ m_ConfigSource: 4
+ - m_Id: scoped:project:UnityNuGet
+ m_Name: UnityNuGet
+ m_Url: https://package.openupm.com
+ m_Scopes:
+ - org.nuget
m_IsDefault: 0
- m_UserSelectedRegistryName:
+ m_Capabilities: 0
+ m_ConfigSource: 4
+ m_UserSelectedRegistryName: OpenUPM
m_UserAddingNewScopedRegistry: 0
m_RegistryInfoDraft:
- m_ErrorMessage:
- m_Original:
- m_Id: scoped:package.openupm.com
- m_Name: package.openupm.com
- m_Url: https://package.openupm.com
- m_Scopes:
- - com.cysharp
- - com.nowsprinting
- - com.openupm
- - net.tnrd.nsubstitute
- m_IsDefault: 0
m_Modified: 0
- m_Name: package.openupm.com
- m_Url: https://package.openupm.com
- m_Scopes:
- - com.cysharp
- - com.nowsprinting
- - com.openupm
- - net.tnrd.nsubstitute
- m_SelectedScopeIndex: 0
+ m_ErrorMessage:
+ m_UserModificationsInstanceId: -888
+ m_OriginalInstanceId: -892
+ m_LoadAssets: 0
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 4c19129..355f111 100644
--- a/ProjectSettings/ProjectVersion.txt
+++ b/ProjectSettings/ProjectVersion.txt
@@ -1,2 +1,2 @@
-m_EditorVersion: 2019.4.40f1
-m_EditorVersionWithRevision: 2019.4.40f1 (ffc62b691db5)
+m_EditorVersion: 6000.0.43f1
+m_EditorVersionWithRevision: 6000.0.43f1 (97272b72f107)
diff --git a/ProjectSettings/SceneTemplateSettings.json b/ProjectSettings/SceneTemplateSettings.json
new file mode 100644
index 0000000..ede5887
--- /dev/null
+++ b/ProjectSettings/SceneTemplateSettings.json
@@ -0,0 +1,121 @@
+{
+ "templatePinStates": [],
+ "dependencyTypeInfos": [
+ {
+ "userAdded": false,
+ "type": "UnityEngine.AnimationClip",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEditor.Animations.AnimatorController",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.AnimatorOverrideController",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEditor.Audio.AudioMixerController",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.ComputeShader",
+ "defaultInstantiationMode": 1
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.Cubemap",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.GameObject",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEditor.LightingDataAsset",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.LightingSettings",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.Material",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEditor.MonoScript",
+ "defaultInstantiationMode": 1
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.PhysicsMaterial",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.PhysicsMaterial2D",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.Rendering.VolumeProfile",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEditor.SceneAsset",
+ "defaultInstantiationMode": 1
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.Shader",
+ "defaultInstantiationMode": 1
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.ShaderVariantCollection",
+ "defaultInstantiationMode": 1
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.Texture",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.Texture2D",
+ "defaultInstantiationMode": 0
+ },
+ {
+ "userAdded": false,
+ "type": "UnityEngine.Timeline.TimelineAsset",
+ "defaultInstantiationMode": 0
+ }
+ ],
+ "defaultDependencyTypeInfo": {
+ "userAdded": false,
+ "type": "",
+ "defaultInstantiationMode": 1
+ },
+ "newSceneOverride": 0
+}
\ No newline at end of file