mirror of
https://github.com/Cysharp/UniTask.git
synced 2026-05-16 12:00:10 +00:00
Compare commits
38 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
83d8a2b424 | ||
|
|
4d204e4aa6 | ||
|
|
87e164e275 | ||
|
|
b63eb8d090 | ||
|
|
75119acb50 | ||
|
|
f7b3c2fbe1 | ||
|
|
b317ecfa01 | ||
|
|
7b05569ef7 | ||
|
|
e0465c6c2c | ||
|
|
9057452c86 | ||
|
|
a2f6f84bde | ||
|
|
f057abff0f | ||
|
|
c61a7d9961 | ||
|
|
9587f2eeec | ||
|
|
550784f31c | ||
|
|
11b3282b3d | ||
|
|
b2532b0798 | ||
|
|
4fc41ecb17 | ||
|
|
e52663cef6 | ||
|
|
1827be2de7 | ||
|
|
8560561ef3 | ||
|
|
2019f1fa7f | ||
|
|
9e2265d148 | ||
|
|
9d02279822 | ||
|
|
17ce06d93c | ||
|
|
7b810413fe | ||
|
|
d78c0d6c02 | ||
|
|
d248acc7d1 | ||
|
|
4c0b1f753a | ||
|
|
7bb6feda55 | ||
|
|
f8a501290a | ||
|
|
cb497c9eb5 | ||
|
|
342a37a074 | ||
|
|
c3146ec74f | ||
|
|
df16813fae | ||
|
|
8d98bbc7ba | ||
|
|
bb095697f7 | ||
|
|
3b3f7ebd3e |
7
.github/dependabot.yaml
vendored
Normal file
7
.github/dependabot.yaml
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# ref: https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot
|
||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly" # Check for updates to GitHub Actions every week
|
||||||
49
.github/workflows/build-debug.yml
vendored
49
.github/workflows/build-debug.yml
vendored
@@ -13,18 +13,20 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: Cysharp/Actions/.github/actions/setup-dotnet@main
|
- uses: Cysharp/Actions/.github/actions/setup-dotnet@main
|
||||||
- run: dotnet build -c Debug
|
- run: dotnet build -c Debug
|
||||||
- run: dotnet test -c Debug
|
- run: dotnet test -c Debug
|
||||||
|
|
||||||
build-unity:
|
build-unity:
|
||||||
if: ${{ (github.event_name == 'push' && github.repository_owner == 'Cysharp') || startsWith(github.event.pull_request.head.label, 'Cysharp:') }}
|
if: ${{ ((github.event_name == 'push' && github.repository_owner == 'Cysharp') || startsWith(github.event.pull_request.head.label, 'Cysharp:')) && github.triggering_actor != 'dependabot[bot]' }}
|
||||||
strategy:
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
max-parallel: 2
|
||||||
matrix:
|
matrix:
|
||||||
unity: ["2019.3.9f1", "2019.4.13f1", "2020.1.12f1"]
|
unity: ["2021.3.41f1", "2022.3.39f1", "6000.0.12f1"] # Test with LTS
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 15
|
timeout-minutes: 20
|
||||||
steps:
|
steps:
|
||||||
- name: Load secrets
|
- name: Load secrets
|
||||||
id: op-load-secret
|
id: op-load-secret
|
||||||
@@ -37,27 +39,12 @@ jobs:
|
|||||||
UNITY_PASSWORD: "op://GitHubActionsPublic/UNITY_LICENSE/credential"
|
UNITY_PASSWORD: "op://GitHubActionsPublic/UNITY_LICENSE/credential"
|
||||||
UNITY_SERIAL: "op://GitHubActionsPublic/UNITY_LICENSE/serial"
|
UNITY_SERIAL: "op://GitHubActionsPublic/UNITY_LICENSE/serial"
|
||||||
|
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
# Execute scripts: RuntimeUnitTestToolkit
|
|
||||||
# /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -projectPath . -executeMethod UnitTestBuilder.BuildUnitTest /headless /ScriptBackend mono /BuildTarget StandaloneLinux64
|
|
||||||
- name: Build UnitTest(Linux64, mono)
|
|
||||||
uses: Cysharp/Actions/.github/actions/unity-builder@main
|
|
||||||
env:
|
|
||||||
UNITY_EMAIL: ${{ steps.op-load-secret.outputs.UNITY_EMAIL }}
|
|
||||||
UNITY_PASSWORD: ${{ steps.op-load-secret.outputs.UNITY_PASSWORD }}
|
|
||||||
UNITY_SERIAL: ${{ steps.op-load-secret.outputs.UNITY_SERIAL }}
|
|
||||||
with:
|
|
||||||
projectPath: src/UniTask
|
|
||||||
unityVersion: ${{ matrix.unity }}
|
|
||||||
targetPlatform: StandaloneLinux64
|
|
||||||
buildMethod: UnitTestBuilder.BuildUnitTest
|
|
||||||
customParameters: /headless /ScriptBackend mono
|
|
||||||
- name: Execute UnitTest
|
|
||||||
run: ./src/UniTask/bin/UnitTest/StandaloneLinux64_Mono2x/test
|
|
||||||
|
|
||||||
# Execute scripts: Export Package
|
# Execute scripts: Export Package
|
||||||
# /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -projectPath . -executeMethod PackageExporter.Export
|
# /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -projectPath . -executeMethod PackageExporter.Export
|
||||||
- name: Build Unity (.unitypacakge)
|
- name: Build Unity (.unitypacakge)
|
||||||
|
if: ${{ startsWith(matrix.unity, '2021') }} # only execute once
|
||||||
uses: Cysharp/Actions/.github/actions/unity-builder@main
|
uses: Cysharp/Actions/.github/actions/unity-builder@main
|
||||||
env:
|
env:
|
||||||
UNITY_EMAIL: ${{ steps.op-load-secret.outputs.UNITY_EMAIL }}
|
UNITY_EMAIL: ${{ steps.op-load-secret.outputs.UNITY_EMAIL }}
|
||||||
@@ -73,8 +60,28 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
directory: src/UniTask
|
directory: src/UniTask
|
||||||
|
|
||||||
|
# Execute UnitTest
|
||||||
|
# /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -projectPath . -executeMethod UnitTestBuilder.BuildUnitTest /headless /ScriptBackend IL2CPP /BuildTarget StandaloneLinux64
|
||||||
|
- name: Build UnitTest (IL2CPP)
|
||||||
|
uses: Cysharp/Actions/.github/actions/unity-builder@main
|
||||||
|
env:
|
||||||
|
UNITY_EMAIL: ${{ steps.op-load-secret.outputs.UNITY_EMAIL }}
|
||||||
|
UNITY_PASSWORD: ${{ steps.op-load-secret.outputs.UNITY_PASSWORD }}
|
||||||
|
UNITY_SERIAL: ${{ steps.op-load-secret.outputs.UNITY_SERIAL }}
|
||||||
|
with:
|
||||||
|
projectPath: src/UniTask
|
||||||
|
unityVersion: ${{ matrix.unity }}
|
||||||
|
targetPlatform: StandaloneLinux64
|
||||||
|
buildMethod: UnitTestBuilder.BuildUnitTest
|
||||||
|
customParameters: "/headless /ScriptBackend IL2CPP"
|
||||||
|
- name: Check UnitTest file is generated
|
||||||
|
run: ls -lR ./src/UniTask/bin/UnitTest
|
||||||
|
- name: Execute UnitTest
|
||||||
|
run: ./src/UniTask/bin/UnitTest/StandaloneLinux64_IL2CPP/test
|
||||||
|
|
||||||
# Store artifacts.
|
# Store artifacts.
|
||||||
- uses: Cysharp/Actions/.github/actions/upload-artifact@main
|
- uses: Cysharp/Actions/.github/actions/upload-artifact@main
|
||||||
|
if: ${{ startsWith(matrix.unity, '2021') }} # only execute 2021
|
||||||
with:
|
with:
|
||||||
name: UniTask.unitypackage-${{ matrix.unity }}.zip
|
name: UniTask.unitypackage-${{ matrix.unity }}.zip
|
||||||
path: ./src/UniTask/*.unitypackage
|
path: ./src/UniTask/*.unitypackage
|
||||||
|
|||||||
6
.github/workflows/build-docs.yml
vendored
6
.github/workflows/build-docs.yml
vendored
@@ -11,8 +11,8 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: Cysharp/DocfxTemplate
|
repository: Cysharp/DocfxTemplate
|
||||||
path: docs/_DocfxTemplate
|
path: docs/_DocfxTemplate
|
||||||
@@ -25,7 +25,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
args: build docs/docfx.json
|
args: build docs/docfx.json
|
||||||
- name: Publish to GitHub Pages
|
- name: Publish to GitHub Pages
|
||||||
uses: peaceiris/actions-gh-pages@v3
|
uses: peaceiris/actions-gh-pages@v4
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
publish_dir: docs/_site
|
publish_dir: docs/_site
|
||||||
|
|||||||
6
.github/workflows/build-release.yml
vendored
6
.github/workflows/build-release.yml
vendored
@@ -26,7 +26,7 @@ jobs:
|
|||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- run: echo ${{ needs.update-packagejson.outputs.sha }}
|
- run: echo ${{ needs.update-packagejson.outputs.sha }}
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
ref: ${{ needs.update-packagejson.outputs.sha }}
|
ref: ${{ needs.update-packagejson.outputs.sha }}
|
||||||
- uses: Cysharp/Actions/.github/actions/setup-dotnet@main
|
- uses: Cysharp/Actions/.github/actions/setup-dotnet@main
|
||||||
@@ -45,7 +45,7 @@ jobs:
|
|||||||
needs: [update-packagejson]
|
needs: [update-packagejson]
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
unity: ["2019.3.9f1"]
|
unity: ["2022.3.39f1"]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 15
|
timeout-minutes: 15
|
||||||
steps:
|
steps:
|
||||||
@@ -61,7 +61,7 @@ jobs:
|
|||||||
UNITY_SERIAL: "op://GitHubActionsPublic/UNITY_LICENSE/serial"
|
UNITY_SERIAL: "op://GitHubActionsPublic/UNITY_LICENSE/serial"
|
||||||
|
|
||||||
- run: echo ${{ needs.update-packagejson.outputs.sha }}
|
- run: echo ${{ needs.update-packagejson.outputs.sha }}
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
ref: ${{ needs.update-packagejson.outputs.sha }}
|
ref: ${{ needs.update-packagejson.outputs.sha }}
|
||||||
# Execute scripts: Export Package
|
# Execute scripts: Export Package
|
||||||
|
|||||||
2
.github/workflows/toc.yml
vendored
2
.github/workflows/toc.yml
vendored
@@ -10,6 +10,6 @@ jobs:
|
|||||||
name: TOC Generator
|
name: TOC Generator
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: technote-space/toc-generator@v2.4.0
|
- uses: technote-space/toc-generator@v4.3.1
|
||||||
with:
|
with:
|
||||||
TOC_TITLE: "## Table of Contents"
|
TOC_TITLE: "## Table of Contents"
|
||||||
143
.gitignore
vendored
143
.gitignore
vendored
@@ -130,134 +130,15 @@ UpgradeLog*.XML
|
|||||||
Assets/WSATestCertificate.pfx
|
Assets/WSATestCertificate.pfx
|
||||||
.vs/
|
.vs/
|
||||||
|
|
||||||
Assembly-CSharp\.csproj
|
# Unity
|
||||||
|
|
||||||
UniRx\.Async\.csproj
|
# Unity
|
||||||
|
.vsconfig
|
||||||
UniRx\.Async\.Editor\.csproj
|
src/UniTask/Library/*
|
||||||
|
src/UniTask/Temp/*
|
||||||
UniRx\.Async\.Tests\.csproj
|
src/UniTask/Logs/*
|
||||||
|
src/UniTask/[Uu]ser[Ss]ettings/
|
||||||
UniTask\.sln
|
src/UniTask/*.sln
|
||||||
|
src/UniTask/*.csproj
|
||||||
RuntimeUnitTestToolkit\.csproj
|
src/UniTask/*.unitypackage
|
||||||
|
!src/UniTask/Packages/
|
||||||
Assembly-CSharp-Editor\.csproj
|
|
||||||
|
|
||||||
UniRx\.Async\.unitypackage
|
|
||||||
|
|
||||||
UniRx.Async.Tests.Editor.csproj
|
|
||||||
|
|
||||||
src/UniTask/UniTask.csproj
|
|
||||||
|
|
||||||
src/UniTask/UniTask.Editor.csproj
|
|
||||||
|
|
||||||
src/UniTask/UniTask.Tests.csproj
|
|
||||||
|
|
||||||
src/UniTask/UniTask.Tests.Editor.csproj
|
|
||||||
|
|
||||||
src/UniTask/UniTask.*.unitypackage
|
|
||||||
|
|
||||||
src/UniTask/UniTask.Linq.csproj
|
|
||||||
|
|
||||||
src/UniTask/DOTween.Modules.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.Addressables.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.Addressables.Editor.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.Analytics.DataPrivacy.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.Recorder.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.Recorder.Editor.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.ResourceManager.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.Rider.Editor.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.ScriptableBuildPipeline.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.ScriptableBuildPipeline.Editor.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.TextMeshPro.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.TextMeshPro.Editor.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.Timeline.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.Timeline.Editor.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.VisualStudio.Editor.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.VSCode.Editor.csproj
|
|
||||||
|
|
||||||
src/UniTask/UnityEditor.CacheServer.csproj
|
|
||||||
|
|
||||||
src/UniTask/UnityEditor.TestRunner.csproj
|
|
||||||
|
|
||||||
src/UniTask/UnityEditor.UI.csproj
|
|
||||||
|
|
||||||
src/UniTask/UnityEngine.Advertisements.csproj
|
|
||||||
|
|
||||||
src/UniTask/UnityEngine.Monetization.csproj
|
|
||||||
|
|
||||||
src/UniTask/UnityEngine.TestRunner.csproj
|
|
||||||
|
|
||||||
src/UniTask/UnityEngine.UI.csproj
|
|
||||||
|
|
||||||
src/UniTask/TempAsm.csproj
|
|
||||||
|
|
||||||
src/UniTask/UniTask.Addressables.csproj
|
|
||||||
|
|
||||||
src/UniTask/UniTask.DOTween.csproj
|
|
||||||
|
|
||||||
src/UniTask/UniTask.TextMeshPro.csproj
|
|
||||||
|
|
||||||
src/UniTask/RuntimeUnitTestToolkit.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/TempAsm.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/UniTask.Addressables.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/UniTask.DOTween.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/UniTask.Linq.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/UniTask.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/UniTask.Tests.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/UniTask.TextMeshPro.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.Addressables.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.Analytics.DataPrivacy.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.ResourceManager.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.ScriptableBuildPipeline.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.TextMeshPro.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.Timeline.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/UnityEngine.Advertisements.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/UnityEngine.Monetization.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/UnityEngine.TestRunner.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/UnityEngine.UI.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/DOTween.Modules.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/Assembly-CSharp.Player.csproj
|
|
||||||
|
|
||||||
src/UniTask/Unity.EditorCoroutines.Editor.csproj
|
|
||||||
|
|
||||||
src/UniTask/.vsconfig
|
|
||||||
|
|
||||||
src/UniTask/Logs/ApiUpdaterCheck.txt
|
|
||||||
|
|
||||||
src/UniTask/Assembly-CSharp-firstpass.csproj
|
|
||||||
|
|||||||
@@ -205,6 +205,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -243,7 +247,7 @@ namespace Cysharp.Threading.Tasks
|
|||||||
|
|
||||||
if (progress != null && handle.IsValid())
|
if (progress != null && handle.IsValid())
|
||||||
{
|
{
|
||||||
progress.Report(handle.PercentComplete);
|
progress.Report(handle.GetDownloadStatus().Percent);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -404,7 +408,13 @@ namespace Cysharp.Threading.Tasks
|
|||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
if (!(cancelImmediately && cancellationToken.IsCancellationRequested))
|
if (!(cancelImmediately && cancellationToken.IsCancellationRequested))
|
||||||
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -448,7 +458,7 @@ namespace Cysharp.Threading.Tasks
|
|||||||
|
|
||||||
if (progress != null && handle.IsValid())
|
if (progress != null && handle.IsValid())
|
||||||
{
|
{
|
||||||
progress.Report(handle.PercentComplete);
|
progress.Report(handle.GetDownloadStatus().Percent);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -16,6 +16,11 @@
|
|||||||
"name": "com.unity.textmeshpro",
|
"name": "com.unity.textmeshpro",
|
||||||
"expression": "",
|
"expression": "",
|
||||||
"define": "UNITASK_TEXTMESHPRO_SUPPORT"
|
"define": "UNITASK_TEXTMESHPRO_SUPPORT"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "com.unity.ugui",
|
||||||
|
"expression": "2.0.0",
|
||||||
|
"define": "UNITASK_TEXTMESHPRO_SUPPORT"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"noEngineReferences": false
|
"noEngineReferences": false
|
||||||
|
|||||||
@@ -259,6 +259,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -366,6 +370,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -475,6 +483,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -604,6 +616,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -750,6 +766,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -878,6 +898,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1004,6 +1028,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics.Tracing;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using Cysharp.Threading.Tasks.Internal;
|
using Cysharp.Threading.Tasks.Internal;
|
||||||
|
|
||||||
@@ -102,6 +103,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -193,6 +198,7 @@ namespace Cysharp.Threading.Tasks
|
|||||||
|
|
||||||
result.predicate = predicate;
|
result.predicate = predicate;
|
||||||
result.cancellationToken = cancellationToken;
|
result.cancellationToken = cancellationToken;
|
||||||
|
result.cancelImmediately = cancelImmediately;
|
||||||
|
|
||||||
if (cancelImmediately && cancellationToken.CanBeCanceled)
|
if (cancelImmediately && cancellationToken.CanBeCanceled)
|
||||||
{
|
{
|
||||||
@@ -223,6 +229,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -343,6 +353,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -459,6 +473,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -598,6 +616,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -201,6 +201,7 @@ namespace Cysharp.Threading.Tasks
|
|||||||
|
|
||||||
if (cancellationToken.IsCancellationRequested)
|
if (cancellationToken.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
|
task.Forget();
|
||||||
return UniTask.FromCanceled(cancellationToken);
|
return UniTask.FromCanceled(cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -224,6 +225,7 @@ namespace Cysharp.Threading.Tasks
|
|||||||
|
|
||||||
if (cancellationToken.IsCancellationRequested)
|
if (cancellationToken.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
|
task.Forget();
|
||||||
return UniTask.FromCanceled<T>(cancellationToken);
|
return UniTask.FromCanceled<T>(cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -162,6 +162,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -97,6 +97,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -158,6 +158,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -384,6 +388,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -615,6 +623,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -847,6 +859,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1095,6 +1111,10 @@ namespace Cysharp.Threading.Tasks
|
|||||||
{
|
{
|
||||||
TryReturn();
|
TryReturn();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TaskTracker.RemoveTracking(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "com.cysharp.unitask",
|
"name": "com.cysharp.unitask",
|
||||||
"displayName": "UniTask",
|
"displayName": "UniTask",
|
||||||
"author": { "name": "Cysharp, Inc.", "url": "https://cysharp.co.jp/en/" },
|
"author": { "name": "Cysharp, Inc.", "url": "https://cysharp.co.jp/en/" },
|
||||||
"version": "2.5.5",
|
"version": "2.5.6",
|
||||||
"unity": "2018.4",
|
"unity": "2018.4",
|
||||||
"description": "Provides an efficient async/await integration to Unity.",
|
"description": "Provides an efficient async/await integration to Unity.",
|
||||||
"keywords": [ "async/await", "async", "Task", "UniTask" ],
|
"keywords": [ "async/await", "async", "Task", "UniTask" ],
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 894f21dfce4e82343a91661e1ec1a455
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 959c1472a5d812843bedf9341e87af3b
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,133 +0,0 @@
|
|||||||
#if UNITY_EDITOR
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace RuntimeUnitTestToolkit.Editor
|
|
||||||
{
|
|
||||||
// functional declarative construction like flutter.
|
|
||||||
|
|
||||||
internal interface IBuilder
|
|
||||||
{
|
|
||||||
GameObject GameObject { get; }
|
|
||||||
T GetComponent<T>();
|
|
||||||
}
|
|
||||||
|
|
||||||
internal class Builder<T> : IBuilder
|
|
||||||
where T : Component
|
|
||||||
{
|
|
||||||
public T Component1 { get; private set; }
|
|
||||||
public GameObject GameObject { get; private set; }
|
|
||||||
|
|
||||||
public Transform Transform { get { return GameObject.transform; } }
|
|
||||||
public RectTransform RectTransform { get { return GameObject.GetComponent<RectTransform>(); } }
|
|
||||||
|
|
||||||
public Action<GameObject> SetTarget
|
|
||||||
{
|
|
||||||
set
|
|
||||||
{
|
|
||||||
value(this.GameObject);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public IBuilder Child
|
|
||||||
{
|
|
||||||
set
|
|
||||||
{
|
|
||||||
value.GameObject.transform.SetParent(GameObject.transform);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public IBuilder[] Children
|
|
||||||
{
|
|
||||||
set
|
|
||||||
{
|
|
||||||
foreach (var item in value)
|
|
||||||
{
|
|
||||||
item.GameObject.transform.SetParent(GameObject.transform);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder(string name)
|
|
||||||
{
|
|
||||||
this.GameObject = new GameObject(name);
|
|
||||||
this.Component1 = GameObject.AddComponent<T>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder(string name, out T referenceSelf) // out primary reference.
|
|
||||||
{
|
|
||||||
this.GameObject = new GameObject(name);
|
|
||||||
this.Component1 = GameObject.AddComponent<T>();
|
|
||||||
referenceSelf = this.Component1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TComponent GetComponent<TComponent>()
|
|
||||||
{
|
|
||||||
return this.GameObject.GetComponent<TComponent>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal class Builder<T1, T2> : Builder<T1>
|
|
||||||
where T1 : Component
|
|
||||||
where T2 : Component
|
|
||||||
{
|
|
||||||
public T2 Component2 { get; private set; }
|
|
||||||
|
|
||||||
public Builder(string name)
|
|
||||||
: base(name)
|
|
||||||
{
|
|
||||||
this.Component2 = GameObject.AddComponent<T2>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder(string name, out T1 referenceSelf)
|
|
||||||
: base(name, out referenceSelf)
|
|
||||||
{
|
|
||||||
this.Component2 = GameObject.AddComponent<T2>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal class Builder<T1, T2, T3> : Builder<T1, T2>
|
|
||||||
where T1 : Component
|
|
||||||
where T2 : Component
|
|
||||||
where T3 : Component
|
|
||||||
{
|
|
||||||
public T3 Component3 { get; private set; }
|
|
||||||
|
|
||||||
public Builder(string name)
|
|
||||||
: base(name)
|
|
||||||
{
|
|
||||||
this.Component3 = GameObject.AddComponent<T3>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder(string name, out T1 referenceSelf)
|
|
||||||
: base(name, out referenceSelf)
|
|
||||||
{
|
|
||||||
this.Component3 = GameObject.AddComponent<T3>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal class Builder<T1, T2, T3, T4> : Builder<T1, T2, T3>
|
|
||||||
where T1 : Component
|
|
||||||
where T2 : Component
|
|
||||||
where T3 : Component
|
|
||||||
where T4 : Component
|
|
||||||
{
|
|
||||||
public T4 Component4 { get; private set; }
|
|
||||||
|
|
||||||
public Builder(string name)
|
|
||||||
: base(name)
|
|
||||||
{
|
|
||||||
this.Component4 = GameObject.AddComponent<T4>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder(string name, out T1 referenceSelf)
|
|
||||||
: base(name, out referenceSelf)
|
|
||||||
{
|
|
||||||
this.Component4 = GameObject.AddComponent<T4>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 8760bbbab905a534eb6fb7b61b736926
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,345 +0,0 @@
|
|||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
|
|
||||||
// Settings MenuItems.
|
|
||||||
|
|
||||||
public static partial class UnitTestBuilder
|
|
||||||
{
|
|
||||||
[MenuItem("Test/Settings/ScriptBackend/Mono", validate = true, priority = 1)]
|
|
||||||
static bool ValidateScriptBackendMono()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/ScriptBackend/Mono", LoadOrGetDefaultSettings().ScriptBackend == ScriptingImplementation.Mono2x);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/ScriptBackend/Mono", validate = false, priority = 1)]
|
|
||||||
static void ScriptBackendMono()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.UseCurrentScriptBackend = false;
|
|
||||||
settings.ScriptBackend = ScriptingImplementation.Mono2x;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/ScriptBackend/IL2CPP", validate = true, priority = 2)]
|
|
||||||
static bool ValidateScriptBackendIL2CPP()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/ScriptBackend/IL2CPP", LoadOrGetDefaultSettings().ScriptBackend == ScriptingImplementation.IL2CPP);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/ScriptBackend/IL2CPP", validate = false, priority = 2)]
|
|
||||||
static void ScriptBackendIL2CPP()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.UseCurrentScriptBackend = false;
|
|
||||||
settings.ScriptBackend = ScriptingImplementation.IL2CPP;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/AutoRunPlayer", validate = true, priority = 3)]
|
|
||||||
static bool ValidateAutoRun()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/AutoRunPlayer", LoadOrGetDefaultSettings().AutoRunPlayer);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/AutoRunPlayer", validate = false, priority = 3)]
|
|
||||||
static void AutoRun()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.AutoRunPlayer = !settings.AutoRunPlayer;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/Headless", validate = true, priority = 4)]
|
|
||||||
static bool ValidateHeadless()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/Headless", LoadOrGetDefaultSettings().Headless);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/Headless", validate = false, priority = 4)]
|
|
||||||
static void Headless()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.Headless = !settings.Headless;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/DisableAutoClose", validate = true, priority = 5)]
|
|
||||||
static bool ValidateDisableAutoClose()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/DisableAutoClose", LoadOrGetDefaultSettings().DisableAutoClose);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/DisableAutoClose", validate = false, priority = 5)]
|
|
||||||
static void DisableAutoClose()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.DisableAutoClose = !settings.DisableAutoClose;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
// generated
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
void Main()
|
|
||||||
{
|
|
||||||
var sb = new StringBuilder();
|
|
||||||
|
|
||||||
var p = 1;
|
|
||||||
foreach (var target in Enum.GetNames(typeof(BuildTarget)))
|
|
||||||
{
|
|
||||||
var path = $"Test/Settings/BuildTarget/{target}";
|
|
||||||
var priority = p++;
|
|
||||||
|
|
||||||
var template = $@"
|
|
||||||
[MenuItem(""{path}"", validate = true, priority = {priority})]
|
|
||||||
static bool ValidateBuildTarget{target}()
|
|
||||||
{{
|
|
||||||
Menu.SetChecked(""{path}"", LoadOrGetDefaultSettings().BuildTarget == BuildTarget.{target});
|
|
||||||
return true;
|
|
||||||
}}
|
|
||||||
|
|
||||||
[MenuItem(""{path}"", validate = false, priority = {priority})]
|
|
||||||
static void BuildTarget{target}()
|
|
||||||
{{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.UseCurrentBuildTarget = false;
|
|
||||||
settings.BuildTarget = BuildTarget.{target};
|
|
||||||
SaveSettings(settings);
|
|
||||||
}}";
|
|
||||||
|
|
||||||
sb.AppendLine(template);
|
|
||||||
}
|
|
||||||
|
|
||||||
sb.ToString().Dump();
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum BuildTarget
|
|
||||||
{
|
|
||||||
StandaloneWindows,
|
|
||||||
StandaloneWindows64,
|
|
||||||
StandaloneLinux,
|
|
||||||
StandaloneLinux64,
|
|
||||||
StandaloneOSX,
|
|
||||||
WebGL,
|
|
||||||
iOS,
|
|
||||||
Android,
|
|
||||||
WSAPlayer,
|
|
||||||
PS4,
|
|
||||||
XboxOne,
|
|
||||||
Switch,
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/StandaloneWindows", validate = true, priority = 1)]
|
|
||||||
static bool ValidateBuildTargetStandaloneWindows()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/BuildTarget/StandaloneWindows", LoadOrGetDefaultSettings().BuildTarget == BuildTarget.StandaloneWindows);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/StandaloneWindows", validate = false, priority = 1)]
|
|
||||||
static void BuildTargetStandaloneWindows()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.UseCurrentBuildTarget = false;
|
|
||||||
settings.BuildTarget = BuildTarget.StandaloneWindows;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/StandaloneWindows64", validate = true, priority = 2)]
|
|
||||||
static bool ValidateBuildTargetStandaloneWindows64()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/BuildTarget/StandaloneWindows64", LoadOrGetDefaultSettings().BuildTarget == BuildTarget.StandaloneWindows64);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/StandaloneWindows64", validate = false, priority = 2)]
|
|
||||||
static void BuildTargetStandaloneWindows64()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.UseCurrentBuildTarget = false;
|
|
||||||
settings.BuildTarget = BuildTarget.StandaloneWindows64;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if !UNITY_2019_2_OR_NEWER
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/StandaloneLinux", validate = true, priority = 3)]
|
|
||||||
static bool ValidateBuildTargetStandaloneLinux()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/BuildTarget/StandaloneLinux", LoadOrGetDefaultSettings().BuildTarget == BuildTarget.StandaloneLinux);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/StandaloneLinux", validate = false, priority = 3)]
|
|
||||||
static void BuildTargetStandaloneLinux()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.UseCurrentBuildTarget = false;
|
|
||||||
settings.BuildTarget = BuildTarget.StandaloneLinux;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/StandaloneLinux64", validate = true, priority = 4)]
|
|
||||||
static bool ValidateBuildTargetStandaloneLinux64()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/BuildTarget/StandaloneLinux64", LoadOrGetDefaultSettings().BuildTarget == BuildTarget.StandaloneLinux64);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/StandaloneLinux64", validate = false, priority = 4)]
|
|
||||||
static void BuildTargetStandaloneLinux64()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.UseCurrentBuildTarget = false;
|
|
||||||
settings.BuildTarget = BuildTarget.StandaloneLinux64;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/StandaloneOSX", validate = true, priority = 5)]
|
|
||||||
static bool ValidateBuildTargetStandaloneOSX()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/BuildTarget/StandaloneOSX", LoadOrGetDefaultSettings().BuildTarget == BuildTarget.StandaloneOSX);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/StandaloneOSX", validate = false, priority = 5)]
|
|
||||||
static void BuildTargetStandaloneOSX()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.UseCurrentBuildTarget = false;
|
|
||||||
settings.BuildTarget = BuildTarget.StandaloneOSX;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/WebGL", validate = true, priority = 6)]
|
|
||||||
static bool ValidateBuildTargetWebGL()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/BuildTarget/WebGL", LoadOrGetDefaultSettings().BuildTarget == BuildTarget.WebGL);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/WebGL", validate = false, priority = 6)]
|
|
||||||
static void BuildTargetWebGL()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.UseCurrentBuildTarget = false;
|
|
||||||
settings.BuildTarget = BuildTarget.WebGL;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/iOS", validate = true, priority = 7)]
|
|
||||||
static bool ValidateBuildTargetiOS()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/BuildTarget/iOS", LoadOrGetDefaultSettings().BuildTarget == BuildTarget.iOS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/iOS", validate = false, priority = 7)]
|
|
||||||
static void BuildTargetiOS()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.UseCurrentBuildTarget = false;
|
|
||||||
settings.BuildTarget = BuildTarget.iOS;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/Android", validate = true, priority = 8)]
|
|
||||||
static bool ValidateBuildTargetAndroid()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/BuildTarget/Android", LoadOrGetDefaultSettings().BuildTarget == BuildTarget.Android);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/Android", validate = false, priority = 8)]
|
|
||||||
static void BuildTargetAndroid()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.UseCurrentBuildTarget = false;
|
|
||||||
settings.BuildTarget = BuildTarget.Android;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/WSAPlayer", validate = true, priority = 9)]
|
|
||||||
static bool ValidateBuildTargetWSAPlayer()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/BuildTarget/WSAPlayer", LoadOrGetDefaultSettings().BuildTarget == BuildTarget.WSAPlayer);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/WSAPlayer", validate = false, priority = 9)]
|
|
||||||
static void BuildTargetWSAPlayer()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.UseCurrentBuildTarget = false;
|
|
||||||
settings.BuildTarget = BuildTarget.WSAPlayer;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/PS4", validate = true, priority = 10)]
|
|
||||||
static bool ValidateBuildTargetPS4()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/BuildTarget/PS4", LoadOrGetDefaultSettings().BuildTarget == BuildTarget.PS4);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/PS4", validate = false, priority = 10)]
|
|
||||||
static void BuildTargetPS4()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.UseCurrentBuildTarget = false;
|
|
||||||
settings.BuildTarget = BuildTarget.PS4;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/XboxOne", validate = true, priority = 11)]
|
|
||||||
static bool ValidateBuildTargetXboxOne()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/BuildTarget/XboxOne", LoadOrGetDefaultSettings().BuildTarget == BuildTarget.XboxOne);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/XboxOne", validate = false, priority = 11)]
|
|
||||||
static void BuildTargetXboxOne()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.UseCurrentBuildTarget = false;
|
|
||||||
settings.BuildTarget = BuildTarget.XboxOne;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/Switch", validate = true, priority = 12)]
|
|
||||||
static bool ValidateBuildTargetSwitch()
|
|
||||||
{
|
|
||||||
Menu.SetChecked("Test/Settings/BuildTarget/Switch", LoadOrGetDefaultSettings().BuildTarget == BuildTarget.Switch);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[MenuItem("Test/Settings/BuildTarget/Switch", validate = false, priority = 12)]
|
|
||||||
static void BuildTargetSwitch()
|
|
||||||
{
|
|
||||||
var settings = LoadOrGetDefaultSettings();
|
|
||||||
settings.UseCurrentBuildTarget = false;
|
|
||||||
settings.BuildTarget = BuildTarget.Switch;
|
|
||||||
SaveSettings(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,546 +0,0 @@
|
|||||||
#if UNITY_EDITOR
|
|
||||||
|
|
||||||
using RuntimeUnitTestToolkit;
|
|
||||||
using RuntimeUnitTestToolkit.Editor;
|
|
||||||
using System;
|
|
||||||
using UnityEditor;
|
|
||||||
using UnityEditor.Build.Reporting;
|
|
||||||
using UnityEditor.SceneManagement;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.EventSystems;
|
|
||||||
using UnityEngine.SceneManagement;
|
|
||||||
using UnityEngine.UI;
|
|
||||||
|
|
||||||
internal class RuntimeUnitTestSettings
|
|
||||||
{
|
|
||||||
public ScriptingImplementation ScriptBackend;
|
|
||||||
public bool UseCurrentScriptBackend;
|
|
||||||
public BuildTarget BuildTarget;
|
|
||||||
public bool UseCurrentBuildTarget;
|
|
||||||
|
|
||||||
public bool Headless;
|
|
||||||
public bool AutoRunPlayer;
|
|
||||||
public bool DisableAutoClose;
|
|
||||||
|
|
||||||
public RuntimeUnitTestSettings()
|
|
||||||
{
|
|
||||||
UseCurrentBuildTarget = true;
|
|
||||||
UseCurrentScriptBackend = true;
|
|
||||||
Headless = false;
|
|
||||||
AutoRunPlayer = true;
|
|
||||||
DisableAutoClose = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string ToString()
|
|
||||||
{
|
|
||||||
return $"{ScriptBackend} {BuildTarget} Headless:{Headless} AutoRunPlayer:{AutoRunPlayer} DisableAutoClose:{DisableAutoClose}";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// no namespace(because invoke from commandline)
|
|
||||||
public static partial class UnitTestBuilder
|
|
||||||
{
|
|
||||||
const string SettingsKeyBase = "RuntimeUnitTest.Settings.";
|
|
||||||
|
|
||||||
[MenuItem("Test/BuildUnitTest")]
|
|
||||||
public static void BuildUnitTest()
|
|
||||||
{
|
|
||||||
var settings = new RuntimeUnitTestSettings(); // default
|
|
||||||
|
|
||||||
string buildPath = null;
|
|
||||||
|
|
||||||
if (Application.isBatchMode) // from commandline
|
|
||||||
{
|
|
||||||
settings.AutoRunPlayer = false;
|
|
||||||
settings.DisableAutoClose = false;
|
|
||||||
|
|
||||||
var cmdArgs = Environment.GetCommandLineArgs();
|
|
||||||
for (int i = 0; i < cmdArgs.Length; i++)
|
|
||||||
{
|
|
||||||
if (string.Equals(cmdArgs[i].Trim('-', '/'), "ScriptBackend", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
settings.UseCurrentScriptBackend = false;
|
|
||||||
var str = cmdArgs[++i];
|
|
||||||
if (str.StartsWith("mono", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
settings.ScriptBackend = ScriptingImplementation.Mono2x;
|
|
||||||
}
|
|
||||||
else if (str.StartsWith("IL2CPP", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
settings.ScriptBackend = ScriptingImplementation.IL2CPP;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
settings.ScriptBackend = (ScriptingImplementation)Enum.Parse(typeof(ScriptingImplementation), str, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (string.Equals(cmdArgs[i].Trim('-', '/'), "BuildTarget", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
settings.UseCurrentBuildTarget = false;
|
|
||||||
settings.BuildTarget = (BuildTarget)Enum.Parse(typeof(BuildTarget), cmdArgs[++i], true);
|
|
||||||
}
|
|
||||||
else if (string.Equals(cmdArgs[i].Trim('-', '/'), "Headless", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
settings.Headless = true;
|
|
||||||
}
|
|
||||||
else if (string.Equals(cmdArgs[i].Trim('-', '/'), "buildPath", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
buildPath = cmdArgs[++i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var key = SettingsKeyBase + Application.productName;
|
|
||||||
var settingsValue = EditorPrefs.GetString(key, null);
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (!string.IsNullOrWhiteSpace(settingsValue))
|
|
||||||
{
|
|
||||||
settings = JsonUtility.FromJson<RuntimeUnitTestSettings>(settingsValue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
UnityEngine.Debug.LogError("Fail to load RuntimeUnitTest settings");
|
|
||||||
EditorPrefs.SetString(key, null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (settings.UseCurrentBuildTarget)
|
|
||||||
{
|
|
||||||
settings.BuildTarget = EditorUserBuildSettings.activeBuildTarget;
|
|
||||||
}
|
|
||||||
if (settings.UseCurrentScriptBackend)
|
|
||||||
{
|
|
||||||
settings.ScriptBackend = PlayerSettings.GetScriptingBackend(ToBuildTargetGroup(settings.BuildTarget));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (buildPath == null)
|
|
||||||
{
|
|
||||||
buildPath = $"bin/UnitTest/{settings.BuildTarget}_{settings.ScriptBackend}/test" + GetExtensionForBuildTarget(settings.BuildTarget);
|
|
||||||
}
|
|
||||||
|
|
||||||
var originalScene = SceneManager.GetActiveScene().path;
|
|
||||||
|
|
||||||
BuildUnitTest(buildPath, settings.ScriptBackend, settings.BuildTarget, settings.Headless, settings.AutoRunPlayer, settings.DisableAutoClose);
|
|
||||||
|
|
||||||
// reopen original scene
|
|
||||||
if (!string.IsNullOrWhiteSpace(originalScene))
|
|
||||||
{
|
|
||||||
EditorSceneManager.OpenScene(originalScene, OpenSceneMode.Single);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
[MenuItem("Test/LoadUnitTestScene")]
|
|
||||||
public static void LoadUnitTestScene()
|
|
||||||
{
|
|
||||||
var scene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
|
|
||||||
BuildUnitTestRunnerScene();
|
|
||||||
EditorSceneManager.MarkSceneDirty(scene);
|
|
||||||
}
|
|
||||||
|
|
||||||
static RuntimeUnitTestSettings LoadOrGetDefaultSettings()
|
|
||||||
{
|
|
||||||
var key = SettingsKeyBase + Application.productName;
|
|
||||||
|
|
||||||
var settingsValue = EditorPrefs.GetString(key, null);
|
|
||||||
RuntimeUnitTestSettings settings = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (!string.IsNullOrWhiteSpace(settingsValue))
|
|
||||||
{
|
|
||||||
settings = JsonUtility.FromJson<RuntimeUnitTestSettings>(settingsValue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
UnityEngine.Debug.LogError("Fail to load RuntimeUnitTest settings");
|
|
||||||
EditorPrefs.SetString(key, null);
|
|
||||||
settings = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (settings == null)
|
|
||||||
{
|
|
||||||
// default
|
|
||||||
settings = new RuntimeUnitTestSettings
|
|
||||||
{
|
|
||||||
UseCurrentBuildTarget = true,
|
|
||||||
UseCurrentScriptBackend = true,
|
|
||||||
Headless = false,
|
|
||||||
AutoRunPlayer = true,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return settings;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void SaveSettings(RuntimeUnitTestSettings settings)
|
|
||||||
{
|
|
||||||
var key = SettingsKeyBase + Application.productName;
|
|
||||||
EditorPrefs.SetString(key, JsonUtility.ToJson(settings));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void BuildUnitTest(string buildPath, ScriptingImplementation scriptBackend, BuildTarget buildTarget, bool headless, bool autoRunPlayer, bool disableAutoClose)
|
|
||||||
{
|
|
||||||
var sceneName = "Assets/TempRuntimeUnitTestScene_" + DateTimeOffset.UtcNow.ToUnixTimeSeconds();
|
|
||||||
if (disableAutoClose)
|
|
||||||
{
|
|
||||||
sceneName += "_DisableAutoClose";
|
|
||||||
}
|
|
||||||
sceneName += ".unity";
|
|
||||||
|
|
||||||
var scene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
|
|
||||||
|
|
||||||
BuildUnitTestRunnerScene();
|
|
||||||
|
|
||||||
EditorSceneManager.MarkSceneDirty(scene);
|
|
||||||
AssetDatabase.SaveAssets();
|
|
||||||
EditorSceneManager.SaveScene(scene, sceneName, false);
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Build(sceneName, buildPath, new RuntimeUnitTestSettings { ScriptBackend = scriptBackend, BuildTarget = buildTarget, Headless = headless, AutoRunPlayer = autoRunPlayer, DisableAutoClose = disableAutoClose });
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
AssetDatabase.DeleteAsset(sceneName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static UnitTestRunner BuildUnitTestRunnerScene()
|
|
||||||
{
|
|
||||||
const string kStandardSpritePath = "UI/Skin/UISprite.psd";
|
|
||||||
const string kBackgroundSpritePath = "UI/Skin/Background.psd";
|
|
||||||
var uisprite = AssetDatabase.GetBuiltinExtraResource<Sprite>(kStandardSpritePath);
|
|
||||||
var background = AssetDatabase.GetBuiltinExtraResource<Sprite>(kBackgroundSpritePath);
|
|
||||||
|
|
||||||
ScrollRect buttonList;
|
|
||||||
VerticalLayoutGroup listLayout;
|
|
||||||
Scrollbar refListScrollbar;
|
|
||||||
ScrollRect logList;
|
|
||||||
Scrollbar refLogScrollbar;
|
|
||||||
Button clearButton;
|
|
||||||
Text logText;
|
|
||||||
|
|
||||||
// Flutter like coded build utility
|
|
||||||
|
|
||||||
var rootObject = new Builder<Camera>("SceneRoot")
|
|
||||||
{
|
|
||||||
Children = new IBuilder[] {
|
|
||||||
new Builder<EventSystem, StandaloneInputModule>("EventSystem"),
|
|
||||||
new Builder<Canvas, CanvasScaler, GraphicRaycaster>("Canvas") {
|
|
||||||
Component1 = { renderMode = RenderMode.ScreenSpaceOverlay },
|
|
||||||
Children = new IBuilder[] {
|
|
||||||
new Builder<HorizontalLayoutGroup, CanvasRenderer>("HorizontalSplitter") {
|
|
||||||
RectTransform = { anchorMin = new Vector2(0, 0), anchorMax = new Vector2(1, 1) },
|
|
||||||
Component1 = { childControlWidth = true, childControlHeight = true, spacing = 10 },
|
|
||||||
Children = new IBuilder[] {
|
|
||||||
new Builder<ScrollRect, CanvasRenderer>("ButtonList", out buttonList) {
|
|
||||||
RectTransform = { pivot = new Vector2(0.5f, 0.5f) },
|
|
||||||
Component1 = { horizontal =false, vertical = true, movementType = ScrollRect.MovementType.Clamped },
|
|
||||||
Children = new IBuilder[] {
|
|
||||||
new Builder<VerticalLayoutGroup, ContentSizeFitter>("ListLayoutToAttach", out listLayout) {
|
|
||||||
RectTransform = { anchorMin = new Vector2(0, 0), anchorMax = new Vector2(1, 1), pivot = new Vector2(0, 1) },
|
|
||||||
Component1 = { childControlWidth = true, childControlHeight = true, childForceExpandWidth = true, childForceExpandHeight = false, spacing = 10, padding = new RectOffset(10,20,10,10) },
|
|
||||||
Component2 = { horizontalFit = ContentSizeFitter.FitMode.Unconstrained, verticalFit = ContentSizeFitter.FitMode.PreferredSize },
|
|
||||||
SetTarget = self => { buttonList.content = self.GetComponent<RectTransform>(); },
|
|
||||||
Child = new Builder<Button, Image, LayoutElement>("ClearButton", out clearButton) {
|
|
||||||
Component2 = { sprite = uisprite, type = Image.Type.Sliced },
|
|
||||||
Component3 = { minHeight = 50 },
|
|
||||||
SetTarget = self => { self.GetComponent<Button>().targetGraphic = self.GetComponent<Graphic>(); },
|
|
||||||
Child = new Builder<Text>("ButtonText") {
|
|
||||||
RectTransform = { anchorMin = new Vector2(0, 0), anchorMax = new Vector2(1, 1), pivot = new Vector2(0.5f, 0.5f) },
|
|
||||||
Component1 = { text = "Clear", color = FromRGB(50, 50, 50), alignment = TextAnchor.MiddleCenter, fontSize = 24, lineSpacing = 1 }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Builder<Scrollbar,Image>("ListScrollbar", out refListScrollbar) {
|
|
||||||
RectTransform = { anchorMin = new Vector2(1, 0), anchorMax = new Vector2(1, 1) },
|
|
||||||
Component1 = { navigation = new Navigation{ mode = Navigation.Mode.None }, direction = Scrollbar.Direction.BottomToTop, size = 1.0f },
|
|
||||||
Component2 = { sprite = background, type = Image.Type.Sliced },
|
|
||||||
SetTarget = self => { buttonList.verticalScrollbar = self.GetComponent<Scrollbar>(); },
|
|
||||||
Child = new Builder<RectTransform>("Sliding Area") {
|
|
||||||
RectTransform = { anchorMin = new Vector2(0, 0), anchorMax = new Vector2(1, 1) },
|
|
||||||
Child = new Builder<Image>("Handle") {
|
|
||||||
Component1 = { sprite = uisprite, type = Image.Type.Sliced },
|
|
||||||
SetTarget = self =>
|
|
||||||
{
|
|
||||||
refListScrollbar.targetGraphic = self.GetComponent<Graphic>();
|
|
||||||
refListScrollbar.handleRect = self.GetComponent<RectTransform>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new Builder<ScrollRect, CanvasRenderer>("ScrollableText", out logList) {
|
|
||||||
RectTransform = { pivot = new Vector2(0.5f, 0.5f) },
|
|
||||||
Component1 = { horizontal =false, vertical = true, movementType = ScrollRect.MovementType.Elastic, elasticity = 0.1f },
|
|
||||||
Children = new IBuilder[] {
|
|
||||||
new Builder<Text, ContentSizeFitter>("Log", out logText) {
|
|
||||||
RectTransform = { anchorMin = new Vector2(0, 0), anchorMax = new Vector2(1, 1), pivot = new Vector2(0, 1) },
|
|
||||||
Component1 = { fontSize = 24, lineSpacing = 1, supportRichText = true, alignment = TextAnchor.UpperLeft, horizontalOverflow = HorizontalWrapMode.Wrap, verticalOverflow = VerticalWrapMode.Truncate },
|
|
||||||
Component2 = { horizontalFit = ContentSizeFitter.FitMode.Unconstrained, verticalFit = ContentSizeFitter.FitMode.PreferredSize },
|
|
||||||
SetTarget = self => { logList.content = self.GetComponent<RectTransform>(); }
|
|
||||||
},
|
|
||||||
new Builder<Scrollbar,Image>("LogScrollbar", out refLogScrollbar) {
|
|
||||||
RectTransform = { anchorMin = new Vector2(1, 0), anchorMax = new Vector2(1, 1) },
|
|
||||||
Component1 = { navigation = new Navigation{ mode = Navigation.Mode.None }, direction = Scrollbar.Direction.BottomToTop, size = 1.0f },
|
|
||||||
Component2 = { sprite = background, type = Image.Type.Sliced },
|
|
||||||
SetTarget = self => { logList.verticalScrollbar = self.GetComponent<Scrollbar>(); },
|
|
||||||
Child = new Builder<RectTransform>("Sliding Area2") {
|
|
||||||
RectTransform = { anchorMin = new Vector2(0, 0), anchorMax = new Vector2(1, 1) },
|
|
||||||
Child = new Builder<Image>("Handle2") {
|
|
||||||
Component1 = { sprite = uisprite, type = Image.Type.Sliced },
|
|
||||||
SetTarget = self =>
|
|
||||||
{
|
|
||||||
refLogScrollbar.targetGraphic = self.GetComponent<Graphic>();
|
|
||||||
refLogScrollbar.handleRect = self.GetComponent<RectTransform>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// size modify after build complete:)
|
|
||||||
{
|
|
||||||
var rect = GameObject.Find("HorizontalSplitter").GetComponent<RectTransform>();
|
|
||||||
rect.offsetMin = new Vector2(0, 0);
|
|
||||||
rect.offsetMax = new Vector2(0, 0);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
var rect = GameObject.Find("ListLayoutToAttach").GetComponent<RectTransform>();
|
|
||||||
rect.offsetMin = new Vector2(0, 0);
|
|
||||||
rect.offsetMax = new Vector2(0, 0);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
var rect = GameObject.Find("ListScrollbar").GetComponent<RectTransform>();
|
|
||||||
rect.offsetMin = new Vector2(0, 0);
|
|
||||||
rect.offsetMax = new Vector2(0, 0);
|
|
||||||
rect.sizeDelta = new Vector2(30, 0);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
var rect = GameObject.Find("ClearButton").GetComponent<RectTransform>();
|
|
||||||
rect.offsetMin = new Vector2(0, 0);
|
|
||||||
rect.offsetMax = new Vector2(0, 0);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
var rect = GameObject.Find("Sliding Area").GetComponent<RectTransform>();
|
|
||||||
rect.offsetMin = new Vector2(0, 0);
|
|
||||||
rect.offsetMax = new Vector2(0, 0);
|
|
||||||
rect.sizeDelta = new Vector2(-20, -20);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
var rect = GameObject.Find("Handle").GetComponent<RectTransform>();
|
|
||||||
rect.offsetMin = new Vector2(0, 0);
|
|
||||||
rect.offsetMax = new Vector2(0, 0);
|
|
||||||
rect.sizeDelta = new Vector2(20, 20);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
var rect = GameObject.Find("ButtonText").GetComponent<RectTransform>();
|
|
||||||
rect.offsetMin = new Vector2(0, 0);
|
|
||||||
rect.offsetMax = new Vector2(0, 0);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
var rect = GameObject.Find("Log").GetComponent<RectTransform>();
|
|
||||||
rect.offsetMin = new Vector2(15, 0);
|
|
||||||
rect.offsetMax = new Vector2(-20, 0);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
var rect = GameObject.Find("LogScrollbar").GetComponent<RectTransform>();
|
|
||||||
rect.offsetMin = new Vector2(-30, 0);
|
|
||||||
rect.offsetMax = new Vector2(0, 0);
|
|
||||||
rect.sizeDelta = new Vector2(30, 0);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
var rect = GameObject.Find("Sliding Area2").GetComponent<RectTransform>();
|
|
||||||
rect.offsetMin = new Vector2(0, 0);
|
|
||||||
rect.offsetMax = new Vector2(0, 0);
|
|
||||||
rect.sizeDelta = new Vector2(-20, -20);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
var rect = GameObject.Find("Handle2").GetComponent<RectTransform>();
|
|
||||||
rect.offsetMin = new Vector2(0, 0);
|
|
||||||
rect.offsetMax = new Vector2(0, 0);
|
|
||||||
rect.sizeDelta = new Vector2(20, 20);
|
|
||||||
}
|
|
||||||
|
|
||||||
// add test script
|
|
||||||
var runner = rootObject.GameObject.AddComponent<UnitTestRunner>();
|
|
||||||
runner.clearButton = clearButton;
|
|
||||||
runner.list = listLayout.gameObject.GetComponent<RectTransform>();
|
|
||||||
runner.listScrollBar = refListScrollbar;
|
|
||||||
runner.logText = logText;
|
|
||||||
runner.logScrollBar = refLogScrollbar;
|
|
||||||
|
|
||||||
return runner;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Build(string sceneName, string buildPath, RuntimeUnitTestSettings settings)
|
|
||||||
{
|
|
||||||
var options = BuildOptions.BuildScriptsOnly | BuildOptions.IncludeTestAssemblies;
|
|
||||||
if (settings.AutoRunPlayer)
|
|
||||||
{
|
|
||||||
options |= BuildOptions.AutoRunPlayer;
|
|
||||||
}
|
|
||||||
if (settings.Headless)
|
|
||||||
{
|
|
||||||
options |= BuildOptions.EnableHeadlessMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
var targetGroup = ToBuildTargetGroup(settings.BuildTarget);
|
|
||||||
var currentBackend = PlayerSettings.GetScriptingBackend(targetGroup);
|
|
||||||
if (currentBackend != settings.ScriptBackend)
|
|
||||||
{
|
|
||||||
UnityEngine.Debug.Log("Modify ScriptBackend to " + settings.ScriptBackend);
|
|
||||||
PlayerSettings.SetScriptingBackend(targetGroup, settings.ScriptBackend);
|
|
||||||
}
|
|
||||||
|
|
||||||
var buildOptions = new BuildPlayerOptions
|
|
||||||
{
|
|
||||||
target = settings.BuildTarget,
|
|
||||||
targetGroup = targetGroup,
|
|
||||||
options = options,
|
|
||||||
scenes = new[] { sceneName },
|
|
||||||
locationPathName = buildPath
|
|
||||||
};
|
|
||||||
|
|
||||||
UnityEngine.Debug.Log("UnitTest Build Start, " + settings.ToString());
|
|
||||||
|
|
||||||
var buildReport = BuildPipeline.BuildPlayer(buildOptions);
|
|
||||||
|
|
||||||
if (currentBackend != settings.ScriptBackend)
|
|
||||||
{
|
|
||||||
UnityEngine.Debug.Log("Restore ScriptBackend to " + currentBackend);
|
|
||||||
PlayerSettings.SetScriptingBackend(targetGroup, currentBackend);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (buildReport.summary.result != BuildResult.Succeeded)
|
|
||||||
{
|
|
||||||
// Note: show error summary?
|
|
||||||
// Debug.LogError(buildReport.SummarizeErrors());
|
|
||||||
UnityEngine.Debug.LogError("UnitTest Build Failed.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
UnityEngine.Debug.Log("UnitTest Build Completed, binary located: " + buildOptions.locationPathName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static Color FromRGB(int r, int g, int b)
|
|
||||||
{
|
|
||||||
return new Color(r / 255f, g / 255f, b / 255f);
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool IsWindows(BuildTarget buildTarget)
|
|
||||||
{
|
|
||||||
switch (buildTarget)
|
|
||||||
{
|
|
||||||
case BuildTarget.StandaloneWindows:
|
|
||||||
case BuildTarget.StandaloneWindows64:
|
|
||||||
case BuildTarget.WSAPlayer:
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static string GetExtensionForBuildTarget(BuildTarget buildTarget)
|
|
||||||
{
|
|
||||||
switch (buildTarget)
|
|
||||||
{
|
|
||||||
case BuildTarget.StandaloneWindows:
|
|
||||||
case BuildTarget.StandaloneWindows64:
|
|
||||||
case BuildTarget.WSAPlayer:
|
|
||||||
return ".exe";
|
|
||||||
case BuildTarget.StandaloneOSX:
|
|
||||||
return ".app";
|
|
||||||
case BuildTarget.Android:
|
|
||||||
return ".apk";
|
|
||||||
default:
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static BuildTargetGroup ToBuildTargetGroup(BuildTarget buildTarget)
|
|
||||||
{
|
|
||||||
#pragma warning disable CS0618
|
|
||||||
switch (buildTarget)
|
|
||||||
{
|
|
||||||
#if UNITY_2017_3_OR_NEWER
|
|
||||||
case BuildTarget.StandaloneOSX:
|
|
||||||
#else
|
|
||||||
case BuildTarget.StandaloneOSXIntel:
|
|
||||||
case BuildTarget.StandaloneOSXIntel64:
|
|
||||||
case BuildTarget.StandaloneOSXUniversal:
|
|
||||||
#endif // UNITY_2017_3_OR_NEWER
|
|
||||||
case BuildTarget.StandaloneWindows:
|
|
||||||
case BuildTarget.StandaloneWindows64:
|
|
||||||
case BuildTarget.StandaloneLinux64:
|
|
||||||
#if !UNITY_2019_2_OR_NEWER
|
|
||||||
case BuildTarget.StandaloneLinux:
|
|
||||||
case BuildTarget.StandaloneLinuxUniversal:
|
|
||||||
#endif // !UNITY_2019_2_OR_NEWER
|
|
||||||
return BuildTargetGroup.Standalone;
|
|
||||||
case (BuildTarget)6:
|
|
||||||
case (BuildTarget)7:
|
|
||||||
case BuildTarget.WebGL:
|
|
||||||
return BuildTargetGroup.WebGL;
|
|
||||||
case BuildTarget.iOS:
|
|
||||||
return BuildTargetGroup.iOS;
|
|
||||||
case BuildTarget.PS3:
|
|
||||||
return BuildTargetGroup.PS3;
|
|
||||||
case BuildTarget.PS4:
|
|
||||||
return BuildTargetGroup.PS4;
|
|
||||||
case BuildTarget.XBOX360:
|
|
||||||
return BuildTargetGroup.XBOX360;
|
|
||||||
case BuildTarget.Android:
|
|
||||||
return BuildTargetGroup.Android;
|
|
||||||
case BuildTarget.WSAPlayer:
|
|
||||||
return BuildTargetGroup.WSA;
|
|
||||||
case BuildTarget.WP8Player:
|
|
||||||
return BuildTargetGroup.WP8;
|
|
||||||
case BuildTarget.Tizen:
|
|
||||||
return BuildTargetGroup.Tizen;
|
|
||||||
case BuildTarget.PSP2:
|
|
||||||
return BuildTargetGroup.PSP2;
|
|
||||||
case BuildTarget.PSM:
|
|
||||||
return BuildTargetGroup.PSM;
|
|
||||||
case BuildTarget.XboxOne:
|
|
||||||
return BuildTargetGroup.XboxOne;
|
|
||||||
case BuildTarget.SamsungTV:
|
|
||||||
return BuildTargetGroup.SamsungTV;
|
|
||||||
case BuildTarget.N3DS:
|
|
||||||
return BuildTargetGroup.N3DS;
|
|
||||||
case BuildTarget.WiiU:
|
|
||||||
return BuildTargetGroup.WiiU;
|
|
||||||
case BuildTarget.tvOS:
|
|
||||||
return BuildTargetGroup.tvOS;
|
|
||||||
case BuildTarget.Switch:
|
|
||||||
return BuildTargetGroup.Switch;
|
|
||||||
case BuildTarget.Lumin:
|
|
||||||
return BuildTargetGroup.Lumin;
|
|
||||||
case BuildTarget.BlackBerry:
|
|
||||||
return BuildTargetGroup.BlackBerry;
|
|
||||||
case BuildTarget.NoTarget:
|
|
||||||
default:
|
|
||||||
return BuildTargetGroup.Unknown;
|
|
||||||
}
|
|
||||||
#pragma warning restore CS0618
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 3518da33b6245d341a0ef3670ee9268b
|
|
||||||
timeCreated: 1488689723
|
|
||||||
licenseType: Pro
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "RuntimeUnitTestToolkit",
|
|
||||||
"references": [
|
|
||||||
],
|
|
||||||
"optionalUnityReferences": [
|
|
||||||
"TestAssemblies"
|
|
||||||
],
|
|
||||||
"includePlatforms": [],
|
|
||||||
"excludePlatforms": [],
|
|
||||||
"allowUnsafeCode": false,
|
|
||||||
"overrideReferences": false,
|
|
||||||
"precompiledReferences": [],
|
|
||||||
"autoReferenced": true,
|
|
||||||
"defineConstraints": [],
|
|
||||||
"versionDefines": []
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 14c4fea4b238088479114ba2ffe195f9
|
|
||||||
AssemblyDefinitionImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,684 +0,0 @@
|
|||||||
using NUnit.Framework;
|
|
||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Reflection;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.Events;
|
|
||||||
using UnityEngine.TestTools;
|
|
||||||
using UnityEngine.UI;
|
|
||||||
|
|
||||||
namespace RuntimeUnitTestToolkit
|
|
||||||
{
|
|
||||||
public class UnitTestRunner : MonoBehaviour
|
|
||||||
{
|
|
||||||
// object is IEnumerator or Func<IEnumerator>
|
|
||||||
Dictionary<string, List<TestKeyValuePair>> tests = new Dictionary<string, List<TestKeyValuePair>>();
|
|
||||||
|
|
||||||
List<Pair> additionalActionsOnFirst = new List<Pair>();
|
|
||||||
|
|
||||||
public Button clearButton;
|
|
||||||
public RectTransform list;
|
|
||||||
public Scrollbar listScrollBar;
|
|
||||||
|
|
||||||
public Text logText;
|
|
||||||
public Scrollbar logScrollBar;
|
|
||||||
|
|
||||||
readonly Color passColor = new Color(0f, 1f, 0f, 1f); // green
|
|
||||||
readonly Color failColor = new Color(1f, 0f, 0f, 1f); // red
|
|
||||||
readonly Color normalColor = new Color(1f, 1f, 1f, 1f); // white
|
|
||||||
|
|
||||||
bool allTestGreen = true;
|
|
||||||
bool logClear = false;
|
|
||||||
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
UnityEngine.Application.logMessageReceived += (a, b, c) =>
|
|
||||||
{
|
|
||||||
if (a.Contains("Mesh can not have more than 65000 vertices"))
|
|
||||||
{
|
|
||||||
logClear = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AppendToGraphicText("[" + c + "]" + a + "\n");
|
|
||||||
WriteToConsole("[" + c + "]" + a);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// register all test types
|
|
||||||
foreach (var item in GetTestTargetTypes())
|
|
||||||
{
|
|
||||||
RegisterAllMethods(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
var executeAll = new List<Func<Coroutine>>();
|
|
||||||
foreach (var ___item in tests)
|
|
||||||
{
|
|
||||||
var actionList = ___item; // be careful, capture in lambda
|
|
||||||
|
|
||||||
executeAll.Add(() => StartCoroutine(RunTestInCoroutine(actionList)));
|
|
||||||
Add(actionList.Key, () => StartCoroutine(RunTestInCoroutine(actionList)));
|
|
||||||
}
|
|
||||||
|
|
||||||
var executeAllButton = Add("Run All Tests", () => StartCoroutine(ExecuteAllInCoroutine(executeAll)));
|
|
||||||
|
|
||||||
clearButton.gameObject.GetComponent<Image>().color = new Color(170 / 255f, 170 / 255f, 170 / 255f, 1);
|
|
||||||
executeAllButton.gameObject.GetComponent<Image>().color = new Color(250 / 255f, 150 / 255f, 150 / 255f, 1);
|
|
||||||
executeAllButton.transform.SetSiblingIndex(1);
|
|
||||||
|
|
||||||
additionalActionsOnFirst.Reverse();
|
|
||||||
foreach (var item in additionalActionsOnFirst)
|
|
||||||
{
|
|
||||||
var newButton = GameObject.Instantiate(clearButton);
|
|
||||||
newButton.name = item.Name;
|
|
||||||
newButton.onClick.RemoveAllListeners();
|
|
||||||
newButton.GetComponentInChildren<Text>().text = item.Name;
|
|
||||||
newButton.onClick.AddListener(item.Action);
|
|
||||||
newButton.transform.SetParent(list);
|
|
||||||
newButton.transform.SetSiblingIndex(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
clearButton.onClick.AddListener(() =>
|
|
||||||
{
|
|
||||||
logText.text = "";
|
|
||||||
foreach (var btn in list.GetComponentsInChildren<Button>())
|
|
||||||
{
|
|
||||||
btn.interactable = true;
|
|
||||||
btn.GetComponent<Image>().color = normalColor;
|
|
||||||
}
|
|
||||||
executeAllButton.gameObject.GetComponent<Image>().color = new Color(250 / 255f, 150 / 255f, 150 / 255f, 1);
|
|
||||||
});
|
|
||||||
|
|
||||||
listScrollBar.value = 1;
|
|
||||||
logScrollBar.value = 1;
|
|
||||||
|
|
||||||
if (Application.isBatchMode)
|
|
||||||
{
|
|
||||||
// run immediately in player
|
|
||||||
StartCoroutine(ExecuteAllInCoroutine(executeAll));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
if (Application.isBatchMode)
|
|
||||||
{
|
|
||||||
// when failed(can not start runner), quit immediately.
|
|
||||||
WriteToConsole(ex.ToString());
|
|
||||||
Application.Quit(1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Button Add(string title, UnityAction test)
|
|
||||||
{
|
|
||||||
var newButton = GameObject.Instantiate(clearButton);
|
|
||||||
newButton.name = title;
|
|
||||||
newButton.onClick.RemoveAllListeners();
|
|
||||||
newButton.GetComponentInChildren<Text>().text = title;
|
|
||||||
newButton.onClick.AddListener(test);
|
|
||||||
|
|
||||||
newButton.transform.SetParent(list);
|
|
||||||
return newButton;
|
|
||||||
}
|
|
||||||
|
|
||||||
static IEnumerable<Type> GetTestTargetTypes()
|
|
||||||
{
|
|
||||||
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
|
|
||||||
{
|
|
||||||
var n = assembly.FullName;
|
|
||||||
if (n.StartsWith("UnityEngine")) continue;
|
|
||||||
if (n.StartsWith("mscorlib")) continue;
|
|
||||||
if (n.StartsWith("System")) continue;
|
|
||||||
|
|
||||||
foreach (var item in assembly.GetTypes())
|
|
||||||
{
|
|
||||||
foreach (var method in item.GetMethods())
|
|
||||||
{
|
|
||||||
TestAttribute t1 = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
t1 = method.GetCustomAttribute<TestAttribute>(true);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Debug.Log("TestAttribute Load Fail, Assembly:" + assembly.FullName);
|
|
||||||
Debug.LogException(ex);
|
|
||||||
goto NEXT_ASSEMBLY;
|
|
||||||
}
|
|
||||||
if (t1 != null)
|
|
||||||
{
|
|
||||||
yield return item;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
UnityTestAttribute t2 = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
t2 = method.GetCustomAttribute<UnityTestAttribute>(true);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Debug.Log("UnityTestAttribute Load Fail, Assembly:" + assembly.FullName);
|
|
||||||
Debug.LogException(ex);
|
|
||||||
goto NEXT_ASSEMBLY;
|
|
||||||
}
|
|
||||||
if (t2 != null)
|
|
||||||
{
|
|
||||||
yield return item;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
NEXT_ASSEMBLY:
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AddTest(string group, string title, Action test, List<Action> setups, List<Action> teardowns)
|
|
||||||
{
|
|
||||||
List<TestKeyValuePair> list;
|
|
||||||
if (!tests.TryGetValue(group, out list))
|
|
||||||
{
|
|
||||||
list = new List<TestKeyValuePair>();
|
|
||||||
tests[group] = list;
|
|
||||||
}
|
|
||||||
|
|
||||||
list.Add(new TestKeyValuePair(title, test, setups, teardowns));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AddAsyncTest(string group, string title, Func<IEnumerator> asyncTestCoroutine, List<Action> setups, List<Action> teardowns)
|
|
||||||
{
|
|
||||||
List<TestKeyValuePair> list;
|
|
||||||
if (!tests.TryGetValue(group, out list))
|
|
||||||
{
|
|
||||||
list = new List<TestKeyValuePair>();
|
|
||||||
tests[group] = list;
|
|
||||||
}
|
|
||||||
|
|
||||||
list.Add(new TestKeyValuePair(title, asyncTestCoroutine, setups, teardowns));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AddCutomAction(string name, UnityAction action)
|
|
||||||
{
|
|
||||||
additionalActionsOnFirst.Add(new Pair { Name = name, Action = action });
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void RegisterAllMethods<T>()
|
|
||||||
where T : new()
|
|
||||||
{
|
|
||||||
RegisterAllMethods(typeof(T));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void RegisterAllMethods(Type testType)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var test = Activator.CreateInstance(testType);
|
|
||||||
|
|
||||||
var methods = testType.GetMethods(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);
|
|
||||||
List<Action> setups = new List<Action>();
|
|
||||||
List<Action> teardowns = new List<Action>();
|
|
||||||
foreach (var item in methods)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var setup = item.GetCustomAttribute<NUnit.Framework.SetUpAttribute>(true);
|
|
||||||
if (setup != null)
|
|
||||||
{
|
|
||||||
setups.Add((Action)Delegate.CreateDelegate(typeof(Action), test, item));
|
|
||||||
}
|
|
||||||
var teardown = item.GetCustomAttribute<NUnit.Framework.TearDownAttribute>(true);
|
|
||||||
if (teardown != null)
|
|
||||||
{
|
|
||||||
teardowns.Add((Action)Delegate.CreateDelegate(typeof(Action), test, item));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
UnityEngine.Debug.LogError(testType.Name + "." + item.Name + " failed to register setup/teardown method, exception: " + e.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var item in methods)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var iteratorTest = item.GetCustomAttribute<UnityEngine.TestTools.UnityTestAttribute>(true);
|
|
||||||
if (iteratorTest != null)
|
|
||||||
{
|
|
||||||
if (item.GetParameters().Length == 0 && item.ReturnType == typeof(IEnumerator))
|
|
||||||
{
|
|
||||||
var factory = (Func<IEnumerator>)Delegate.CreateDelegate(typeof(Func<IEnumerator>), test, item);
|
|
||||||
AddAsyncTest(factory.Target.GetType().Name, factory.Method.Name, factory, setups, teardowns);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var testData = GetTestData(item);
|
|
||||||
if (testData.Count != 0)
|
|
||||||
{
|
|
||||||
foreach (var item2 in testData)
|
|
||||||
{
|
|
||||||
Func<IEnumerator> factory;
|
|
||||||
if (item.IsGenericMethod)
|
|
||||||
{
|
|
||||||
var method2 = InferGenericType(item, item2);
|
|
||||||
factory = () => (IEnumerator)method2.Invoke(test, item2);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
factory = () => (IEnumerator)item.Invoke(test, item2);
|
|
||||||
}
|
|
||||||
var name = item.Name + "(" + string.Join(", ", item2.Select(x => x?.ToString() ?? "null")) + ")";
|
|
||||||
name = name.Replace(Char.MinValue, ' ').Replace(Char.MaxValue, ' ').Replace("<", "[").Replace(">", "]");
|
|
||||||
AddAsyncTest(test.GetType().Name, name, factory, setups, teardowns);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
UnityEngine.Debug.Log(testType.Name + "." + item.Name + " currently does not supported in RuntumeUnitTestToolkit(multiple parameter without TestCase or return type is invalid).");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var standardTest = item.GetCustomAttribute<NUnit.Framework.TestAttribute>(true);
|
|
||||||
if (standardTest != null)
|
|
||||||
{
|
|
||||||
if (item.GetParameters().Length == 0 && item.ReturnType == typeof(void))
|
|
||||||
{
|
|
||||||
var invoke = (Action)Delegate.CreateDelegate(typeof(Action), test, item);
|
|
||||||
AddTest(invoke.Target.GetType().Name, invoke.Method.Name, invoke, setups, teardowns);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var testData = GetTestData(item);
|
|
||||||
if (testData.Count != 0)
|
|
||||||
{
|
|
||||||
foreach (var item2 in testData)
|
|
||||||
{
|
|
||||||
Action invoke = null;
|
|
||||||
if (item.IsGenericMethod)
|
|
||||||
{
|
|
||||||
var method2 = InferGenericType(item, item2);
|
|
||||||
invoke = () => method2.Invoke(test, item2);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
invoke = () => item.Invoke(test, item2);
|
|
||||||
}
|
|
||||||
var name = item.Name + "(" + string.Join(", ", item2.Select(x => x?.ToString() ?? "null")) + ")";
|
|
||||||
name = name.Replace(Char.MinValue, ' ').Replace(Char.MaxValue, ' ').Replace("<", "[").Replace(">", "]");
|
|
||||||
AddTest(test.GetType().Name, name, invoke, setups, teardowns);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
UnityEngine.Debug.Log(testType.Name + "." + item.Name + " currently does not supported in RuntumeUnitTestToolkit(multiple parameter without TestCase or return type is invalid).");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
UnityEngine.Debug.LogError(testType.Name + "." + item.Name + " failed to register method, exception: " + e.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Debug.LogException(ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
List<object[]> GetTestData(MethodInfo methodInfo)
|
|
||||||
{
|
|
||||||
List<object[]> testCases = new List<object[]>();
|
|
||||||
|
|
||||||
var inlineData = methodInfo.GetCustomAttributes<NUnit.Framework.TestCaseAttribute>(true);
|
|
||||||
foreach (var item in inlineData)
|
|
||||||
{
|
|
||||||
testCases.Add(item.Arguments);
|
|
||||||
}
|
|
||||||
|
|
||||||
var sourceData = methodInfo.GetCustomAttributes<NUnit.Framework.TestCaseSourceAttribute>(true);
|
|
||||||
foreach (var item in sourceData)
|
|
||||||
{
|
|
||||||
var enumerator = GetTestCaseSource(methodInfo, item.SourceType, item.SourceName, item.MethodParams);
|
|
||||||
foreach (var item2 in enumerator)
|
|
||||||
{
|
|
||||||
var item3 = item2 as IEnumerable; // object[][]
|
|
||||||
if (item3 != null)
|
|
||||||
{
|
|
||||||
var l = new List<object>();
|
|
||||||
foreach (var item4 in item3)
|
|
||||||
{
|
|
||||||
l.Add(item4);
|
|
||||||
}
|
|
||||||
testCases.Add(l.ToArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return testCases;
|
|
||||||
}
|
|
||||||
|
|
||||||
IEnumerable GetTestCaseSource(MethodInfo method, Type sourceType, string sourceName, object[] methodParams)
|
|
||||||
{
|
|
||||||
Type type = sourceType ?? method.DeclaringType;
|
|
||||||
|
|
||||||
MemberInfo[] member = type.GetMember(sourceName, BindingFlags.FlattenHierarchy | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static);
|
|
||||||
if (member.Length == 1)
|
|
||||||
{
|
|
||||||
MemberInfo memberInfo = member[0];
|
|
||||||
FieldInfo fieldInfo = memberInfo as FieldInfo;
|
|
||||||
if ((object)fieldInfo != null)
|
|
||||||
{
|
|
||||||
return (!fieldInfo.IsStatic) ? ReturnErrorAsParameter("The sourceName specified on a TestCaseSourceAttribute must refer to a static field, property or method.") : ((methodParams == null) ? ((IEnumerable)fieldInfo.GetValue(null)) : ReturnErrorAsParameter("You have specified a data source field but also given a set of parameters. Fields cannot take parameters, please revise the 3rd parameter passed to the TestCaseSourceAttribute and either remove it or specify a method."));
|
|
||||||
}
|
|
||||||
PropertyInfo propertyInfo = memberInfo as PropertyInfo;
|
|
||||||
if ((object)propertyInfo != null)
|
|
||||||
{
|
|
||||||
return (!propertyInfo.GetGetMethod(nonPublic: true).IsStatic) ? ReturnErrorAsParameter("The sourceName specified on a TestCaseSourceAttribute must refer to a static field, property or method.") : ((methodParams == null) ? ((IEnumerable)propertyInfo.GetValue(null, null)) : ReturnErrorAsParameter("You have specified a data source property but also given a set of parameters. Properties cannot take parameters, please revise the 3rd parameter passed to the TestCaseSource attribute and either remove it or specify a method."));
|
|
||||||
}
|
|
||||||
MethodInfo methodInfo = memberInfo as MethodInfo;
|
|
||||||
if ((object)methodInfo != null)
|
|
||||||
{
|
|
||||||
return (!methodInfo.IsStatic) ? ReturnErrorAsParameter("The sourceName specified on a TestCaseSourceAttribute must refer to a static field, property or method.") : ((methodParams == null || methodInfo.GetParameters().Length == methodParams.Length) ? ((IEnumerable)methodInfo.Invoke(null, methodParams)) : ReturnErrorAsParameter("You have given the wrong number of arguments to the method in the TestCaseSourceAttribute, please check the number of parameters passed in the object is correct in the 3rd parameter for the TestCaseSourceAttribute and this matches the number of parameters in the target method and try again."));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
MethodInfo InferGenericType(MethodInfo methodInfo, object[] parameters)
|
|
||||||
{
|
|
||||||
var set = new HashSet<Type>();
|
|
||||||
List<Type> genericParameters = new List<Type>();
|
|
||||||
foreach (var item in methodInfo.GetParameters()
|
|
||||||
.Select((x, i) => new { x.ParameterType, i })
|
|
||||||
.Where(x => x.ParameterType.IsGenericParameter)
|
|
||||||
.OrderBy(x => x.ParameterType.GenericParameterPosition))
|
|
||||||
{
|
|
||||||
if (set.Add(item.ParameterType)) // DistinctBy
|
|
||||||
{
|
|
||||||
genericParameters.Add(parameters[item.i].GetType());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return methodInfo.MakeGenericMethod(genericParameters.ToArray());
|
|
||||||
}
|
|
||||||
|
|
||||||
IEnumerable ReturnErrorAsParameter(string name)
|
|
||||||
{
|
|
||||||
throw new Exception(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
System.Collections.IEnumerator ScrollLogToEndNextFrame()
|
|
||||||
{
|
|
||||||
yield return null;
|
|
||||||
yield return null;
|
|
||||||
logScrollBar.value = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
IEnumerator RunTestInCoroutine(KeyValuePair<string, List<TestKeyValuePair>> actionList)
|
|
||||||
{
|
|
||||||
Button self = null;
|
|
||||||
foreach (var btn in list.GetComponentsInChildren<Button>())
|
|
||||||
{
|
|
||||||
btn.interactable = false;
|
|
||||||
if (btn.name == actionList.Key) self = btn;
|
|
||||||
}
|
|
||||||
if (self != null)
|
|
||||||
{
|
|
||||||
self.GetComponent<Image>().color = normalColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
var allGreen = true;
|
|
||||||
|
|
||||||
AppendToGraphicText("<color=yellow>" + actionList.Key + "</color>\n");
|
|
||||||
WriteToConsole("Begin Test Class: " + actionList.Key);
|
|
||||||
yield return null;
|
|
||||||
|
|
||||||
var totalExecutionTime = new List<double>();
|
|
||||||
foreach (var item2 in actionList.Value)
|
|
||||||
{
|
|
||||||
// setup
|
|
||||||
try
|
|
||||||
{
|
|
||||||
foreach (var setup in item2.Setups)
|
|
||||||
{
|
|
||||||
setup();
|
|
||||||
}
|
|
||||||
|
|
||||||
// before start, cleanup
|
|
||||||
GC.Collect();
|
|
||||||
GC.WaitForPendingFinalizers();
|
|
||||||
GC.Collect();
|
|
||||||
|
|
||||||
AppendToGraphicText("<color=teal>" + item2.Key + "</color>\n");
|
|
||||||
yield return null;
|
|
||||||
|
|
||||||
var v = item2.Value;
|
|
||||||
|
|
||||||
var methodStopwatch = System.Diagnostics.Stopwatch.StartNew();
|
|
||||||
Exception exception = null;
|
|
||||||
if (v is Action)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
((Action)v).Invoke();
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
exception = ex;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var coroutineFactory = (Func<IEnumerator>)v;
|
|
||||||
IEnumerator coroutine = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
coroutine = coroutineFactory();
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
exception = ex;
|
|
||||||
}
|
|
||||||
if (exception == null)
|
|
||||||
{
|
|
||||||
yield return StartCoroutine(UnwrapEnumerator(coroutine, ex =>
|
|
||||||
{
|
|
||||||
exception = ex;
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
methodStopwatch.Stop();
|
|
||||||
totalExecutionTime.Add(methodStopwatch.Elapsed.TotalMilliseconds);
|
|
||||||
if (exception == null)
|
|
||||||
{
|
|
||||||
AppendToGraphicText("OK, " + methodStopwatch.Elapsed.TotalMilliseconds.ToString("0.00") + "ms\n");
|
|
||||||
WriteToConsoleResult(item2.Key + ", " + methodStopwatch.Elapsed.TotalMilliseconds.ToString("0.00") + "ms", true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AppendToGraphicText("<color=red>" + exception.ToString() + "</color>\n");
|
|
||||||
WriteToConsoleResult(item2.Key + ", " + exception.ToString(), false);
|
|
||||||
allGreen = false;
|
|
||||||
allTestGreen = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
foreach (var teardown in item2.Teardowns)
|
|
||||||
{
|
|
||||||
teardown();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
AppendToGraphicText("[" + actionList.Key + "]" + totalExecutionTime.Sum().ToString("0.00") + "ms\n\n");
|
|
||||||
foreach (var btn in list.GetComponentsInChildren<Button>()) btn.interactable = true;
|
|
||||||
if (self != null)
|
|
||||||
{
|
|
||||||
self.GetComponent<Image>().color = allGreen ? passColor : failColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
yield return StartCoroutine(ScrollLogToEndNextFrame());
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
IEnumerator ExecuteAllInCoroutine(List<Func<Coroutine>> tests)
|
|
||||||
{
|
|
||||||
allTestGreen = true;
|
|
||||||
|
|
||||||
foreach (var item in tests)
|
|
||||||
{
|
|
||||||
yield return item();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Application.isBatchMode)
|
|
||||||
{
|
|
||||||
var scene = UnityEngine.SceneManagement.SceneManager.GetActiveScene();
|
|
||||||
bool disableAutoClose = (scene.name.Contains("DisableAutoClose"));
|
|
||||||
|
|
||||||
if (allTestGreen)
|
|
||||||
{
|
|
||||||
WriteToConsole("Test Complete Successfully");
|
|
||||||
if (!disableAutoClose)
|
|
||||||
{
|
|
||||||
Application.Quit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
WriteToConsole("Test Failed, please see [NG] log.");
|
|
||||||
if (!disableAutoClose)
|
|
||||||
{
|
|
||||||
Application.Quit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
IEnumerator UnwrapEnumerator(IEnumerator enumerator, Action<Exception> exceptionCallback)
|
|
||||||
{
|
|
||||||
var hasNext = true;
|
|
||||||
while (hasNext)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
hasNext = enumerator.MoveNext();
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
exceptionCallback(ex);
|
|
||||||
hasNext = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hasNext)
|
|
||||||
{
|
|
||||||
// unwrap self for bug of Unity
|
|
||||||
// https://issuetracker.unity3d.com/issues/does-not-stop-coroutine-when-it-throws-exception-in-movenext-at-first-frame
|
|
||||||
var moreCoroutine = enumerator.Current as IEnumerator;
|
|
||||||
if (moreCoroutine != null)
|
|
||||||
{
|
|
||||||
yield return StartCoroutine(UnwrapEnumerator(moreCoroutine, ex =>
|
|
||||||
{
|
|
||||||
exceptionCallback(ex);
|
|
||||||
hasNext = false;
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
yield return enumerator.Current;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void WriteToConsole(string msg)
|
|
||||||
{
|
|
||||||
if (Application.isBatchMode)
|
|
||||||
{
|
|
||||||
Console.WriteLine(msg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void AppendToGraphicText(string msg)
|
|
||||||
{
|
|
||||||
if (!Application.isBatchMode)
|
|
||||||
{
|
|
||||||
if (logClear)
|
|
||||||
{
|
|
||||||
logText.text = "";
|
|
||||||
logClear = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
logText.text += msg;
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
logClear = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void WriteToConsoleResult(string msg, bool green)
|
|
||||||
{
|
|
||||||
if (Application.isBatchMode)
|
|
||||||
{
|
|
||||||
if (!green)
|
|
||||||
{
|
|
||||||
var currentForeground = Console.ForegroundColor;
|
|
||||||
Console.ForegroundColor = ConsoleColor.Red;
|
|
||||||
Console.Write("[NG]");
|
|
||||||
Console.ForegroundColor = currentForeground;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var currentForeground = Console.ForegroundColor;
|
|
||||||
Console.ForegroundColor = ConsoleColor.Green;
|
|
||||||
Console.Write("[OK]");
|
|
||||||
Console.ForegroundColor = currentForeground;
|
|
||||||
}
|
|
||||||
|
|
||||||
System.Console.WriteLine(msg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Pair
|
|
||||||
{
|
|
||||||
public string Name;
|
|
||||||
public UnityAction Action;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class TestKeyValuePair
|
|
||||||
{
|
|
||||||
public string Key;
|
|
||||||
/// <summary>IEnumerator or Func[IEnumerator]</summary>
|
|
||||||
public object Value;
|
|
||||||
public List<Action> Setups;
|
|
||||||
public List<Action> Teardowns;
|
|
||||||
|
|
||||||
public TestKeyValuePair(string key, object value, List<Action> setups, List<Action> teardowns)
|
|
||||||
{
|
|
||||||
this.Key = key;
|
|
||||||
this.Value = value;
|
|
||||||
this.Setups = setups;
|
|
||||||
this.Teardowns = teardowns;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 660baed073888b8438569f57e42679b2
|
|
||||||
timeCreated: 1476793308
|
|
||||||
licenseType: Pro
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "com.cysharp.runtimeunittesttoolkit",
|
|
||||||
"displayName": "RuntimeUnitTestToolkit",
|
|
||||||
"version": "2.3.0",
|
|
||||||
"unity": "2018.3",
|
|
||||||
"description": "CLI/GUI Frontend of Unity Test Runner to test on any platform.",
|
|
||||||
"keywords": ["test"],
|
|
||||||
"category": "Tests",
|
|
||||||
"dependencies": {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: b7883c7ac5d6ea4409a229aeab14e796
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -20,8 +20,11 @@ using System.IO;
|
|||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// using DG.Tweening;
|
// using DG.Tweening;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public struct MyJob : IJob
|
public struct MyJob : IJob
|
||||||
{
|
{
|
||||||
public int loopCount;
|
public int loopCount;
|
||||||
|
|||||||
@@ -38,12 +38,11 @@ RenderSettings:
|
|||||||
m_ReflectionIntensity: 1
|
m_ReflectionIntensity: 1
|
||||||
m_CustomReflection: {fileID: 0}
|
m_CustomReflection: {fileID: 0}
|
||||||
m_Sun: {fileID: 0}
|
m_Sun: {fileID: 0}
|
||||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
m_UseRadianceAmbientProbe: 0
|
m_UseRadianceAmbientProbe: 0
|
||||||
--- !u!157 &3
|
--- !u!157 &3
|
||||||
LightmapSettings:
|
LightmapSettings:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
serializedVersion: 11
|
serializedVersion: 12
|
||||||
m_GIWorkflowMode: 1
|
m_GIWorkflowMode: 1
|
||||||
m_GISettings:
|
m_GISettings:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
@@ -98,13 +97,14 @@ LightmapSettings:
|
|||||||
m_TrainingDataDestination: TrainingData
|
m_TrainingDataDestination: TrainingData
|
||||||
m_LightProbeSampleCountMultiplier: 4
|
m_LightProbeSampleCountMultiplier: 4
|
||||||
m_LightingDataAsset: {fileID: 0}
|
m_LightingDataAsset: {fileID: 0}
|
||||||
m_UseShadowmask: 1
|
m_LightingSettings: {fileID: 4890085278179872738, guid: 814185d368762ed45a2298d112780689,
|
||||||
|
type: 2}
|
||||||
--- !u!196 &4
|
--- !u!196 &4
|
||||||
NavMeshSettings:
|
NavMeshSettings:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_BuildSettings:
|
m_BuildSettings:
|
||||||
serializedVersion: 2
|
serializedVersion: 3
|
||||||
agentTypeID: 0
|
agentTypeID: 0
|
||||||
agentRadius: 0.5
|
agentRadius: 0.5
|
||||||
agentHeight: 2
|
agentHeight: 2
|
||||||
@@ -117,7 +117,9 @@ NavMeshSettings:
|
|||||||
cellSize: 0.16666667
|
cellSize: 0.16666667
|
||||||
manualTileSize: 0
|
manualTileSize: 0
|
||||||
tileSize: 256
|
tileSize: 256
|
||||||
accuratePlacement: 0
|
buildHeightMesh: 0
|
||||||
|
maxJobWorkers: 0
|
||||||
|
preserveTilesOutsideBounds: 0
|
||||||
debug:
|
debug:
|
||||||
m_Flags: 0
|
m_Flags: 0
|
||||||
m_NavMeshData: {fileID: 0}
|
m_NavMeshData: {fileID: 0}
|
||||||
@@ -150,10 +152,10 @@ RectTransform:
|
|||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 1584557232}
|
- {fileID: 1584557232}
|
||||||
m_Father: {fileID: 1556045508}
|
m_Father: {fileID: 1556045508}
|
||||||
m_RootOrder: 0
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
@@ -174,6 +176,7 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Navigation:
|
m_Navigation:
|
||||||
m_Mode: 3
|
m_Mode: 3
|
||||||
|
m_WrapAround: 0
|
||||||
m_SelectOnUp: {fileID: 0}
|
m_SelectOnUp: {fileID: 0}
|
||||||
m_SelectOnDown: {fileID: 0}
|
m_SelectOnDown: {fileID: 0}
|
||||||
m_SelectOnLeft: {fileID: 0}
|
m_SelectOnLeft: {fileID: 0}
|
||||||
@@ -218,6 +221,8 @@ MonoBehaviour:
|
|||||||
m_Material: {fileID: 0}
|
m_Material: {fileID: 0}
|
||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -270,9 +275,17 @@ Camera:
|
|||||||
m_projectionMatrixMode: 1
|
m_projectionMatrixMode: 1
|
||||||
m_GateFitMode: 2
|
m_GateFitMode: 2
|
||||||
m_FOVAxisMode: 0
|
m_FOVAxisMode: 0
|
||||||
|
m_Iso: 200
|
||||||
|
m_ShutterSpeed: 0.005
|
||||||
|
m_Aperture: 16
|
||||||
|
m_FocusDistance: 10
|
||||||
|
m_FocalLength: 50
|
||||||
|
m_BladeCount: 5
|
||||||
|
m_Curvature: {x: 2, y: 11}
|
||||||
|
m_BarrelClipping: 0.25
|
||||||
|
m_Anamorphism: 0
|
||||||
m_SensorSize: {x: 36, y: 24}
|
m_SensorSize: {x: 36, y: 24}
|
||||||
m_LensShift: {x: 0, y: 0}
|
m_LensShift: {x: 0, y: 0}
|
||||||
m_FocalLength: 50
|
|
||||||
m_NormalizedViewPortRect:
|
m_NormalizedViewPortRect:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
@@ -306,12 +319,13 @@ Transform:
|
|||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 518730348}
|
m_GameObject: {fileID: 518730348}
|
||||||
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 488, y: 418, z: 0}
|
m_LocalPosition: {x: 488, y: 418, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 1
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &519420028
|
--- !u!1 &519420028
|
||||||
GameObject:
|
GameObject:
|
||||||
@@ -352,9 +366,11 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: f0bc6c75abb2e0b47a25aa49bfd488ed, type: 3}
|
m_Script: {fileID: 11500000, guid: f0bc6c75abb2e0b47a25aa49bfd488ed, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
camera: {fileID: 518730349}
|
mycamera: {fileID: 0}
|
||||||
okButton: {fileID: 16537672}
|
okButton: {fileID: 16537672}
|
||||||
cancelButton: {fileID: 628393011}
|
cancelButton: {fileID: 628393011}
|
||||||
|
RP1:
|
||||||
|
latestValue: 0
|
||||||
text: {fileID: 2101290655}
|
text: {fileID: 2101290655}
|
||||||
button: {fileID: 0}
|
button: {fileID: 0}
|
||||||
--- !u!20 &519420031
|
--- !u!20 &519420031
|
||||||
@@ -371,9 +387,17 @@ Camera:
|
|||||||
m_projectionMatrixMode: 1
|
m_projectionMatrixMode: 1
|
||||||
m_GateFitMode: 2
|
m_GateFitMode: 2
|
||||||
m_FOVAxisMode: 0
|
m_FOVAxisMode: 0
|
||||||
|
m_Iso: 200
|
||||||
|
m_ShutterSpeed: 0.005
|
||||||
|
m_Aperture: 16
|
||||||
|
m_FocusDistance: 10
|
||||||
|
m_FocalLength: 50
|
||||||
|
m_BladeCount: 5
|
||||||
|
m_Curvature: {x: 2, y: 11}
|
||||||
|
m_BarrelClipping: 0.25
|
||||||
|
m_Anamorphism: 0
|
||||||
m_SensorSize: {x: 36, y: 24}
|
m_SensorSize: {x: 36, y: 24}
|
||||||
m_LensShift: {x: 0, y: 0}
|
m_LensShift: {x: 0, y: 0}
|
||||||
m_FocalLength: 50
|
|
||||||
m_NormalizedViewPortRect:
|
m_NormalizedViewPortRect:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
@@ -407,12 +431,13 @@ Transform:
|
|||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 519420028}
|
m_GameObject: {fileID: 519420028}
|
||||||
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: -10}
|
m_LocalPosition: {x: 0, y: 0, z: -10}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &628393009
|
--- !u!1 &628393009
|
||||||
GameObject:
|
GameObject:
|
||||||
@@ -443,10 +468,10 @@ RectTransform:
|
|||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 865871445}
|
- {fileID: 865871445}
|
||||||
m_Father: {fileID: 1556045508}
|
m_Father: {fileID: 1556045508}
|
||||||
m_RootOrder: 1
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
@@ -467,6 +492,7 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Navigation:
|
m_Navigation:
|
||||||
m_Mode: 3
|
m_Mode: 3
|
||||||
|
m_WrapAround: 0
|
||||||
m_SelectOnUp: {fileID: 0}
|
m_SelectOnUp: {fileID: 0}
|
||||||
m_SelectOnDown: {fileID: 0}
|
m_SelectOnDown: {fileID: 0}
|
||||||
m_SelectOnLeft: {fileID: 0}
|
m_SelectOnLeft: {fileID: 0}
|
||||||
@@ -511,6 +537,8 @@ MonoBehaviour:
|
|||||||
m_Material: {fileID: 0}
|
m_Material: {fileID: 0}
|
||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -560,9 +588,9 @@ RectTransform:
|
|||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 628393010}
|
m_Father: {fileID: 628393010}
|
||||||
m_RootOrder: 0
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 1, y: 1}
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
@@ -584,6 +612,8 @@ MonoBehaviour:
|
|||||||
m_Material: {fileID: 0}
|
m_Material: {fileID: 0}
|
||||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -639,6 +669,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
|
m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
m_SendPointerHoverToParent: 1
|
||||||
m_HorizontalAxis: Horizontal
|
m_HorizontalAxis: Horizontal
|
||||||
m_VerticalAxis: Vertical
|
m_VerticalAxis: Vertical
|
||||||
m_SubmitButton: Submit
|
m_SubmitButton: Submit
|
||||||
@@ -668,12 +699,13 @@ Transform:
|
|||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 872009839}
|
m_GameObject: {fileID: 872009839}
|
||||||
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 2
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &1556045504
|
--- !u!1 &1556045504
|
||||||
GameObject:
|
GameObject:
|
||||||
@@ -687,6 +719,7 @@ GameObject:
|
|||||||
- component: {fileID: 1556045507}
|
- component: {fileID: 1556045507}
|
||||||
- component: {fileID: 1556045506}
|
- component: {fileID: 1556045506}
|
||||||
- component: {fileID: 1556045505}
|
- component: {fileID: 1556045505}
|
||||||
|
- component: {fileID: 1556045509}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: Canvas
|
m_Name: Canvas
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -733,6 +766,7 @@ MonoBehaviour:
|
|||||||
m_FallbackScreenDPI: 96
|
m_FallbackScreenDPI: 96
|
||||||
m_DefaultSpriteDPI: 96
|
m_DefaultSpriteDPI: 96
|
||||||
m_DynamicPixelsPerUnit: 1
|
m_DynamicPixelsPerUnit: 1
|
||||||
|
m_PresetInfoIsWorld: 0
|
||||||
--- !u!223 &1556045507
|
--- !u!223 &1556045507
|
||||||
Canvas:
|
Canvas:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -750,7 +784,9 @@ Canvas:
|
|||||||
m_OverrideSorting: 0
|
m_OverrideSorting: 0
|
||||||
m_OverridePixelPerfect: 0
|
m_OverridePixelPerfect: 0
|
||||||
m_SortingBucketNormalizedSize: 0
|
m_SortingBucketNormalizedSize: 0
|
||||||
|
m_VertexColorAlwaysGammaSpace: 0
|
||||||
m_AdditionalShaderChannelsFlag: 0
|
m_AdditionalShaderChannelsFlag: 0
|
||||||
|
m_UpdateRectTransformForStandalone: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
m_TargetDisplay: 0
|
m_TargetDisplay: 0
|
||||||
@@ -764,18 +800,30 @@ RectTransform:
|
|||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 16537671}
|
- {fileID: 16537671}
|
||||||
- {fileID: 628393010}
|
- {fileID: 628393010}
|
||||||
- {fileID: 2101290654}
|
- {fileID: 2101290654}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 3
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
m_Pivot: {x: 0, y: 0}
|
m_Pivot: {x: 0, y: 0}
|
||||||
|
--- !u!114 &1556045509
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1556045504}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: a478e5f6126dc184ca902adfb35401b4, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
--- !u!1 &1584557231
|
--- !u!1 &1584557231
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -804,9 +852,9 @@ RectTransform:
|
|||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 16537671}
|
m_Father: {fileID: 16537671}
|
||||||
m_RootOrder: 0
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 1, y: 1}
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
@@ -828,6 +876,8 @@ MonoBehaviour:
|
|||||||
m_Material: {fileID: 0}
|
m_Material: {fileID: 0}
|
||||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -883,9 +933,9 @@ RectTransform:
|
|||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 1556045508}
|
m_Father: {fileID: 1556045508}
|
||||||
m_RootOrder: 2
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
@@ -907,6 +957,8 @@ MonoBehaviour:
|
|||||||
m_Material: {fileID: 0}
|
m_Material: {fileID: 0}
|
||||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
||||||
m_RaycastTarget: 1
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
@@ -932,3 +984,11 @@ CanvasRenderer:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 2101290653}
|
m_GameObject: {fileID: 2101290653}
|
||||||
m_CullTransparentMesh: 0
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!1660057539 &9223372036854775807
|
||||||
|
SceneRoots:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_Roots:
|
||||||
|
- {fileID: 519420032}
|
||||||
|
- {fileID: 518730350}
|
||||||
|
- {fileID: 872009842}
|
||||||
|
- {fileID: 1556045508}
|
||||||
|
|||||||
74
src/UniTask/Assets/Scenes/WaitWhileTest.cs
Normal file
74
src/UniTask/Assets/Scenes/WaitWhileTest.cs
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
using Cysharp.Threading.Tasks;
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
// https://github.com/Cysharp/UniTask/issues/617
|
||||||
|
|
||||||
|
public class WaitWhileTest : MonoBehaviour
|
||||||
|
{
|
||||||
|
private const float c_CallInterval = 0.3f;
|
||||||
|
private float m_JustBeforeCallTime;
|
||||||
|
|
||||||
|
private TaskObj m_TestObj;
|
||||||
|
|
||||||
|
// Start is called before the first frame update
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
m_JustBeforeCallTime = Time.unscaledTime;
|
||||||
|
m_TestObj = new TaskObj();
|
||||||
|
// m_TestObj.Test(CancellationToken.None).Forget();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is called once per frame
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
if (Time.unscaledTime - m_JustBeforeCallTime > c_CallInterval)
|
||||||
|
{
|
||||||
|
m_JustBeforeCallTime = Time.unscaledTime;
|
||||||
|
m_TestObj.Test(CancellationToken.None).Forget();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class TaskObj
|
||||||
|
{
|
||||||
|
private CancellationTokenSource m_CancelTokenSource;
|
||||||
|
private const float c_FinishElapsedTime = 0.1f;
|
||||||
|
private float m_StartTime;
|
||||||
|
public async UniTask Test(CancellationToken token)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
CancelAndDisposeTokenSource();
|
||||||
|
m_CancelTokenSource = CancellationTokenSource.CreateLinkedTokenSource(token);
|
||||||
|
m_StartTime = Time.unscaledTime;
|
||||||
|
await UniTask.WaitWhile(IsContinued, cancellationToken: m_CancelTokenSource.Token, cancelImmediately: true);
|
||||||
|
Debug.Log("Task Finished");
|
||||||
|
}
|
||||||
|
catch (OperationCanceledException)
|
||||||
|
{
|
||||||
|
Debug.LogWarning("Task Canceled");
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
CancelAndDisposeTokenSource();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CancelAndDisposeTokenSource()
|
||||||
|
{
|
||||||
|
m_CancelTokenSource?.Cancel();
|
||||||
|
m_CancelTokenSource?.Dispose();
|
||||||
|
m_CancelTokenSource = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool IsContinued()
|
||||||
|
{
|
||||||
|
return Time.unscaledTime - m_StartTime > c_FinishElapsedTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 12bdad0556e999f4aa82da29415d361f
|
guid: a478e5f6126dc184ca902adfb35401b4
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
@@ -12,7 +12,7 @@ TextureImporter:
|
|||||||
213: 1950921086533113773
|
213: 1950921086533113773
|
||||||
second: sample_texture_2
|
second: sample_texture_2
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 12
|
serializedVersion: 13
|
||||||
mipmaps:
|
mipmaps:
|
||||||
mipMapMode: 0
|
mipMapMode: 0
|
||||||
enableMipMap: 0
|
enableMipMap: 0
|
||||||
@@ -86,6 +86,7 @@ TextureImporter:
|
|||||||
crunchedCompression: 0
|
crunchedCompression: 0
|
||||||
allowsAlphaSplitting: 0
|
allowsAlphaSplitting: 0
|
||||||
overridden: 0
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
androidETC2FallbackOverride: 0
|
androidETC2FallbackOverride: 0
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
@@ -98,6 +99,7 @@ TextureImporter:
|
|||||||
crunchedCompression: 0
|
crunchedCompression: 0
|
||||||
allowsAlphaSplitting: 0
|
allowsAlphaSplitting: 0
|
||||||
overridden: 0
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
androidETC2FallbackOverride: 0
|
androidETC2FallbackOverride: 0
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
@@ -110,6 +112,7 @@ TextureImporter:
|
|||||||
crunchedCompression: 0
|
crunchedCompression: 0
|
||||||
allowsAlphaSplitting: 0
|
allowsAlphaSplitting: 0
|
||||||
overridden: 0
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
androidETC2FallbackOverride: 0
|
androidETC2FallbackOverride: 0
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
@@ -122,6 +125,7 @@ TextureImporter:
|
|||||||
crunchedCompression: 0
|
crunchedCompression: 0
|
||||||
allowsAlphaSplitting: 0
|
allowsAlphaSplitting: 0
|
||||||
overridden: 0
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
androidETC2FallbackOverride: 0
|
androidETC2FallbackOverride: 0
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
spriteSheet:
|
spriteSheet:
|
||||||
@@ -200,7 +204,10 @@ TextureImporter:
|
|||||||
edges: []
|
edges: []
|
||||||
weights: []
|
weights: []
|
||||||
secondaryTextures: []
|
secondaryTextures: []
|
||||||
nameFileIdTable: {}
|
nameFileIdTable:
|
||||||
|
sample_texture_0: -2664112245596591751
|
||||||
|
sample_texture_1: -4606777057269188692
|
||||||
|
sample_texture_2: 1950921086533113773
|
||||||
mipmapLimitGroupName:
|
mipmapLimitGroupName:
|
||||||
pSDRemoveMatte: 0
|
pSDRemoveMatte: 0
|
||||||
userData:
|
userData:
|
||||||
|
|||||||
45
src/UniTask/Packages/manifest.json
Normal file
45
src/UniTask/Packages/manifest.json
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"com.cysharp.runtimeunittesttoolkit": "https://github.com/Cysharp/RuntimeUnitTestToolkit.git?path=RuntimeUnitTestToolkit/Assets/RuntimeUnitTestToolkit#2.6.0",
|
||||||
|
"com.unity.collab-proxy": "2.4.3",
|
||||||
|
"com.unity.ide.rider": "3.0.31",
|
||||||
|
"com.unity.ide.visualstudio": "2.0.22",
|
||||||
|
"com.unity.ide.vscode": "1.2.5",
|
||||||
|
"com.unity.test-framework": "1.1.33",
|
||||||
|
"com.unity.textmeshpro": "3.0.6",
|
||||||
|
"com.unity.timeline": "1.7.6",
|
||||||
|
"com.unity.toolchain.win-x86_64-linux-x86_64": "2.0.9",
|
||||||
|
"com.unity.ugui": "1.0.0",
|
||||||
|
"com.unity.modules.ai": "1.0.0",
|
||||||
|
"com.unity.modules.androidjni": "1.0.0",
|
||||||
|
"com.unity.modules.animation": "1.0.0",
|
||||||
|
"com.unity.modules.assetbundle": "1.0.0",
|
||||||
|
"com.unity.modules.audio": "1.0.0",
|
||||||
|
"com.unity.modules.cloth": "1.0.0",
|
||||||
|
"com.unity.modules.director": "1.0.0",
|
||||||
|
"com.unity.modules.imageconversion": "1.0.0",
|
||||||
|
"com.unity.modules.imgui": "1.0.0",
|
||||||
|
"com.unity.modules.jsonserialize": "1.0.0",
|
||||||
|
"com.unity.modules.particlesystem": "1.0.0",
|
||||||
|
"com.unity.modules.physics": "1.0.0",
|
||||||
|
"com.unity.modules.physics2d": "1.0.0",
|
||||||
|
"com.unity.modules.screencapture": "1.0.0",
|
||||||
|
"com.unity.modules.terrain": "1.0.0",
|
||||||
|
"com.unity.modules.terrainphysics": "1.0.0",
|
||||||
|
"com.unity.modules.tilemap": "1.0.0",
|
||||||
|
"com.unity.modules.ui": "1.0.0",
|
||||||
|
"com.unity.modules.uielements": "1.0.0",
|
||||||
|
"com.unity.modules.umbra": "1.0.0",
|
||||||
|
"com.unity.modules.unityanalytics": "1.0.0",
|
||||||
|
"com.unity.modules.unitywebrequest": "1.0.0",
|
||||||
|
"com.unity.modules.unitywebrequestassetbundle": "1.0.0",
|
||||||
|
"com.unity.modules.unitywebrequestaudio": "1.0.0",
|
||||||
|
"com.unity.modules.unitywebrequesttexture": "1.0.0",
|
||||||
|
"com.unity.modules.unitywebrequestwww": "1.0.0",
|
||||||
|
"com.unity.modules.vehicles": "1.0.0",
|
||||||
|
"com.unity.modules.video": "1.0.0",
|
||||||
|
"com.unity.modules.vr": "1.0.0",
|
||||||
|
"com.unity.modules.wind": "1.0.0",
|
||||||
|
"com.unity.modules.xr": "1.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
360
src/UniTask/Packages/packages-lock.json
Normal file
360
src/UniTask/Packages/packages-lock.json
Normal file
@@ -0,0 +1,360 @@
|
|||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"com.cysharp.runtimeunittesttoolkit": {
|
||||||
|
"version": "https://github.com/Cysharp/RuntimeUnitTestToolkit.git?path=RuntimeUnitTestToolkit/Assets/RuntimeUnitTestToolkit#2.6.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "git",
|
||||||
|
"dependencies": {},
|
||||||
|
"hash": "4e3dbfaa9c40b5cfdcb71a1d4e8bca0d45ca1055"
|
||||||
|
},
|
||||||
|
"com.unity.collab-proxy": {
|
||||||
|
"version": "2.4.3",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {},
|
||||||
|
"url": "https://packages.unity.com"
|
||||||
|
},
|
||||||
|
"com.unity.ext.nunit": {
|
||||||
|
"version": "1.0.6",
|
||||||
|
"depth": 1,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {},
|
||||||
|
"url": "https://packages.unity.com"
|
||||||
|
},
|
||||||
|
"com.unity.ide.rider": {
|
||||||
|
"version": "3.0.31",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.ext.nunit": "1.0.6"
|
||||||
|
},
|
||||||
|
"url": "https://packages.unity.com"
|
||||||
|
},
|
||||||
|
"com.unity.ide.visualstudio": {
|
||||||
|
"version": "2.0.22",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.test-framework": "1.1.9"
|
||||||
|
},
|
||||||
|
"url": "https://packages.unity.com"
|
||||||
|
},
|
||||||
|
"com.unity.ide.vscode": {
|
||||||
|
"version": "1.2.5",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {},
|
||||||
|
"url": "https://packages.unity.com"
|
||||||
|
},
|
||||||
|
"com.unity.sysroot": {
|
||||||
|
"version": "2.0.10",
|
||||||
|
"depth": 1,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {},
|
||||||
|
"url": "https://packages.unity.com"
|
||||||
|
},
|
||||||
|
"com.unity.sysroot.linux-x86_64": {
|
||||||
|
"version": "2.0.9",
|
||||||
|
"depth": 1,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.sysroot": "2.0.10"
|
||||||
|
},
|
||||||
|
"url": "https://packages.unity.com"
|
||||||
|
},
|
||||||
|
"com.unity.test-framework": {
|
||||||
|
"version": "1.1.33",
|
||||||
|
"depth": 0,
|
||||||
|
"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.com"
|
||||||
|
},
|
||||||
|
"com.unity.textmeshpro": {
|
||||||
|
"version": "3.0.6",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.ugui": "1.0.0"
|
||||||
|
},
|
||||||
|
"url": "https://packages.unity.com"
|
||||||
|
},
|
||||||
|
"com.unity.timeline": {
|
||||||
|
"version": "1.7.6",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {
|
||||||
|
"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.com"
|
||||||
|
},
|
||||||
|
"com.unity.toolchain.win-x86_64-linux-x86_64": {
|
||||||
|
"version": "2.0.9",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.sysroot": "2.0.10",
|
||||||
|
"com.unity.sysroot.linux-x86_64": "2.0.9"
|
||||||
|
},
|
||||||
|
"url": "https://packages.unity.com"
|
||||||
|
},
|
||||||
|
"com.unity.ugui": {
|
||||||
|
"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.ai": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.androidjni": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.animation": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.assetbundle": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.audio": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.cloth": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.physics": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.unity.modules.director": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.audio": "1.0.0",
|
||||||
|
"com.unity.modules.animation": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.unity.modules.imageconversion": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.imgui": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.jsonserialize": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.particlesystem": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.physics": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.physics2d": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.screencapture": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.imageconversion": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.unity.modules.subsystems": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 1,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.jsonserialize": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.unity.modules.terrain": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.terrainphysics": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.physics": "1.0.0",
|
||||||
|
"com.unity.modules.terrain": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.unity.modules.tilemap": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.physics2d": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.unity.modules.ui": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.uielements": {
|
||||||
|
"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.umbra": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.unityanalytics": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.unitywebrequest": "1.0.0",
|
||||||
|
"com.unity.modules.jsonserialize": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.unity.modules.unitywebrequest": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.unitywebrequestassetbundle": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.assetbundle": "1.0.0",
|
||||||
|
"com.unity.modules.unitywebrequest": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.unity.modules.unitywebrequestaudio": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.unitywebrequest": "1.0.0",
|
||||||
|
"com.unity.modules.audio": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.unity.modules.unitywebrequesttexture": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.unitywebrequest": "1.0.0",
|
||||||
|
"com.unity.modules.imageconversion": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.unity.modules.unitywebrequestwww": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.unitywebrequest": "1.0.0",
|
||||||
|
"com.unity.modules.unitywebrequestassetbundle": "1.0.0",
|
||||||
|
"com.unity.modules.unitywebrequestaudio": "1.0.0",
|
||||||
|
"com.unity.modules.audio": "1.0.0",
|
||||||
|
"com.unity.modules.assetbundle": "1.0.0",
|
||||||
|
"com.unity.modules.imageconversion": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.unity.modules.vehicles": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.physics": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.unity.modules.video": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.audio": "1.0.0",
|
||||||
|
"com.unity.modules.ui": "1.0.0",
|
||||||
|
"com.unity.modules.unitywebrequest": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.unity.modules.vr": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.jsonserialize": "1.0.0",
|
||||||
|
"com.unity.modules.physics": "1.0.0",
|
||||||
|
"com.unity.modules.xr": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.unity.modules.wind": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.modules.xr": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.physics": "1.0.0",
|
||||||
|
"com.unity.modules.jsonserialize": "1.0.0",
|
||||||
|
"com.unity.modules.subsystems": "1.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
35
src/UniTask/ProjectSettings/MemorySettings.asset
Normal file
35
src/UniTask/ProjectSettings/MemorySettings.asset
Normal file
@@ -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: {}
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
--- !u!129 &1
|
--- !u!129 &1
|
||||||
PlayerSettings:
|
PlayerSettings:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
serializedVersion: 20
|
serializedVersion: 26
|
||||||
productGUID: 904cd7a3163037f42a9204c0e2f2b7bd
|
productGUID: 904cd7a3163037f42a9204c0e2f2b7bd
|
||||||
AndroidProfiler: 0
|
AndroidProfiler: 0
|
||||||
AndroidFilterTouchesWhenObscured: 0
|
AndroidFilterTouchesWhenObscured: 0
|
||||||
@@ -48,12 +48,16 @@ PlayerSettings:
|
|||||||
defaultScreenHeightWeb: 600
|
defaultScreenHeightWeb: 600
|
||||||
m_StereoRenderingPath: 0
|
m_StereoRenderingPath: 0
|
||||||
m_ActiveColorSpace: 0
|
m_ActiveColorSpace: 0
|
||||||
|
unsupportedMSAAFallback: 0
|
||||||
|
m_SpriteBatchVertexThreshold: 300
|
||||||
m_MTRendering: 1
|
m_MTRendering: 1
|
||||||
|
mipStripping: 0
|
||||||
|
numberOfMipsStripped: 0
|
||||||
|
numberOfMipsStrippedPerMipmapLimitGroup: {}
|
||||||
m_StackTraceTypes: 010000000100000001000000010000000100000001000000
|
m_StackTraceTypes: 010000000100000001000000010000000100000001000000
|
||||||
iosShowActivityIndicatorOnLoading: -1
|
iosShowActivityIndicatorOnLoading: -1
|
||||||
androidShowActivityIndicatorOnLoading: -1
|
androidShowActivityIndicatorOnLoading: -1
|
||||||
iosUseCustomAppBackgroundBehavior: 0
|
iosUseCustomAppBackgroundBehavior: 0
|
||||||
iosAllowHTTPDownload: 1
|
|
||||||
allowedAutorotateToPortrait: 1
|
allowedAutorotateToPortrait: 1
|
||||||
allowedAutorotateToPortraitUpsideDown: 1
|
allowedAutorotateToPortraitUpsideDown: 1
|
||||||
allowedAutorotateToLandscapeRight: 1
|
allowedAutorotateToLandscapeRight: 1
|
||||||
@@ -66,6 +70,13 @@ PlayerSettings:
|
|||||||
androidRenderOutsideSafeArea: 1
|
androidRenderOutsideSafeArea: 1
|
||||||
androidUseSwappy: 0
|
androidUseSwappy: 0
|
||||||
androidBlitType: 0
|
androidBlitType: 0
|
||||||
|
androidResizableWindow: 0
|
||||||
|
androidDefaultWindowWidth: 1920
|
||||||
|
androidDefaultWindowHeight: 1080
|
||||||
|
androidMinimumWindowWidth: 400
|
||||||
|
androidMinimumWindowHeight: 300
|
||||||
|
androidFullscreenMode: 1
|
||||||
|
androidAutoRotationBehavior: 1
|
||||||
defaultIsNativeResolution: 1
|
defaultIsNativeResolution: 1
|
||||||
macRetinaSupport: 1
|
macRetinaSupport: 1
|
||||||
runInBackground: 1
|
runInBackground: 1
|
||||||
@@ -77,6 +88,7 @@ PlayerSettings:
|
|||||||
hideHomeButton: 0
|
hideHomeButton: 0
|
||||||
submitAnalytics: 1
|
submitAnalytics: 1
|
||||||
usePlayerLog: 1
|
usePlayerLog: 1
|
||||||
|
dedicatedServerOptimizations: 0
|
||||||
bakeCollisionMeshes: 0
|
bakeCollisionMeshes: 0
|
||||||
forceSingleInstance: 0
|
forceSingleInstance: 0
|
||||||
useFlipModelSwapchain: 1
|
useFlipModelSwapchain: 1
|
||||||
@@ -111,16 +123,22 @@ PlayerSettings:
|
|||||||
switchNVNShaderPoolsGranularity: 33554432
|
switchNVNShaderPoolsGranularity: 33554432
|
||||||
switchNVNDefaultPoolsGranularity: 16777216
|
switchNVNDefaultPoolsGranularity: 16777216
|
||||||
switchNVNOtherPoolsGranularity: 16777216
|
switchNVNOtherPoolsGranularity: 16777216
|
||||||
|
switchGpuScratchPoolGranularity: 2097152
|
||||||
|
switchAllowGpuScratchShrinking: 0
|
||||||
|
switchNVNMaxPublicTextureIDCount: 0
|
||||||
|
switchNVNMaxPublicSamplerIDCount: 0
|
||||||
|
switchNVNGraphicsFirmwareMemory: 32
|
||||||
|
switchMaxWorkerMultiple: 8
|
||||||
stadiaPresentMode: 0
|
stadiaPresentMode: 0
|
||||||
stadiaTargetFramerate: 0
|
stadiaTargetFramerate: 0
|
||||||
vulkanNumSwapchainBuffers: 3
|
vulkanNumSwapchainBuffers: 3
|
||||||
vulkanEnableSetSRGBWrite: 0
|
vulkanEnableSetSRGBWrite: 0
|
||||||
m_SupportedAspectRatios:
|
vulkanEnablePreTransform: 0
|
||||||
4:3: 1
|
vulkanEnableLateAcquireNextImage: 0
|
||||||
5:4: 1
|
vulkanEnableCommandBufferRecycling: 1
|
||||||
16:10: 1
|
loadStoreDebugModeEnabled: 0
|
||||||
16:9: 1
|
visionOSBundleVersion: 1.0
|
||||||
Others: 1
|
tvOSBundleVersion: 1.0
|
||||||
bundleVersion: 0.1
|
bundleVersion: 0.1
|
||||||
preloadedAssets: []
|
preloadedAssets: []
|
||||||
metroInputSource: 0
|
metroInputSource: 0
|
||||||
@@ -129,46 +147,29 @@ PlayerSettings:
|
|||||||
xboxOneDisableKinectGpuReservation: 1
|
xboxOneDisableKinectGpuReservation: 1
|
||||||
xboxOneEnable7thCore: 1
|
xboxOneEnable7thCore: 1
|
||||||
vrSettings:
|
vrSettings:
|
||||||
cardboard:
|
|
||||||
depthFormat: 0
|
|
||||||
enableTransitionView: 0
|
|
||||||
daydream:
|
|
||||||
depthFormat: 0
|
|
||||||
useSustainedPerformanceMode: 0
|
|
||||||
enableVideoLayer: 0
|
|
||||||
useProtectedVideoMemory: 0
|
|
||||||
minimumSupportedHeadTracking: 0
|
|
||||||
maximumSupportedHeadTracking: 1
|
|
||||||
hololens:
|
|
||||||
depthFormat: 1
|
|
||||||
depthBufferSharingEnabled: 1
|
|
||||||
lumin:
|
|
||||||
depthFormat: 0
|
|
||||||
frameTiming: 2
|
|
||||||
enableGLCache: 0
|
|
||||||
glCacheMaxBlobSize: 524288
|
|
||||||
glCacheMaxFileSize: 8388608
|
|
||||||
oculus:
|
|
||||||
sharedDepthBuffer: 1
|
|
||||||
dashSupport: 1
|
|
||||||
lowOverheadMode: 0
|
|
||||||
protectedContext: 0
|
|
||||||
v2Signing: 1
|
|
||||||
enable360StereoCapture: 0
|
enable360StereoCapture: 0
|
||||||
isWsaHolographicRemotingEnabled: 0
|
isWsaHolographicRemotingEnabled: 0
|
||||||
enableFrameTimingStats: 0
|
enableFrameTimingStats: 0
|
||||||
|
enableOpenGLProfilerGPURecorders: 1
|
||||||
|
allowHDRDisplaySupport: 0
|
||||||
useHDRDisplay: 0
|
useHDRDisplay: 0
|
||||||
D3DHDRBitDepth: 0
|
hdrBitDepth: 0
|
||||||
m_ColorGamuts: 00000000
|
m_ColorGamuts: 00000000
|
||||||
targetPixelDensity: 30
|
targetPixelDensity: 30
|
||||||
resolutionScalingMode: 0
|
resolutionScalingMode: 0
|
||||||
|
resetResolutionOnWindowResize: 0
|
||||||
androidSupportedAspectRatio: 1
|
androidSupportedAspectRatio: 1
|
||||||
androidMaxAspectRatio: 2.1
|
androidMaxAspectRatio: 2.1
|
||||||
applicationIdentifier:
|
applicationIdentifier:
|
||||||
Standalone: com.Company.ProductName
|
Standalone: com.DefaultCompany.UniTask
|
||||||
buildNumber: {}
|
buildNumber:
|
||||||
|
Standalone: 0
|
||||||
|
VisionOS: 0
|
||||||
|
iPhone: 0
|
||||||
|
tvOS: 0
|
||||||
|
overrideDefaultApplicationIdentifier: 0
|
||||||
AndroidBundleVersionCode: 1
|
AndroidBundleVersionCode: 1
|
||||||
AndroidMinSdkVersion: 19
|
AndroidMinSdkVersion: 22
|
||||||
AndroidTargetSdkVersion: 0
|
AndroidTargetSdkVersion: 0
|
||||||
AndroidPreferredInstallLocation: 1
|
AndroidPreferredInstallLocation: 1
|
||||||
aotOptions:
|
aotOptions:
|
||||||
@@ -181,12 +182,15 @@ PlayerSettings:
|
|||||||
APKExpansionFiles: 0
|
APKExpansionFiles: 0
|
||||||
keepLoadedShadersAlive: 0
|
keepLoadedShadersAlive: 0
|
||||||
StripUnusedMeshComponents: 1
|
StripUnusedMeshComponents: 1
|
||||||
|
strictShaderVariantMatching: 0
|
||||||
VertexChannelCompressionMask: 4054
|
VertexChannelCompressionMask: 4054
|
||||||
iPhoneSdkVersion: 988
|
iPhoneSdkVersion: 988
|
||||||
iOSTargetOSVersionString: 10.0
|
iOSTargetOSVersionString: 12.0
|
||||||
tvOSSdkVersion: 0
|
tvOSSdkVersion: 0
|
||||||
tvOSRequireExtendedGameController: 0
|
tvOSRequireExtendedGameController: 0
|
||||||
tvOSTargetOSVersionString: 10.0
|
tvOSTargetOSVersionString: 12.0
|
||||||
|
VisionOSSdkVersion: 0
|
||||||
|
VisionOSTargetOSVersionString: 1.0
|
||||||
uIPrerenderedIcon: 0
|
uIPrerenderedIcon: 0
|
||||||
uIRequiresPersistentWiFi: 0
|
uIRequiresPersistentWiFi: 0
|
||||||
uIRequiresFullScreen: 1
|
uIRequiresFullScreen: 1
|
||||||
@@ -220,32 +224,48 @@ PlayerSettings:
|
|||||||
iOSLaunchScreeniPadFillPct: 100
|
iOSLaunchScreeniPadFillPct: 100
|
||||||
iOSLaunchScreeniPadSize: 100
|
iOSLaunchScreeniPadSize: 100
|
||||||
iOSLaunchScreeniPadCustomXibPath:
|
iOSLaunchScreeniPadCustomXibPath:
|
||||||
iOSUseLaunchScreenStoryboard: 0
|
|
||||||
iOSLaunchScreenCustomStoryboardPath:
|
iOSLaunchScreenCustomStoryboardPath:
|
||||||
|
iOSLaunchScreeniPadCustomStoryboardPath:
|
||||||
iOSDeviceRequirements: []
|
iOSDeviceRequirements: []
|
||||||
iOSURLSchemes: []
|
iOSURLSchemes: []
|
||||||
|
macOSURLSchemes: []
|
||||||
iOSBackgroundModes: 0
|
iOSBackgroundModes: 0
|
||||||
iOSMetalForceHardShadows: 0
|
iOSMetalForceHardShadows: 0
|
||||||
metalEditorSupport: 1
|
metalEditorSupport: 1
|
||||||
metalAPIValidation: 1
|
metalAPIValidation: 1
|
||||||
|
metalCompileShaderBinary: 0
|
||||||
iOSRenderExtraFrameOnPause: 0
|
iOSRenderExtraFrameOnPause: 0
|
||||||
|
iosCopyPluginsCodeInsteadOfSymlink: 0
|
||||||
appleDeveloperTeamID:
|
appleDeveloperTeamID:
|
||||||
iOSManualSigningProvisioningProfileID:
|
iOSManualSigningProvisioningProfileID:
|
||||||
tvOSManualSigningProvisioningProfileID:
|
tvOSManualSigningProvisioningProfileID:
|
||||||
|
VisionOSManualSigningProvisioningProfileID:
|
||||||
iOSManualSigningProvisioningProfileType: 0
|
iOSManualSigningProvisioningProfileType: 0
|
||||||
tvOSManualSigningProvisioningProfileType: 0
|
tvOSManualSigningProvisioningProfileType: 0
|
||||||
|
VisionOSManualSigningProvisioningProfileType: 0
|
||||||
appleEnableAutomaticSigning: 0
|
appleEnableAutomaticSigning: 0
|
||||||
iOSRequireARKit: 0
|
iOSRequireARKit: 0
|
||||||
iOSAutomaticallyDetectAndAddCapabilities: 1
|
iOSAutomaticallyDetectAndAddCapabilities: 1
|
||||||
appleEnableProMotion: 0
|
appleEnableProMotion: 0
|
||||||
|
shaderPrecisionModel: 0
|
||||||
clonedFromGUID: 5f34be1353de5cf4398729fda238591b
|
clonedFromGUID: 5f34be1353de5cf4398729fda238591b
|
||||||
templatePackageId: com.unity.template.2d@3.1.0
|
templatePackageId: com.unity.template.2d@3.1.0
|
||||||
templateDefaultScene: Assets/Scenes/SampleScene.unity
|
templateDefaultScene: Assets/Scenes/SampleScene.unity
|
||||||
|
useCustomMainManifest: 0
|
||||||
|
useCustomLauncherManifest: 0
|
||||||
|
useCustomMainGradleTemplate: 0
|
||||||
|
useCustomLauncherGradleManifest: 0
|
||||||
|
useCustomBaseGradleTemplate: 0
|
||||||
|
useCustomGradlePropertiesTemplate: 0
|
||||||
|
useCustomGradleSettingsTemplate: 0
|
||||||
|
useCustomProguardFile: 0
|
||||||
AndroidTargetArchitectures: 1
|
AndroidTargetArchitectures: 1
|
||||||
|
AndroidTargetDevices: 0
|
||||||
AndroidSplashScreenScale: 0
|
AndroidSplashScreenScale: 0
|
||||||
androidSplashScreen: {fileID: 0}
|
androidSplashScreen: {fileID: 0}
|
||||||
AndroidKeystoreName: '{inproject}: '
|
AndroidKeystoreName: '{inproject}: '
|
||||||
AndroidKeyaliasName:
|
AndroidKeyaliasName:
|
||||||
|
AndroidEnableArmv9SecurityFeatures: 0
|
||||||
AndroidBuildApkPerCpuArchitecture: 0
|
AndroidBuildApkPerCpuArchitecture: 0
|
||||||
AndroidTVCompatibility: 0
|
AndroidTVCompatibility: 0
|
||||||
AndroidIsGame: 1
|
AndroidIsGame: 1
|
||||||
@@ -258,11 +278,15 @@ PlayerSettings:
|
|||||||
height: 180
|
height: 180
|
||||||
banner: {fileID: 0}
|
banner: {fileID: 0}
|
||||||
androidGamepadSupportLevel: 0
|
androidGamepadSupportLevel: 0
|
||||||
|
chromeosInputEmulation: 1
|
||||||
|
AndroidMinifyRelease: 0
|
||||||
|
AndroidMinifyDebug: 0
|
||||||
AndroidValidateAppBundleSize: 1
|
AndroidValidateAppBundleSize: 1
|
||||||
AndroidAppBundleSizeToValidate: 100
|
AndroidAppBundleSizeToValidate: 100
|
||||||
m_BuildTargetIcons: []
|
m_BuildTargetIcons: []
|
||||||
m_BuildTargetPlatformIcons: []
|
m_BuildTargetPlatformIcons: []
|
||||||
m_BuildTargetBatching: []
|
m_BuildTargetBatching: []
|
||||||
|
m_BuildTargetShaderSettings: []
|
||||||
m_BuildTargetGraphicsJobs:
|
m_BuildTargetGraphicsJobs:
|
||||||
- m_BuildTarget: MacStandaloneSupport
|
- m_BuildTarget: MacStandaloneSupport
|
||||||
m_GraphicsJobs: 0
|
m_GraphicsJobs: 0
|
||||||
@@ -298,8 +322,13 @@ PlayerSettings:
|
|||||||
m_BuildTargetGraphicsAPIs:
|
m_BuildTargetGraphicsAPIs:
|
||||||
- m_BuildTarget: AndroidPlayer
|
- m_BuildTarget: AndroidPlayer
|
||||||
m_APIs: 150000000b000000
|
m_APIs: 150000000b000000
|
||||||
m_Automatic: 0
|
m_Automatic: 1
|
||||||
|
- m_BuildTarget: iOSSupport
|
||||||
|
m_APIs: 10000000
|
||||||
|
m_Automatic: 1
|
||||||
m_BuildTargetVRSettings: []
|
m_BuildTargetVRSettings: []
|
||||||
|
m_DefaultShaderChunkSizeInMB: 16
|
||||||
|
m_DefaultShaderChunkCount: 0
|
||||||
openGLRequireES31: 0
|
openGLRequireES31: 0
|
||||||
openGLRequireES31AEP: 0
|
openGLRequireES31AEP: 0
|
||||||
openGLRequireES32: 0
|
openGLRequireES32: 0
|
||||||
@@ -309,7 +338,11 @@ PlayerSettings:
|
|||||||
iPhone: 1
|
iPhone: 1
|
||||||
tvOS: 1
|
tvOS: 1
|
||||||
m_BuildTargetGroupLightmapEncodingQuality: []
|
m_BuildTargetGroupLightmapEncodingQuality: []
|
||||||
|
m_BuildTargetGroupHDRCubemapEncodingQuality: []
|
||||||
m_BuildTargetGroupLightmapSettings: []
|
m_BuildTargetGroupLightmapSettings: []
|
||||||
|
m_BuildTargetGroupLoadStoreDebugModeSettings: []
|
||||||
|
m_BuildTargetNormalMapEncoding: []
|
||||||
|
m_BuildTargetDefaultTextureCompressionFormat: []
|
||||||
playModeTestRunnerEnabled: 0
|
playModeTestRunnerEnabled: 0
|
||||||
runPlayModeTestAsEditModeTest: 0
|
runPlayModeTestAsEditModeTest: 0
|
||||||
actionOnDotNetUnhandledException: 1
|
actionOnDotNetUnhandledException: 1
|
||||||
@@ -319,14 +352,20 @@ PlayerSettings:
|
|||||||
cameraUsageDescription:
|
cameraUsageDescription:
|
||||||
locationUsageDescription:
|
locationUsageDescription:
|
||||||
microphoneUsageDescription:
|
microphoneUsageDescription:
|
||||||
|
bluetoothUsageDescription:
|
||||||
|
macOSTargetOSVersion: 10.13.0
|
||||||
|
switchNMETAOverride:
|
||||||
switchNetLibKey:
|
switchNetLibKey:
|
||||||
switchSocketMemoryPoolSize: 6144
|
switchSocketMemoryPoolSize: 6144
|
||||||
switchSocketAllocatorPoolSize: 128
|
switchSocketAllocatorPoolSize: 128
|
||||||
switchSocketConcurrencyLimit: 14
|
switchSocketConcurrencyLimit: 14
|
||||||
switchScreenResolutionBehavior: 2
|
switchScreenResolutionBehavior: 2
|
||||||
switchUseCPUProfiler: 0
|
switchUseCPUProfiler: 0
|
||||||
|
switchEnableFileSystemTrace: 0
|
||||||
|
switchLTOSetting: 0
|
||||||
switchApplicationID: 0x01004b9000490000
|
switchApplicationID: 0x01004b9000490000
|
||||||
switchNSODependencies:
|
switchNSODependencies:
|
||||||
|
switchCompilerFlags:
|
||||||
switchTitleNames_0:
|
switchTitleNames_0:
|
||||||
switchTitleNames_1:
|
switchTitleNames_1:
|
||||||
switchTitleNames_2:
|
switchTitleNames_2:
|
||||||
@@ -342,6 +381,7 @@ PlayerSettings:
|
|||||||
switchTitleNames_12:
|
switchTitleNames_12:
|
||||||
switchTitleNames_13:
|
switchTitleNames_13:
|
||||||
switchTitleNames_14:
|
switchTitleNames_14:
|
||||||
|
switchTitleNames_15:
|
||||||
switchPublisherNames_0:
|
switchPublisherNames_0:
|
||||||
switchPublisherNames_1:
|
switchPublisherNames_1:
|
||||||
switchPublisherNames_2:
|
switchPublisherNames_2:
|
||||||
@@ -357,6 +397,7 @@ PlayerSettings:
|
|||||||
switchPublisherNames_12:
|
switchPublisherNames_12:
|
||||||
switchPublisherNames_13:
|
switchPublisherNames_13:
|
||||||
switchPublisherNames_14:
|
switchPublisherNames_14:
|
||||||
|
switchPublisherNames_15:
|
||||||
switchIcons_0: {fileID: 0}
|
switchIcons_0: {fileID: 0}
|
||||||
switchIcons_1: {fileID: 0}
|
switchIcons_1: {fileID: 0}
|
||||||
switchIcons_2: {fileID: 0}
|
switchIcons_2: {fileID: 0}
|
||||||
@@ -372,6 +413,7 @@ PlayerSettings:
|
|||||||
switchIcons_12: {fileID: 0}
|
switchIcons_12: {fileID: 0}
|
||||||
switchIcons_13: {fileID: 0}
|
switchIcons_13: {fileID: 0}
|
||||||
switchIcons_14: {fileID: 0}
|
switchIcons_14: {fileID: 0}
|
||||||
|
switchIcons_15: {fileID: 0}
|
||||||
switchSmallIcons_0: {fileID: 0}
|
switchSmallIcons_0: {fileID: 0}
|
||||||
switchSmallIcons_1: {fileID: 0}
|
switchSmallIcons_1: {fileID: 0}
|
||||||
switchSmallIcons_2: {fileID: 0}
|
switchSmallIcons_2: {fileID: 0}
|
||||||
@@ -387,6 +429,7 @@ PlayerSettings:
|
|||||||
switchSmallIcons_12: {fileID: 0}
|
switchSmallIcons_12: {fileID: 0}
|
||||||
switchSmallIcons_13: {fileID: 0}
|
switchSmallIcons_13: {fileID: 0}
|
||||||
switchSmallIcons_14: {fileID: 0}
|
switchSmallIcons_14: {fileID: 0}
|
||||||
|
switchSmallIcons_15: {fileID: 0}
|
||||||
switchManualHTML:
|
switchManualHTML:
|
||||||
switchAccessibleURLs:
|
switchAccessibleURLs:
|
||||||
switchLegalInformation:
|
switchLegalInformation:
|
||||||
@@ -396,7 +439,6 @@ PlayerSettings:
|
|||||||
switchReleaseVersion: 0
|
switchReleaseVersion: 0
|
||||||
switchDisplayVersion: 1.0.0
|
switchDisplayVersion: 1.0.0
|
||||||
switchStartupUserAccount: 0
|
switchStartupUserAccount: 0
|
||||||
switchTouchScreenUsage: 0
|
|
||||||
switchSupportedLanguagesMask: 0
|
switchSupportedLanguagesMask: 0
|
||||||
switchLogoType: 0
|
switchLogoType: 0
|
||||||
switchApplicationErrorCodeCategory:
|
switchApplicationErrorCodeCategory:
|
||||||
@@ -438,6 +480,7 @@ PlayerSettings:
|
|||||||
switchNativeFsCacheSize: 32
|
switchNativeFsCacheSize: 32
|
||||||
switchIsHoldTypeHorizontal: 0
|
switchIsHoldTypeHorizontal: 0
|
||||||
switchSupportedNpadCount: 8
|
switchSupportedNpadCount: 8
|
||||||
|
switchEnableTouchScreen: 1
|
||||||
switchSocketConfigEnabled: 0
|
switchSocketConfigEnabled: 0
|
||||||
switchTcpInitialSendBufferSize: 32
|
switchTcpInitialSendBufferSize: 32
|
||||||
switchTcpInitialReceiveBufferSize: 64
|
switchTcpInitialReceiveBufferSize: 64
|
||||||
@@ -448,7 +491,12 @@ PlayerSettings:
|
|||||||
switchSocketBufferEfficiency: 4
|
switchSocketBufferEfficiency: 4
|
||||||
switchSocketInitializeEnabled: 1
|
switchSocketInitializeEnabled: 1
|
||||||
switchNetworkInterfaceManagerInitializeEnabled: 1
|
switchNetworkInterfaceManagerInitializeEnabled: 1
|
||||||
switchPlayerConnectionEnabled: 1
|
switchUseNewStyleFilepaths: 0
|
||||||
|
switchUseLegacyFmodPriorities: 0
|
||||||
|
switchUseMicroSleepForYield: 1
|
||||||
|
switchEnableRamDiskSupport: 0
|
||||||
|
switchMicroSleepForYieldTime: 25
|
||||||
|
switchRamDiskSpaceSize: 12
|
||||||
ps4NPAgeRating: 12
|
ps4NPAgeRating: 12
|
||||||
ps4NPTitleSecret:
|
ps4NPTitleSecret:
|
||||||
ps4NPTrophyPackPath:
|
ps4NPTrophyPackPath:
|
||||||
@@ -475,6 +523,7 @@ PlayerSettings:
|
|||||||
ps4ShareFilePath:
|
ps4ShareFilePath:
|
||||||
ps4ShareOverlayImagePath:
|
ps4ShareOverlayImagePath:
|
||||||
ps4PrivacyGuardImagePath:
|
ps4PrivacyGuardImagePath:
|
||||||
|
ps4ExtraSceSysFile:
|
||||||
ps4NPtitleDatPath:
|
ps4NPtitleDatPath:
|
||||||
ps4RemotePlayKeyAssignment: -1
|
ps4RemotePlayKeyAssignment: -1
|
||||||
ps4RemotePlayKeyMappingDir:
|
ps4RemotePlayKeyMappingDir:
|
||||||
@@ -517,6 +566,9 @@ PlayerSettings:
|
|||||||
ps4disableAutoHideSplash: 0
|
ps4disableAutoHideSplash: 0
|
||||||
ps4videoRecordingFeaturesUsed: 0
|
ps4videoRecordingFeaturesUsed: 0
|
||||||
ps4contentSearchFeaturesUsed: 0
|
ps4contentSearchFeaturesUsed: 0
|
||||||
|
ps4CompatibilityPS5: 0
|
||||||
|
ps4AllowPS5Detection: 0
|
||||||
|
ps4GPU800MHz: 1
|
||||||
ps4attribEyeToEyeDistanceSettingVR: 0
|
ps4attribEyeToEyeDistanceSettingVR: 0
|
||||||
ps4IncludedModules: []
|
ps4IncludedModules: []
|
||||||
ps4attribVROutputEnabled: 0
|
ps4attribVROutputEnabled: 0
|
||||||
@@ -528,6 +580,7 @@ PlayerSettings:
|
|||||||
webGLMemorySize: 16
|
webGLMemorySize: 16
|
||||||
webGLExceptionSupport: 1
|
webGLExceptionSupport: 1
|
||||||
webGLNameFilesAsHashes: 0
|
webGLNameFilesAsHashes: 0
|
||||||
|
webGLShowDiagnostics: 0
|
||||||
webGLDataCaching: 1
|
webGLDataCaching: 1
|
||||||
webGLDebugSymbols: 0
|
webGLDebugSymbols: 0
|
||||||
webGLEmscriptenArgs:
|
webGLEmscriptenArgs:
|
||||||
@@ -536,18 +589,47 @@ PlayerSettings:
|
|||||||
webGLAnalyzeBuildSize: 0
|
webGLAnalyzeBuildSize: 0
|
||||||
webGLUseEmbeddedResources: 0
|
webGLUseEmbeddedResources: 0
|
||||||
webGLCompressionFormat: 1
|
webGLCompressionFormat: 1
|
||||||
|
webGLWasmArithmeticExceptions: 0
|
||||||
webGLLinkerTarget: 1
|
webGLLinkerTarget: 1
|
||||||
webGLThreadsSupport: 0
|
webGLThreadsSupport: 0
|
||||||
webGLWasmStreaming: 0
|
webGLDecompressionFallback: 0
|
||||||
|
webGLInitialMemorySize: 32
|
||||||
|
webGLMaximumMemorySize: 2048
|
||||||
|
webGLMemoryGrowthMode: 2
|
||||||
|
webGLMemoryLinearGrowthStep: 16
|
||||||
|
webGLMemoryGeometricGrowthStep: 0.2
|
||||||
|
webGLMemoryGeometricGrowthCap: 96
|
||||||
|
webGLPowerPreference: 2
|
||||||
scriptingDefineSymbols: {}
|
scriptingDefineSymbols: {}
|
||||||
|
additionalCompilerArguments: {}
|
||||||
platformArchitecture: {}
|
platformArchitecture: {}
|
||||||
scriptingBackend:
|
scriptingBackend:
|
||||||
Android: 1
|
Android: 1
|
||||||
|
Server: 1
|
||||||
Standalone: 1
|
Standalone: 1
|
||||||
il2cppCompilerConfiguration: {}
|
il2cppCompilerConfiguration: {}
|
||||||
managedStrippingLevel: {}
|
il2cppCodeGeneration: {}
|
||||||
|
managedStrippingLevel:
|
||||||
|
Android: 1
|
||||||
|
EmbeddedLinux: 1
|
||||||
|
GameCoreScarlett: 1
|
||||||
|
GameCoreXboxOne: 1
|
||||||
|
Nintendo Switch: 1
|
||||||
|
PS4: 1
|
||||||
|
PS5: 1
|
||||||
|
QNX: 1
|
||||||
|
Stadia: 1
|
||||||
|
Standalone: 1
|
||||||
|
VisionOS: 1
|
||||||
|
WebGL: 1
|
||||||
|
Windows Store Apps: 1
|
||||||
|
XboxOne: 1
|
||||||
|
iPhone: 1
|
||||||
|
tvOS: 1
|
||||||
incrementalIl2cppBuild: {}
|
incrementalIl2cppBuild: {}
|
||||||
|
suppressCommonWarnings: 1
|
||||||
allowUnsafeCode: 0
|
allowUnsafeCode: 0
|
||||||
|
useDeterministicCompilation: 1
|
||||||
additionalIl2CppArgs:
|
additionalIl2CppArgs:
|
||||||
scriptingRuntimeVersion: 1
|
scriptingRuntimeVersion: 1
|
||||||
gcIncremental: 0
|
gcIncremental: 0
|
||||||
@@ -578,11 +660,13 @@ PlayerSettings:
|
|||||||
metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628,
|
metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628,
|
||||||
a: 1}
|
a: 1}
|
||||||
metroSplashScreenUseBackgroundColor: 0
|
metroSplashScreenUseBackgroundColor: 0
|
||||||
|
syncCapabilities: 0
|
||||||
platformCapabilities: {}
|
platformCapabilities: {}
|
||||||
metroTargetDeviceFamilies: {}
|
metroTargetDeviceFamilies: {}
|
||||||
metroFTAName:
|
metroFTAName:
|
||||||
metroFTAFileTypes: []
|
metroFTAFileTypes: []
|
||||||
metroProtocolName:
|
metroProtocolName:
|
||||||
|
vcxProjDefaultLanguage:
|
||||||
XboxOneProductId:
|
XboxOneProductId:
|
||||||
XboxOneUpdateKey:
|
XboxOneUpdateKey:
|
||||||
XboxOneSandboxId:
|
XboxOneSandboxId:
|
||||||
@@ -601,6 +685,7 @@ PlayerSettings:
|
|||||||
XboxOneCapability: []
|
XboxOneCapability: []
|
||||||
XboxOneGameRating: {}
|
XboxOneGameRating: {}
|
||||||
XboxOneIsContentPackage: 0
|
XboxOneIsContentPackage: 0
|
||||||
|
XboxOneEnhancedXboxCompatibilityMode: 0
|
||||||
XboxOneEnableGPUVariability: 1
|
XboxOneEnableGPUVariability: 1
|
||||||
XboxOneSockets: {}
|
XboxOneSockets: {}
|
||||||
XboxOneSplashScreen: {fileID: 0}
|
XboxOneSplashScreen: {fileID: 0}
|
||||||
@@ -609,10 +694,7 @@ PlayerSettings:
|
|||||||
XboxOneXTitleMemory: 8
|
XboxOneXTitleMemory: 8
|
||||||
XboxOneOverrideIdentityName:
|
XboxOneOverrideIdentityName:
|
||||||
XboxOneOverrideIdentityPublisher:
|
XboxOneOverrideIdentityPublisher:
|
||||||
vrEditorSettings:
|
vrEditorSettings: {}
|
||||||
daydream:
|
|
||||||
daydreamIconForeground: {fileID: 0}
|
|
||||||
daydreamIconBackground: {fileID: 0}
|
|
||||||
cloudServicesEnabled:
|
cloudServicesEnabled:
|
||||||
UNet: 1
|
UNet: 1
|
||||||
luminIcon:
|
luminIcon:
|
||||||
@@ -626,12 +708,22 @@ PlayerSettings:
|
|||||||
luminVersion:
|
luminVersion:
|
||||||
m_VersionCode: 1
|
m_VersionCode: 1
|
||||||
m_VersionName:
|
m_VersionName:
|
||||||
|
hmiPlayerDataPath:
|
||||||
|
hmiForceSRGBBlit: 1
|
||||||
|
embeddedLinuxEnableGamepadInput: 1
|
||||||
|
hmiLogStartupTiming: 0
|
||||||
|
hmiCpuConfiguration:
|
||||||
apiCompatibilityLevel: 6
|
apiCompatibilityLevel: 6
|
||||||
|
activeInputHandler: 0
|
||||||
|
windowsGamepadBackendHint: 0
|
||||||
cloudProjectId:
|
cloudProjectId:
|
||||||
framebufferDepthMemorylessMode: 0
|
framebufferDepthMemorylessMode: 0
|
||||||
|
qualitySettingsNames: []
|
||||||
projectName:
|
projectName:
|
||||||
organizationId:
|
organizationId:
|
||||||
cloudEnabled: 0
|
cloudEnabled: 0
|
||||||
enableNativePlatformBackendsForNewInputSystem: 0
|
|
||||||
disableOldInputManagerSupport: 0
|
|
||||||
legacyClampBlendShapeWeights: 1
|
legacyClampBlendShapeWeights: 1
|
||||||
|
hmiLoadingImage: {fileID: 0}
|
||||||
|
platformRequiresReadableAssets: 0
|
||||||
|
virtualTexturingSupportEnabled: 0
|
||||||
|
insecureHttpOption: 0
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
m_EditorVersion: 2020.2.1f1
|
m_EditorVersion: 2022.3.39f1
|
||||||
m_EditorVersionWithRevision: 2020.2.1f1 (270dd8c3da1c)
|
m_EditorVersionWithRevision: 2022.3.39f1 (4e1b0f82c39a)
|
||||||
|
|||||||
121
src/UniTask/ProjectSettings/SceneTemplateSettings.json
Normal file
121
src/UniTask/ProjectSettings/SceneTemplateSettings.json
Normal file
@@ -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.PhysicMaterial",
|
||||||
|
"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": "<default_scene_template_dependencies>",
|
||||||
|
"defaultInstantiationMode": 1
|
||||||
|
},
|
||||||
|
"newSceneOverride": 0
|
||||||
|
}
|
||||||
@@ -9,6 +9,7 @@ UnityConnectSettings:
|
|||||||
m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
|
m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
|
||||||
m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
|
m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
|
||||||
m_ConfigUrl: https://config.uca.cloud.unity3d.com
|
m_ConfigUrl: https://config.uca.cloud.unity3d.com
|
||||||
|
m_DashboardUrl: https://dashboard.unity3d.com
|
||||||
m_TestInitMode: 0
|
m_TestInitMode: 0
|
||||||
CrashReportingSettings:
|
CrashReportingSettings:
|
||||||
m_EventUrl: https://perf-events.cloud.unity3d.com
|
m_EventUrl: https://perf-events.cloud.unity3d.com
|
||||||
@@ -22,6 +23,7 @@ UnityConnectSettings:
|
|||||||
m_Enabled: 0
|
m_Enabled: 0
|
||||||
m_TestMode: 0
|
m_TestMode: 0
|
||||||
m_InitializeOnStartup: 1
|
m_InitializeOnStartup: 1
|
||||||
|
m_PackageRequiringCoreStatsPresent: 0
|
||||||
UnityAdsSettings:
|
UnityAdsSettings:
|
||||||
m_Enabled: 0
|
m_Enabled: 0
|
||||||
m_InitializeOnStartup: 1
|
m_InitializeOnStartup: 1
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!162 &1
|
|
||||||
EditorUserSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 4
|
|
||||||
m_ConfigSettings:
|
|
||||||
RecentlyUsedScenePath-0:
|
|
||||||
value: 22424703114646680e0b0227036c6c1118131a25340527392367083debf42d
|
|
||||||
flags: 0
|
|
||||||
vcSharedLogLevel:
|
|
||||||
value: 0d5e400f0650
|
|
||||||
flags: 0
|
|
||||||
m_VCAutomaticAdd: 1
|
|
||||||
m_VCDebugCom: 0
|
|
||||||
m_VCDebugCmd: 0
|
|
||||||
m_VCDebugOut: 0
|
|
||||||
m_SemanticMergeMode: 2
|
|
||||||
m_VCShowFailedCheckout: 1
|
|
||||||
m_VCOverwriteFailedCheckoutAssets: 1
|
|
||||||
m_VCProjectOverlayIcons: 1
|
|
||||||
m_VCHierarchyOverlayIcons: 1
|
|
||||||
m_VCOtherOverlayIcons: 1
|
|
||||||
m_VCAllowAsyncUpdate: 0
|
|
||||||
Reference in New Issue
Block a user