Compare commits
56 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e1715afbab | ||
|
|
2f51bff791 | ||
|
|
59221d5821 | ||
|
|
4fe9a3200d | ||
|
|
8c959b257c | ||
|
|
6c50cf85f3 | ||
|
|
52ae87f301 | ||
|
|
845365ee27 | ||
|
|
8e1b4eb086 | ||
|
|
97ea668294 | ||
|
|
6b11e7c588 | ||
|
|
d9e7eb9732 | ||
|
|
386170cbf6 | ||
|
|
37d0c4b711 | ||
|
|
4fa43eda4b | ||
|
|
9afeebf672 | ||
|
|
d8e96e69a6 | ||
|
|
01459b06b8 | ||
|
|
7b21c500ef | ||
|
|
aa0d56f9fa | ||
|
|
c6644a2132 | ||
|
|
b76bf5a5ad | ||
|
|
69bde2cf3d | ||
|
|
a10042d989 | ||
|
|
dd2d185e4a | ||
|
|
e817e8d3c7 | ||
|
|
aaac2b71a3 | ||
|
|
11c3a7b374 | ||
|
|
ccc09e6aca | ||
|
|
5a8f1263ef | ||
|
|
b6b2c72b19 | ||
|
|
0fd5d7affe | ||
|
|
2e4d80bc1c | ||
|
|
6b87db7ac7 | ||
|
|
61760d940c | ||
|
|
f43d4c38ea | ||
|
|
ccb8386672 | ||
|
|
e15319a46e | ||
|
|
e352d153ce | ||
|
|
4f9bbf57bc | ||
|
|
0b9d80da93 | ||
|
|
24d32d8441 | ||
|
|
476c4027ff | ||
|
|
12c748a8cd | ||
|
|
0259ad2464 | ||
|
|
5f3ead2086 | ||
|
|
e3f42d747a | ||
|
|
b93e0e4701 | ||
|
|
9f9e04724d | ||
|
|
5981af6c0a | ||
|
|
f38240f527 | ||
|
|
d775e805fb | ||
|
|
d9eb91c120 | ||
|
|
13223b2d74 | ||
|
|
d5ce78ae5a | ||
|
|
3bb5241275 |
9
.github/workflows/release.yml
vendored
@@ -12,12 +12,13 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: "! contains(github.event.head_commit.message, '[skip ci]') && ! contains(github.event.head_commit.message, '[ci skip]')"
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- run: |
|
- uses: cycjimmy/semantic-release-action@v2
|
||||||
npm i --no-save https://gist.github.com/mob-sakai/c90044338361af97a7e8c8a78425bdb3
|
with:
|
||||||
npx semantic-release -e @mob-sakai/semantic-release-upm
|
extra_plugins: |
|
||||||
|
@semantic-release/changelog
|
||||||
|
@semantic-release/git
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ github.token }}
|
GITHUB_TOKEN: ${{ github.token }}
|
||||||
|
|||||||
79
.github/workflows/test.yml
vendored
@@ -14,23 +14,25 @@ on:
|
|||||||
- synchronize
|
- synchronize
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
unity-test:
|
setup:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
versions: ${{ steps.setup.outputs.versions }}
|
||||||
|
steps:
|
||||||
|
- id: setup
|
||||||
|
run: |
|
||||||
|
VERSIONS=`npx unity-changeset list --versions --all --latest-patch --min 2018.3 --json`
|
||||||
|
echo "==== Target Unity Versions ===="
|
||||||
|
echo "${VERSIONS}"
|
||||||
|
echo "::set-output name=versions::${VERSIONS}"
|
||||||
|
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: setup
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
unityVersion: [
|
version: ${{ fromJson(needs.setup.outputs.versions) }}
|
||||||
"2018.3.14f1",
|
|
||||||
"2018.4.30f1",
|
|
||||||
"2019.1.14f1",
|
|
||||||
"2019.2.21f1",
|
|
||||||
"2019.3.15f1",
|
|
||||||
"2019.4.16f1",
|
|
||||||
"2020.1.17f1",
|
|
||||||
"2020.2.1f1",
|
|
||||||
]
|
|
||||||
env:
|
|
||||||
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
# Checkout sandbox project
|
# Checkout sandbox project
|
||||||
@@ -45,52 +47,23 @@ jobs:
|
|||||||
working-directory: Packages/dev
|
working-directory: Packages/dev
|
||||||
run: git checkout ${{ github.sha }}
|
run: git checkout ${{ github.sha }}
|
||||||
|
|
||||||
|
# Cache
|
||||||
- uses: actions/cache@v2
|
- uses: actions/cache@v2
|
||||||
with:
|
with:
|
||||||
path: Library
|
path: Library
|
||||||
key: Library-${{ matrix.unityVersion }}-${{ github.sha }}
|
key: Library-${{ matrix.version }}-${{ github.sha }}
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
Library-${{ matrix.unityVersion }}-
|
Library-${{ matrix.version }}-
|
||||||
Library-
|
Library-
|
||||||
|
|
||||||
# Install codecoverage package
|
|
||||||
- name: "Install codecoverage package"
|
|
||||||
if: startsWith(matrix.unityVersion, '2019.4.')
|
|
||||||
run: |
|
|
||||||
npx openupm-cli add -f com.unity.testtools.codecoverage@0.4.0-preview
|
|
||||||
|
|
||||||
# Run tests
|
# Run tests
|
||||||
- name: "Run tests"
|
- name: "Run tests"
|
||||||
uses: game-ci/unity-test-runner@main
|
uses: game-ci/unity-test-runner@v2
|
||||||
with:
|
with:
|
||||||
unityVersion: ${{ matrix.unityVersion }}
|
customImage: mobsakai/unity3d:${{ matrix.version }}
|
||||||
customImage: ghcr.io/mob-sakai/unity3d:${{ matrix.unityVersion }}
|
customParameters: -nographics
|
||||||
customParameters: -enableCodeCoverage
|
# unityVersion: ${{ matrix.version }}
|
||||||
# customParameters: -enableCodeCoverage -coverageOptions assemblyFilters:+CSharpCompilerSettings_,-*-CSharp,-*.Tests,-IgnoreAccessibility
|
checkName: ${{ matrix.version }} Test Results
|
||||||
|
githubToken: ${{ github.token }}
|
||||||
- uses: actions/upload-artifact@v2
|
env:
|
||||||
if: always()
|
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
|
||||||
with:
|
|
||||||
name: TestResults-${{ matrix.unityVersion }}
|
|
||||||
path: |
|
|
||||||
artifacts/*.xml
|
|
||||||
CodeCoverage/**/TestCoverageResults_*.xml
|
|
||||||
|
|
||||||
publish:
|
|
||||||
needs: unity-test
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: always()
|
|
||||||
steps:
|
|
||||||
|
|
||||||
- uses: actions/download-artifact@v2
|
|
||||||
with:
|
|
||||||
path: artifacts
|
|
||||||
|
|
||||||
- uses: testspace-com/setup-testspace@v1
|
|
||||||
with:
|
|
||||||
domain: ${{github.repository_owner}}
|
|
||||||
|
|
||||||
- name: Push test results
|
|
||||||
if: always()
|
|
||||||
run: |
|
|
||||||
testspace `find . -name '*.xml' | tr '\n' ' '`
|
|
||||||
|
|||||||
25
.releaserc.json
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"branches": [
|
||||||
|
"+([0-9])?(.{+([0-9]),x}).x",
|
||||||
|
"master",
|
||||||
|
"main",
|
||||||
|
{
|
||||||
|
"name": "preview",
|
||||||
|
"prerelease": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tagFormat": "${version}",
|
||||||
|
"plugins": [
|
||||||
|
"@semantic-release/commit-analyzer",
|
||||||
|
"@semantic-release/release-notes-generator",
|
||||||
|
"@semantic-release/changelog",
|
||||||
|
[
|
||||||
|
"@semantic-release/npm",
|
||||||
|
{
|
||||||
|
"npmPublish": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"@semantic-release/git",
|
||||||
|
"@semantic-release/github"
|
||||||
|
]
|
||||||
|
}
|
||||||
117
CHANGELOG.md
@@ -1,3 +1,120 @@
|
|||||||
|
# [4.0.0](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.3.12...4.0.0) (2022-06-21)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* correct world space particle position when changing screen size ([c6644a2](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/c6644a213263375c7a35b5082ef4b71cc58964e6))
|
||||||
|
* keep properly canvas batches ([d8e96e6](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/d8e96e69a62dff7a451eaed32c7a814e7e62dbb9))
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* adaptive scaling for UI ([aa0d56f](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/aa0d56f9faa05e9679d4b476bcf135eafb1b8af9))
|
||||||
|
* add overlay window for UIParticle ([7b21c50](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/7b21c500ef78103b605fdca71051d2357b09602f))
|
||||||
|
* add particle attractor component ([386170c](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/386170cbf68ebf59d4510fe0a45cf83925ec9ba4))
|
||||||
|
* display warning in inspector if using 'TEXCOORD*.zw' components as custom vertex stream ([59221d5](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/59221d58217a440b77d504e6428bf99f10246260))
|
||||||
|
* mesh sharing group ([9afeebf](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/9afeebf67212cdf4d3ac9e9a3b78a7ced5c7ecfe))
|
||||||
|
* random mesh sharing group ([4fa43ed](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/4fa43eda4bc70c9c827c4fad9d5ae1327bfbc322))
|
||||||
|
* support 8+ materials ([b76bf5a](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/b76bf5a5ad378c3c4b16bcf08d21337757557101)), closes [#122](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/122) [#152](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/152) [#186](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/186)
|
||||||
|
|
||||||
|
|
||||||
|
### BREAKING CHANGES
|
||||||
|
|
||||||
|
* If you update to v4, you may be required to adjust your UIParticle.scale.
|
||||||
|
|
||||||
|
# [4.0.0-preview.1](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.3.12...4.0.0-preview.1) (2022-06-18)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* correct world space particle position when changing screen size ([c6644a2](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/c6644a213263375c7a35b5082ef4b71cc58964e6))
|
||||||
|
* keep properly canvas batches ([d8e96e6](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/d8e96e69a62dff7a451eaed32c7a814e7e62dbb9))
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* adaptive scaling for UI ([aa0d56f](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/aa0d56f9faa05e9679d4b476bcf135eafb1b8af9))
|
||||||
|
* add overlay window for UIParticle ([7b21c50](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/7b21c500ef78103b605fdca71051d2357b09602f))
|
||||||
|
* add particle attractor component ([386170c](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/386170cbf68ebf59d4510fe0a45cf83925ec9ba4))
|
||||||
|
* mesh sharing group ([9afeebf](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/9afeebf67212cdf4d3ac9e9a3b78a7ced5c7ecfe))
|
||||||
|
* random mesh sharing group ([4fa43ed](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/4fa43eda4bc70c9c827c4fad9d5ae1327bfbc322))
|
||||||
|
* support 8+ materials ([b76bf5a](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/b76bf5a5ad378c3c4b16bcf08d21337757557101)), closes [#122](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/122) [#152](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/152) [#186](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/186)
|
||||||
|
|
||||||
|
|
||||||
|
### BREAKING CHANGES
|
||||||
|
|
||||||
|
* If you update to v4, you may be required to adjust your UIParticle.scale.
|
||||||
|
|
||||||
|
## [3.3.12](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.3.11...3.3.12) (2022-06-10)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* always display materials in inspector ([a10042d](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/a10042d989dea18ff010bdbe970aa434e2bdf117))
|
||||||
|
* UNITY_UI_ALPHACLIP in UIAdditive shader is not working ([e817e8d](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/e817e8d3c75188f3243243855b135bd840699199))
|
||||||
|
|
||||||
|
## [3.3.11](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.3.10...3.3.11) (2022-06-10)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* sorting by layer does not work properly ([ccc09e6](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/ccc09e6aca2fa3d7bc887e6c733e66706e40ae0f))
|
||||||
|
* when using linear color space, the particle colors are not output correctly ([11c3a7b](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/11c3a7b37415d78e1b8ba3988a6e043c9f1861e0)), closes [#203](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/203)
|
||||||
|
|
||||||
|
## [3.3.10](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.3.9...3.3.10) (2022-02-17)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* annoying warning for [ExecuteInEditMode] ([b6b2c72](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/b6b2c72b198566e2880a22831c937eff7e9eff28)), closes [#180](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/180)
|
||||||
|
* PrefabStageUtility class is not experimental after 2021.2 ([0fd5d7a](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/0fd5d7affe707fa9e92abd6e192bf400dfb1a80a))
|
||||||
|
|
||||||
|
## [3.3.9](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.3.8...3.3.9) (2021-08-02)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* fix for warning CS0618 ([61760d9](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/61760d940cdd4baacaa196ac1631a0a1a40b7204))
|
||||||
|
|
||||||
|
## [3.3.8](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.3.7...3.3.8) (2021-06-08)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* improve performance ([e352d15](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/e352d153cef8c1efb2792e35010d7eed1e31a040))
|
||||||
|
|
||||||
|
## [3.3.7](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.3.6...3.3.7) (2021-06-02)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* Refresh() will be called multiple times in the same frame, due to external assets ([0b9d80d](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/0b9d80da939580c72ca1471081d7a034edc985d4))
|
||||||
|
|
||||||
|
## [3.3.6](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.3.5...3.3.6) (2021-05-11)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* In rare cases, the generated camera (for baking) will not be deactivated ([12c748a](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/12c748a8cd4adfd2dc5f085cec77050431f261a4))
|
||||||
|
* remove from "Add Component" menu ([476c402](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/476c4027ff5f70fb9b4c026dd5fc59bf5a876227))
|
||||||
|
|
||||||
|
## [3.3.5](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.3.4...3.3.5) (2021-02-28)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* fix cached position for pre-warmed particles ([e3f42d7](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/e3f42d747a7fd973b5813cc72a9444943a6c3ad0))
|
||||||
|
* ParticleSystem creates particles in wrong position during pre-warm ([b93e0e4](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/b93e0e4701c7011176eeec5c109dda7f4ea632e0)), closes [#147](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/147)
|
||||||
|
|
||||||
|
## [3.3.4](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.3.3...3.3.4) (2021-02-22)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* Multiselecting sets all scales to the same value ([13223b2](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/13223b2d747609cf88b424ad590bda7f857b387d))
|
||||||
|
* support sub emitter with 'PlayOnAwake' ([d5ce78a](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/d5ce78ae5acf2740ba7fdc6cde9f197c4e165484))
|
||||||
|
* The maximum material count is 8 ([3bb5241](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/3bb52412751360409747192150188ae904f2c3d3))
|
||||||
|
|
||||||
## [3.3.3](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.3.2...3.3.3) (2021-02-03)
|
## [3.3.3](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.3.2...3.3.3) (2021-02-03)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
97
README.md
@@ -1,8 +1,6 @@
|
|||||||
Particle Effect For UGUI (UI Particle)
|
Particle Effect For UGUI (UI Particle)
|
||||||
===
|
===
|
||||||
|
|
||||||
**:warning: NOTE: Do not use [the obsolete tags and branches](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/108) to reference the package. They will be removed in near future. :warning:**
|
|
||||||
|
|
||||||
This plugin provide a component to render particle effect for uGUI in Unity 2018.2 or later.
|
This plugin provide a component to render particle effect for uGUI in Unity 2018.2 or later.
|
||||||
The particle rendering is maskable and sortable, without Camera, RenderTexture or Canvas.
|
The particle rendering is maskable and sortable, without Camera, RenderTexture or Canvas.
|
||||||
|
|
||||||
@@ -30,47 +28,61 @@ This plugin uses new APIs `MeshBake/MashTrailBake` (added with Unity 2018.2) to
|
|||||||
You can mask and sort particles for uGUI without Camera, RenderTexture, Canvas.
|
You can mask and sort particles for uGUI without Camera, RenderTexture, Canvas.
|
||||||
|
|
||||||
Compares this "Baking mesh" approach with the conventional approach:
|
Compares this "Baking mesh" approach with the conventional approach:
|
||||||
(This scene is included in the package.)
|
[Performance test results](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/193#issuecomment-1160028374)
|
||||||
|
|
||||||
|Approach|Good|Bad|Screenshot|
|
|Approach|Good|Bad|Screenshot|
|
||||||
|-|-|-|-|
|
|-|-|-|-|
|
||||||
|Baking mesh<br>**\(UIParticle\)**|Rendered as is.<br>Maskable.<br>Sortable.<br>Less objects.|**Requires Unity 2018.2 or later.**<br>Requires UI shaders to use Mask.|<img src="https://user-images.githubusercontent.com/12690315/41765089-0302b9a2-763e-11e8-88b3-b6ffa306bbb0.gif" width="500px">|
|
|Baking mesh<br>**\(UIParticle\)**|Rendered as is.<br>Maskable.<br>Sortable.<br>Less objects.|[Not support `TEXCOORD*.zw` components for custom vertex stream](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/191#issuecomment-1043409186)|<img src="https://user-images.githubusercontent.com/12690315/41765089-0302b9a2-763e-11e8-88b3-b6ffa306bbb0.gif" width="500px">|
|
||||||
|Do nothing|Rendered as is.|**Looks like a glitch.**<br>Not maskable.<br>Not sortable.|<img src="https://user-images.githubusercontent.com/12690315/41765090-0329828a-763e-11e8-8d8a-f1d269ea3bc7.gif" width="500px">|
|
|Do nothing|Rendered as is.|**Looks like a glitch.**<br>Not maskable.<br>Not sortable.|<img src="https://user-images.githubusercontent.com/12690315/41765090-0329828a-763e-11e8-8d8a-f1d269ea3bc7.gif" width="500px">|
|
||||||
|Convert particle to UIVertex<br>[\(UIParticleSystem\)](https://forum.unity.com/threads/free-script-particle-systems-in-ui-screen-space-overlay.406862/)|Maskable.<br>Sortable.<br>Less objects.|**Adjustment is difficult.**<br>Requires UI shaders.<br>Difficult to adjust scale.<br>Force hierarchy scalling.<br>Simulation results are incorrect.<br>Trail, rotation of transform, time scaling are not supported.<br>Generate heavy GC every frame.|<img src="https://user-images.githubusercontent.com/12690315/41765088-02deb9c6-763e-11e8-98d0-9e0c1766ef39.gif" width="500px">|
|
|Convert particle to UIVertex<br>[\(UIParticleSystem\)](https://forum.unity.com/threads/free-script-particle-systems-in-ui-screen-space-overlay.406862/)|Maskable.<br>Sortable.<br>Less objects.|**Adjustment is difficult.**<br>Requires UI shaders.<br>Difficult to adjust scale.<br>Force hierarchy scalling.<br>Simulation results are incorrect.<br>Trail, rotation of transform, time scaling are not supported.<br>Generate heavy GC every frame.|<img src="https://user-images.githubusercontent.com/12690315/41765088-02deb9c6-763e-11e8-98d0-9e0c1766ef39.gif" width="500px">|
|
||||||
|Use Canvas to sort|Rendered as is.<br>Sortable.|**You must to manage sorting orders.**<br>Not maskable.<br>More batches.|<img src="https://user-images.githubusercontent.com/12690315/41765087-02b866ea-763e-11e8-8c33-081c9ad852f8.gif" width="500px">|
|
|Use Canvas to sort|Rendered as is.<br>Sortable.|**You must to manage sorting orders.**<br>Not maskable.<br>More batches.|<img src="https://user-images.githubusercontent.com/12690315/41765087-02b866ea-763e-11e8-8c33-081c9ad852f8.gif" width="500px">|
|
||||||
|Use RenderTexture|Maskable.<br>Sortable.|**Requires Camera and RenderTexture.**<br>Difficult to adjust position and size.<br>Quality depends on the RenderTexture's setting.|<img src="https://user-images.githubusercontent.com/12690315/41765085-0291b3e2-763e-11e8-827b-72e5ee9bc556.gif" width="500px">|
|
|Use RenderTexture|Maskable.<br>Sortable.|**Requires Camera and RenderTexture.**<br>Difficult to adjust position and size.<br>Quality depends on the RenderTexture's setting.|<img src="https://user-images.githubusercontent.com/12690315/41765085-0291b3e2-763e-11e8-827b-72e5ee9bc556.gif" width="500px">|
|
||||||
|
|
||||||
|
|Approach|FPS on Editor|FPS on iPhone6|FPS on Xperia XZ|
|
||||||
|
|--|--|--|--|
|
||||||
|
|Particle System|43|57|22|
|
||||||
|
|UIParticleSystem|4|3|0 (unmeasurable)|
|
||||||
|
|Sorting By Canvas|43|44|18|
|
||||||
|
|UIParticle|17|12|4|
|
||||||
|
|UIParticle with MeshSharing|44|45|30|
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
#### Features
|
#### Features
|
||||||
|
|
||||||
* Easy to use: the package is out-of-the-box
|
* Easy to use: the package is out-of-the-box
|
||||||
* Sort particle effects with UI
|
* Sort particle effects and UI by sibling index
|
||||||
* No Camera, RenderTexture or Canvas are required
|
* No Camera, RenderTexture or Canvas are required
|
||||||
* Masking with Mask or RectMask2D
|
* Masking by Mask or RectMask2D
|
||||||
* Support Trail module
|
* Support Trail module
|
||||||
* Change alpha with CanvasGroup
|
* Support CanvasGroup alpha
|
||||||
* No heavy allocation every frame
|
* No allocations
|
||||||
* Support overlay, camera space and world space
|
* Support overlay, camera space and world space
|
||||||
* Support changing material property with AnimationClip (AnimatableProperty)
|
* Support changing material property with AnimationClip (AnimatableProperty)
|
||||||

|

|
||||||
|
* [4.0.0+] Support 8+ materials
|
||||||
|
* [4.0.0+] Correct world space particle position when changing window size for standalone platforms (Windows, MacOSX and Linux)
|
||||||
|
* [4.0.0+] Adaptive scaling for UI
|
||||||
|
* [4.0.0+] Mesh sharing group to improve performance
|
||||||
|

|
||||||
|
* [4.0.0+] particle attractor component
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
<br><br><br><br>
|
<br><br><br><br>
|
||||||
|
|
||||||
## Demo
|
## Demo
|
||||||
|
|
||||||
* [WebGL Demo](https://mob-sakai.github.io/Demos/ParticleEffectForUGUI)
|
* [WebGL Demo](https://mob-sakai.github.io/demos/UIParticle_Demo/index.html)
|
||||||
|
> 
|
||||||
* [WebGL Demo (Cartoon FX & War FX)](https://mob-sakai.github.io/Demos/ParticleEffectForUGUI_CFX)
|
* [WebGL Demo (Cartoon FX & War FX)](https://mob-sakai.github.io/Demos/ParticleEffectForUGUI_CFX)
|
||||||
* [Cartoon FX Free][CFX] & [War FX][WFX] (by [Jean Moreno (JMO)][JMO]) with UIParticle
|
* [Cartoon FX Free][CFX] & [War FX][WFX] (by [Jean Moreno (JMO)][JMO]) with UIParticle
|
||||||
|
> 
|
||||||
|
|
||||||
[CFX]: https://assetstore.unity.com/packages/vfx/particles/cartoon-fx-free-109565
|
[CFX]: https://assetstore.unity.com/packages/vfx/particles/cartoon-fx-free-109565
|
||||||
[WFX]: https://assetstore.unity.com/packages/vfx/particles/war-fx-5669
|
[WFX]: https://assetstore.unity.com/packages/vfx/particles/war-fx-5669
|
||||||
[JMO]: https://assetstore.unity.com/publishers/1669
|
[JMO]: https://assetstore.unity.com/publishers/1669
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br><br><br><br>
|
<br><br><br><br>
|
||||||
|
|
||||||
@@ -99,7 +111,7 @@ Find the manifest.json file in the Packages folder of your project and add a lin
|
|||||||
|
|
||||||
To update the package, change suffix `#{version}` to the target version.
|
To update the package, change suffix `#{version}` to the target version.
|
||||||
|
|
||||||
* `"com.coffee.ui-particle": "https://github.com/mob-sakai/ParticleEffectForUGUI.git#3.3.0",`
|
* `"com.coffee.ui-particle": "https://github.com/mob-sakai/ParticleEffectForUGUI.git#4.0.0",`
|
||||||
|
|
||||||
Or, use [UpmGitExtension](https://github.com/mob-sakai/UpmGitExtension) to install and update the package.
|
Or, use [UpmGitExtension](https://github.com/mob-sakai/UpmGitExtension) to install and update the package.
|
||||||
|
|
||||||
@@ -147,7 +159,7 @@ Unity 2018.2 supports embedded packages.
|
|||||||
|
|
||||||
`UIParticle` controls the ParticleSystems that is attached to its own game objects and child game objects.
|
`UIParticle` controls the ParticleSystems that is attached to its own game objects and child game objects.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
| Properties | Description |
|
| Properties | Description |
|
||||||
| -- | -- |
|
| -- | -- |
|
||||||
@@ -155,7 +167,7 @@ Unity 2018.2 supports embedded packages.
|
|||||||
| Ignore Canvas Scale | Ignore the scale of the root canvas.<br>This prevents it from displaying small even in hierarchy scaling mode of `ParticleSystem`. |
|
| Ignore Canvas Scale | Ignore the scale of the root canvas.<br>This prevents it from displaying small even in hierarchy scaling mode of `ParticleSystem`. |
|
||||||
| Scale | Scale the rendering.<br>When the `3D` toggle is enabled, 3D scale (x,y,z) is supported. |
|
| Scale | Scale the rendering.<br>When the `3D` toggle is enabled, 3D scale (x,y,z) is supported. |
|
||||||
| Animatable Properties | If you want update material properties (e.g. `_MainTex_ST`, `_Color`) in AnimationClip, use this to mark the changes. |
|
| Animatable Properties | If you want update material properties (e.g. `_MainTex_ST`, `_Color`) in AnimationClip, use this to mark the changes. |
|
||||||
| Shrink By Material | Shrink rendering by material.<br>Performance will be improved, but in some cases the rendering is not correct. |
|
| Mesh Sharing | Particle simulation results are shared within the same group.<br>A large number of the same effects can be displayed with a small load.<br>When the `Random` toggle is enabled, it will be grouped randomaly. |
|
||||||
| Rendering Order | The ParticleSystems to be rendered.<br>You can change the rendering order and the materials. |
|
| Rendering Order | The ParticleSystems to be rendered.<br>You can change the rendering order and the materials. |
|
||||||
|
|
||||||
NOTE: Press `Refresh` button to reconstruct rendering order based on children ParticleSystem's sorting order and z position.
|
NOTE: Press `Refresh` button to reconstruct rendering order based on children ParticleSystem's sorting order and z position.
|
||||||
@@ -171,7 +183,7 @@ NOTE: Press `Refresh` button to reconstruct rendering order based on children Pa
|
|||||||
|
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
### With your ParticleSystem prefab
|
### With your existing ParticleSystem prefab
|
||||||
|
|
||||||
1. Select `Game Object/UI/ParticleSystem (Empty)` to create UIParticle.
|
1. Select `Game Object/UI/ParticleSystem (Empty)` to create UIParticle.
|
||||||

|

|
||||||
@@ -196,30 +208,57 @@ If you want to mask particles, set a stencil supported shader (such as `UI/UIAdd
|
|||||||
var go = GameObject.Instantiate(prefab);
|
var go = GameObject.Instantiate(prefab);
|
||||||
var uiParticle = go.AddComponent<UIParticle>();
|
var uiParticle = go.AddComponent<UIParticle>();
|
||||||
|
|
||||||
// Play/Stop the controled ParticleSystems.
|
// Control by ParticleSystem.
|
||||||
|
particleSystem.Play();
|
||||||
|
particleSystem.Emit(10);
|
||||||
|
|
||||||
|
// Control by UIParticle.
|
||||||
uiParticle.Play();
|
uiParticle.Play();
|
||||||
uiParticle.Stop();
|
uiParticle.Stop();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
### UIParticleAttractor component
|
||||||
|
|
||||||
|
`UIParticleAttractor` attracts particles generated by the specified ParticleSystem.
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
| Properties | Description |
|
||||||
|
| -- | -- |
|
||||||
|
| Particle System | Attracts particles generated by the specified particle system. |
|
||||||
|
| Distination Radius | Once the particle is within the radius, the particle lifetime will become 0 and `OnAttracted` will be called. |
|
||||||
|
| Delay Rate | Delay to start attracting.<br>It is a percentage of the particle's start lifetime. |
|
||||||
|
| Max Speed | Maximum speed of attracting.<br> If this value is too small, attracting may not be completed by the end of the lifetime and `OnAttracted` may not be called. |
|
||||||
|
| Movement | Attracting movement type. (Linear, Smooth, Sphere) |
|
||||||
|
| OnAttracted | An event called when attracting is complete (per particle). |
|
||||||
|
|
||||||
<br><br><br><br>
|
<br><br><br><br>
|
||||||
|
|
||||||
## Development Note
|
## Development Note
|
||||||
|
|
||||||
### Animatable material property
|
### Shader Limitation
|
||||||
|
|
||||||

|
UIParticles are based on UIVertex.
|
||||||
|
Therefore, only xy components is available for each UV in the shader. (zw components will be ignored).
|
||||||
|
So unfortunately UIParticles will not work well with some shaders.
|
||||||
|
When using custom vertex streams, you can fill zw components with "unnecessary" data.
|
||||||
|
https://github.com/mob-sakai/ParticleEffectForUGUI/issues/191
|
||||||
|
|
||||||
Animation clips can change the material properties of the Renderer, such as ParticleSystemRenderer.
|
- If you need a simple Additive shader, use the `UI/Additive` shader instead.
|
||||||
It uses MaterialPropertyBlock so it does not create new material instances.
|
- If you need a simple alpha-blend shader, use the `UI/Default` shader instead.
|
||||||
Using material properties, you can change UV animation, scale and color etc.
|
|
||||||
|
|
||||||
Well, there is a component called CanvasRenderer.
|
### Overheads
|
||||||
It is used by all Graphic components for UI (Text, Image, Raw Image, etc.) including UIParticle.
|
|
||||||
However, It is **NOT** a Renderer.
|
|
||||||
Therefore, in UIParticle, changing ParticleSystemRenderer's MaterialPropertyBlock by animation clip is ignored.
|
|
||||||
|
|
||||||
To prevent this, Use "Animatable Material Property".
|
UIParticle has some overheads and the batching depends on uGUI.
|
||||||
"Animatable Material Property" gets the necessary properties from ParticleSystemRenderer's MaterialPropertyBlock and sets them to the CanvasRenderer's material.
|
When improving performance, keep the following in mind:
|
||||||
|
- If you are displaying a large number of the same effect, consider `Mesh Sharing` feature in [UIParticle Component](#uiparticle-component).
|
||||||
|
- If you don't like the uniform output, consider `Random Group` feature.
|
||||||
|

|
||||||
|
- If you are using multiple materials, you will have more draw calls.
|
||||||
|
- Consider single material, atlasing the sprites, and using `Sprite` mode in the `Texture Sheet Animation` module in ParticleSystem.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -632,12 +632,12 @@ PrefabInstance:
|
|||||||
propertyPath: m_RootOrder
|
propertyPath: m_RootOrder
|
||||||
value: 12
|
value: 12
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 198823974488788982, guid: a97415c6b57076f41a6621a7b51d63a3,
|
- target: {fileID: 198638549123606584, guid: a97415c6b57076f41a6621a7b51d63a3,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: CollisionModule.plane0
|
propertyPath: CollisionModule.plane0
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 829922912}
|
objectReference: {fileID: 829922912}
|
||||||
- target: {fileID: 198638549123606584, guid: a97415c6b57076f41a6621a7b51d63a3,
|
- target: {fileID: 198823974488788982, guid: a97415c6b57076f41a6621a7b51d63a3,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: CollisionModule.plane0
|
propertyPath: CollisionModule.plane0
|
||||||
value:
|
value:
|
||||||
@@ -756,8 +756,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 16
|
m_FontSize: 16
|
||||||
@@ -922,8 +920,6 @@ MonoBehaviour:
|
|||||||
m_StringArgument:
|
m_StringArgument:
|
||||||
m_BoolArgument: 0
|
m_BoolArgument: 0
|
||||||
m_CallState: 2
|
m_CallState: 2
|
||||||
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
|
|
||||||
Culture=neutral, PublicKeyToken=null
|
|
||||||
--- !u!114 &248783022
|
--- !u!114 &248783022
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -942,8 +938,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 21300000, guid: 5ec8fc5d939ea2244985ca77a114c9d0, type: 3}
|
m_Sprite: {fileID: 21300000, guid: 5ec8fc5d939ea2244985ca77a114c9d0, type: 3}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -1086,8 +1080,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 0}
|
m_Sprite: {fileID: 0}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -1160,8 +1152,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 0}
|
m_Sprite: {fileID: 0}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -1268,8 +1258,6 @@ MonoBehaviour:
|
|||||||
m_StringArgument:
|
m_StringArgument:
|
||||||
m_BoolArgument: 0
|
m_BoolArgument: 0
|
||||||
m_CallState: 2
|
m_CallState: 2
|
||||||
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
|
|
||||||
Culture=neutral, PublicKeyToken=null
|
|
||||||
--- !u!114 &339986497
|
--- !u!114 &339986497
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -1288,8 +1276,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 21300000, guid: 3783f195e2c8dc84cb1461fbe881e9cb, type: 3}
|
m_Sprite: {fileID: 21300000, guid: 3783f195e2c8dc84cb1461fbe881e9cb, type: 3}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -1396,8 +1382,6 @@ MonoBehaviour:
|
|||||||
m_StringArgument:
|
m_StringArgument:
|
||||||
m_BoolArgument: 0
|
m_BoolArgument: 0
|
||||||
m_CallState: 2
|
m_CallState: 2
|
||||||
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
|
|
||||||
Culture=neutral, PublicKeyToken=null
|
|
||||||
--- !u!114 &345226730
|
--- !u!114 &345226730
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -1416,8 +1400,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 21300000, guid: 6ca93523b0317c242b05932fedb07cb3, type: 3}
|
m_Sprite: {fileID: 21300000, guid: 6ca93523b0317c242b05932fedb07cb3, type: 3}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -1490,8 +1472,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 0}
|
m_Sprite: {fileID: 0}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -1564,8 +1544,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 13
|
m_FontSize: 13
|
||||||
@@ -2091,8 +2069,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 0}
|
m_Sprite: {fileID: 0}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -2394,8 +2370,6 @@ MonoBehaviour:
|
|||||||
m_StringArgument:
|
m_StringArgument:
|
||||||
m_BoolArgument: 0
|
m_BoolArgument: 0
|
||||||
m_CallState: 2
|
m_CallState: 2
|
||||||
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
|
|
||||||
Culture=neutral, PublicKeyToken=null
|
|
||||||
--- !u!114 &890855620
|
--- !u!114 &890855620
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -2414,8 +2388,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 21300000, guid: a2bcf923df54ffa4ba7e795955c5dc22, type: 3}
|
m_Sprite: {fileID: 21300000, guid: a2bcf923df54ffa4ba7e795955c5dc22, type: 3}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -2488,8 +2460,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 26
|
m_FontSize: 26
|
||||||
@@ -2914,8 +2884,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 21300000, guid: c474936d3f7aa204d8939cbe05170aa5, type: 3}
|
m_Sprite: {fileID: 21300000, guid: c474936d3f7aa204d8939cbe05170aa5, type: 3}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -2988,8 +2956,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 13
|
m_FontSize: 13
|
||||||
@@ -3837,7 +3803,8 @@ GameObject:
|
|||||||
- component: {fileID: 1658907789}
|
- component: {fileID: 1658907789}
|
||||||
- component: {fileID: 1658907788}
|
- component: {fileID: 1658907788}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Canvas
|
m_Name: "Button - Press LEFT/RIGHT to switch effects\r\nPress DEL to delete effects
|
||||||
|
on screen"
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -4157,7 +4124,6 @@ MonoBehaviour:
|
|||||||
groundLabel: {fileID: 2020602887}
|
groundLabel: {fileID: 2020602887}
|
||||||
EffectLabel: {fileID: 1971818724}
|
EffectLabel: {fileID: 1971818724}
|
||||||
EffectIndexLabel: {fileID: 899464719}
|
EffectIndexLabel: {fileID: 899464719}
|
||||||
UiParticle: {fileID: 1706420381}
|
|
||||||
--- !u!1001 &1692523113
|
--- !u!1001 &1692523113
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -4209,18 +4175,6 @@ Transform:
|
|||||||
type: 3}
|
type: 3}
|
||||||
m_PrefabInstance: {fileID: 1692523113}
|
m_PrefabInstance: {fileID: 1692523113}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
--- !u!114 &1706420381 stripped
|
|
||||||
MonoBehaviour:
|
|
||||||
m_CorrespondingSourceObject: {fileID: 3859681903619808811, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
m_PrefabInstance: {fileID: 3859681902071314102}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 0}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 16f0b0b6d0b7542bfbd20a3e05b04ff1, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
--- !u!1001 &1743486442
|
--- !u!1001 &1743486442
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -4264,14 +4218,14 @@ PrefabInstance:
|
|||||||
propertyPath: m_RootOrder
|
propertyPath: m_RootOrder
|
||||||
value: 3
|
value: 3
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 19800002, guid: f95ff734540a0d749be6571b6cb5b37f, type: 3}
|
|
||||||
propertyPath: randomSeed
|
|
||||||
value: -1059085447
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 19800000, guid: f95ff734540a0d749be6571b6cb5b37f, type: 3}
|
- target: {fileID: 19800000, guid: f95ff734540a0d749be6571b6cb5b37f, type: 3}
|
||||||
propertyPath: randomSeed
|
propertyPath: randomSeed
|
||||||
value: 2027633633
|
value: 2027633633
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 19800002, guid: f95ff734540a0d749be6571b6cb5b37f, type: 3}
|
||||||
|
propertyPath: randomSeed
|
||||||
|
value: -1059085447
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 19800004, guid: f95ff734540a0d749be6571b6cb5b37f, type: 3}
|
- target: {fileID: 19800004, guid: f95ff734540a0d749be6571b6cb5b37f, type: 3}
|
||||||
propertyPath: randomSeed
|
propertyPath: randomSeed
|
||||||
value: -1999784513
|
value: -1999784513
|
||||||
@@ -4578,8 +4532,6 @@ MonoBehaviour:
|
|||||||
m_StringArgument:
|
m_StringArgument:
|
||||||
m_BoolArgument: 0
|
m_BoolArgument: 0
|
||||||
m_CallState: 2
|
m_CallState: 2
|
||||||
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
|
|
||||||
Culture=neutral, PublicKeyToken=null
|
|
||||||
--- !u!114 &1861368822
|
--- !u!114 &1861368822
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -4598,8 +4550,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 21300000, guid: 4c72f3c555f96274787f31379fabb6ff, type: 3}
|
m_Sprite: {fileID: 21300000, guid: 4c72f3c555f96274787f31379fabb6ff, type: 3}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -4723,8 +4673,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 19
|
m_FontSize: 19
|
||||||
@@ -4904,8 +4852,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 13
|
m_FontSize: 13
|
||||||
@@ -5087,8 +5033,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@@ -5118,10 +5062,75 @@ PrefabInstance:
|
|||||||
m_Modification:
|
m_Modification:
|
||||||
m_TransformParent: {fileID: 1658907791}
|
m_TransformParent: {fileID: 1658907791}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
- target: {fileID: 3859681902015380149, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 609153650523706837, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_Name
|
propertyPath: m_AnchorMin.y
|
||||||
value: ParticleEffectForUGUI
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 609153650523706837, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMax.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 609153650523706837, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 609153650523706837, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_SizeDelta.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 711230566651291100, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMin.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 711230566651291100, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMax.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 711230566651291100, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 711230566651291100, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 711230566651291100, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_SizeDelta.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3858009113556185312, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMin.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3858009113556185312, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMax.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3858009113556185312, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3858009113556185312, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3858009113556185312, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_SizeDelta.x
|
||||||
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3859681902015380146, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 3859681902015380146, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
@@ -5228,105 +5237,10 @@ PrefabInstance:
|
|||||||
propertyPath: m_Pivot.y
|
propertyPath: m_Pivot.y
|
||||||
value: 0.5
|
value: 0.5
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3859681902116860941, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 3859681902015380149, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_Name
|
||||||
value: 0
|
value: ParticleEffectForUGUI
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902116860941, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902116860941, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902116860941, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902116860941, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_SizeDelta.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902277892211, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMin.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902277892211, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902277892211, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902277892211, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902277892211, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_SizeDelta.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902655638209, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMax.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902655638209, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902942525184, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMin.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902942525184, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMax.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902942525184, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902805960555, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMin.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902805960555, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902805960555, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902805960555, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902805960555, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_SizeDelta.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3859681902040450535, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 3859681902040450535, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
@@ -5338,42 +5252,52 @@ PrefabInstance:
|
|||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3859681902325777285, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 3859681902116860941, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMin.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902325777285, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMax.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681902325777285, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3859681903288043166, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3859681903288043166, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 3859681902116860941, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3859681903288043166, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 3859681902116860941, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3859681903288043166, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 3859681902116860941, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3859681903288043166, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 3859681902116860941, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_SizeDelta.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681902277892211, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMin.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681902277892211, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMax.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681902277892211, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681902277892211, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681902277892211, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
value: 0
|
value: 0
|
||||||
@@ -5388,21 +5312,96 @@ PrefabInstance:
|
|||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3859681903964062782, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 3859681902325777285, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMin.x
|
propertyPath: m_AnchorMin.x
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3859681903964062782, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 3859681902325777285, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMax.x
|
propertyPath: m_AnchorMax.x
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3859681903964062782, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 3859681902325777285, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681902655638209, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMax.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681902655638209, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMax.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681902805960555, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMin.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681902805960555, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMax.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681902805960555, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681902805960555, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681902805960555, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_SizeDelta.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681902942525184, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMin.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681902942525184, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMax.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681902942525184, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMax.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681903288043166, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMin.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681903288043166, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMax.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681903288043166, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681903288043166, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681903288043166, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_SizeDelta.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3859681903619808810, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 3859681903619808810, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_LocalScale.x
|
propertyPath: m_LocalScale.x
|
||||||
@@ -5418,86 +5417,21 @@ PrefabInstance:
|
|||||||
propertyPath: m_LocalScale.z
|
propertyPath: m_LocalScale.z
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 5188063719694138574, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 3859681903964062782, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.x
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 5188063719694138574, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 3859681903964062782, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMax.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3859681903964062782, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 5188063719694138574, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 5188063719694138574, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 5188063719694138574, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_SizeDelta.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3644842557253717055, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMin.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3644842557253717055, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3644842557253717055, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3644842557253717055, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3644842557253717055, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_SizeDelta.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 6071153299819507308, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_StringArgument
|
|
||||||
value: WarFX Demo New
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 711230566651291100, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMin.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 711230566651291100, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 711230566651291100, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 711230566651291100, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 711230566651291100, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_SizeDelta.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 4951016627369570644, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 4951016627369570644, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
@@ -5518,6 +5452,31 @@ PrefabInstance:
|
|||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5041533387716296293, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMin.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5041533387716296293, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchorMax.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5041533387716296293, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5041533387716296293, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5041533387716296293, guid: 3432d66abba624d4fad1150154199656,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_SizeDelta.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 5926256014245184665, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 5926256014245184665, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
@@ -5568,76 +5527,6 @@ PrefabInstance:
|
|||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 5041533387716296293, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMin.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 5041533387716296293, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 5041533387716296293, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 5041533387716296293, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 5041533387716296293, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_SizeDelta.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 609153650523706837, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMin.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 609153650523706837, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 609153650523706837, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 609153650523706837, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_SizeDelta.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3858009113556185312, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMin.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3858009113556185312, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchorMax.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3858009113556185312, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3858009113556185312, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_AnchoredPosition.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3858009113556185312, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_SizeDelta.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 7322619821146952834, guid: 3432d66abba624d4fad1150154199656,
|
- target: {fileID: 7322619821146952834, guid: 3432d66abba624d4fad1150154199656,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
@@ -5663,10 +5552,5 @@ PrefabInstance:
|
|||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 5512827307014369649, guid: 3432d66abba624d4fad1150154199656,
|
|
||||||
type: 3}
|
|
||||||
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_StringArgument
|
|
||||||
value: WarFX Demo New
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 3432d66abba624d4fad1150154199656, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: 3432d66abba624d4fad1150154199656, type: 3}
|
||||||
|
|||||||
@@ -63,8 +63,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@@ -90,7 +88,7 @@ GameObject:
|
|||||||
- component: {fileID: 5041533387716296293}
|
- component: {fileID: 5041533387716296293}
|
||||||
- component: {fileID: 5122306272436999681}
|
- component: {fileID: 5122306272436999681}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Buttons (1)
|
m_Name: Button - Canvas Width
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -204,8 +202,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@@ -285,8 +281,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@@ -399,8 +393,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@@ -483,8 +475,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 1
|
m_Type: 1
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -559,8 +549,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@@ -732,8 +720,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 1
|
m_Type: 1
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -806,8 +792,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 1
|
m_Type: 1
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -828,7 +812,7 @@ GameObject:
|
|||||||
- component: {fileID: 3859681902116860941}
|
- component: {fileID: 3859681902116860941}
|
||||||
- component: {fileID: 3859681902116860938}
|
- component: {fileID: 3859681902116860938}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Toggle
|
m_Name: Toggle - Spawn On UI
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -898,8 +882,6 @@ MonoBehaviour:
|
|||||||
onValueChanged:
|
onValueChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
|
|
||||||
Culture=neutral, PublicKeyToken=null
|
|
||||||
m_IsOn: 1
|
m_IsOn: 1
|
||||||
--- !u!1 &3859681902214993101
|
--- !u!1 &3859681902214993101
|
||||||
GameObject:
|
GameObject:
|
||||||
@@ -965,8 +947,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@@ -1060,8 +1040,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@@ -1101,7 +1079,7 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 3859681902277892211}
|
- component: {fileID: 3859681902277892211}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Particle Size
|
m_Name: Slider - Particle Size
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -1191,8 +1169,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 1
|
m_Type: 1
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -1265,8 +1241,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -1376,8 +1350,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@@ -1470,8 +1442,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 1
|
m_Type: 1
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -1580,8 +1550,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -1601,7 +1569,7 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 3859681902805960555}
|
- component: {fileID: 3859681902805960555}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Particle Alpha
|
m_Name: Slider - Particle Alpha
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -1727,8 +1695,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -1802,8 +1768,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@@ -1930,8 +1894,6 @@ MonoBehaviour:
|
|||||||
m_StringArgument:
|
m_StringArgument:
|
||||||
m_BoolArgument: 0
|
m_BoolArgument: 0
|
||||||
m_CallState: 2
|
m_CallState: 2
|
||||||
m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0,
|
|
||||||
Culture=neutral, PublicKeyToken=null
|
|
||||||
--- !u!1 &3859681903088303440
|
--- !u!1 &3859681903088303440
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -1997,8 +1959,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 1
|
m_Type: 1
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -2083,8 +2043,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 1
|
m_Type: 1
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -2202,8 +2160,6 @@ MonoBehaviour:
|
|||||||
m_StringArgument:
|
m_StringArgument:
|
||||||
m_BoolArgument: 0
|
m_BoolArgument: 0
|
||||||
m_CallState: 2
|
m_CallState: 2
|
||||||
m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0,
|
|
||||||
Culture=neutral, PublicKeyToken=null
|
|
||||||
--- !u!1 &3859681903267533664
|
--- !u!1 &3859681903267533664
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -2267,8 +2223,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@@ -2293,7 +2247,7 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 3859681903288043166}
|
- component: {fileID: 3859681903288043166}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: UI Alpha
|
m_Name: Slider - Front UI Alpha
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -2453,8 +2407,6 @@ MonoBehaviour:
|
|||||||
m_StringArgument:
|
m_StringArgument:
|
||||||
m_BoolArgument: 0
|
m_BoolArgument: 0
|
||||||
m_CallState: 2
|
m_CallState: 2
|
||||||
m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0,
|
|
||||||
Culture=neutral, PublicKeyToken=null
|
|
||||||
--- !u!1 &3859681903619808813
|
--- !u!1 &3859681903619808813
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -2519,13 +2471,14 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_IsTrail: 0
|
m_IsTrail: 0
|
||||||
m_IgnoreCanvasScaler: 1
|
m_Scale3D: {x: 100, y: 100, z: 100}
|
||||||
m_Scale: 100
|
|
||||||
m_AnimatableProperties: []
|
m_AnimatableProperties: []
|
||||||
m_Particles: []
|
m_Particles: []
|
||||||
|
m_MeshSharing: 0
|
||||||
|
m_GroupId: 0
|
||||||
|
m_GroupMaxId: 0
|
||||||
|
m_Maskable: 1
|
||||||
--- !u!225 &3859681903619808809
|
--- !u!225 &3859681903619808809
|
||||||
CanvasGroup:
|
CanvasGroup:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -2637,8 +2590,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 1
|
m_Type: 1
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -2748,8 +2699,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 1
|
m_Type: 1
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -2822,8 +2771,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -2847,7 +2794,7 @@ GameObject:
|
|||||||
- component: {fileID: 3360835017440122026}
|
- component: {fileID: 3360835017440122026}
|
||||||
- component: {fileID: 1366113540849943547}
|
- component: {fileID: 1366113540849943547}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Button (1)
|
m_Name: Button - Camera
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -2899,8 +2846,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 1
|
m_Type: 1
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -2961,8 +2906,6 @@ MonoBehaviour:
|
|||||||
m_StringArgument:
|
m_StringArgument:
|
||||||
m_BoolArgument: 0
|
m_BoolArgument: 0
|
||||||
m_CallState: 2
|
m_CallState: 2
|
||||||
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
|
|
||||||
Culture=neutral, PublicKeyToken=null
|
|
||||||
--- !u!114 &1366113540849943547
|
--- !u!114 &1366113540849943547
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -2997,7 +2940,7 @@ GameObject:
|
|||||||
- component: {fileID: 6406053850282885998}
|
- component: {fileID: 6406053850282885998}
|
||||||
- component: {fileID: 4557790655482294870}
|
- component: {fileID: 4557790655482294870}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Button
|
m_Name: Button - Overlay
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -3049,8 +2992,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 1
|
m_Type: 1
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -3111,8 +3052,6 @@ MonoBehaviour:
|
|||||||
m_StringArgument:
|
m_StringArgument:
|
||||||
m_BoolArgument: 1
|
m_BoolArgument: 1
|
||||||
m_CallState: 2
|
m_CallState: 2
|
||||||
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
|
|
||||||
Culture=neutral, PublicKeyToken=null
|
|
||||||
--- !u!114 &4557790655482294870
|
--- !u!114 &4557790655482294870
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -3144,7 +3083,7 @@ GameObject:
|
|||||||
- component: {fileID: 711230566651291100}
|
- component: {fileID: 711230566651291100}
|
||||||
- component: {fileID: 1967301068910169843}
|
- component: {fileID: 1967301068910169843}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Buttons
|
m_Name: Button - Render Mode
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -3258,8 +3197,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@@ -3337,8 +3274,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@@ -3417,8 +3352,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@@ -3432,7 +3365,7 @@ MonoBehaviour:
|
|||||||
m_HorizontalOverflow: 0
|
m_HorizontalOverflow: 0
|
||||||
m_VerticalOverflow: 0
|
m_VerticalOverflow: 0
|
||||||
m_LineSpacing: 1
|
m_LineSpacing: 1
|
||||||
m_Text: Particle Effect For UGUI v3.0.0 Demo
|
m_Text: Particle Effect For UGUI v4.0.0 Demo
|
||||||
--- !u!114 &8838998222179528398
|
--- !u!114 &8838998222179528398
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -3577,8 +3510,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 14
|
m_FontSize: 14
|
||||||
@@ -3622,7 +3553,7 @@ GameObject:
|
|||||||
- component: {fileID: 6199819795074822241}
|
- component: {fileID: 6199819795074822241}
|
||||||
- component: {fileID: 6942933885432526710}
|
- component: {fileID: 6942933885432526710}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Button
|
m_Name: Button - 800
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -3674,8 +3605,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 1
|
m_Type: 1
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -3736,8 +3665,6 @@ MonoBehaviour:
|
|||||||
m_StringArgument:
|
m_StringArgument:
|
||||||
m_BoolArgument: 0
|
m_BoolArgument: 0
|
||||||
m_CallState: 2
|
m_CallState: 2
|
||||||
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
|
|
||||||
Culture=neutral, PublicKeyToken=null
|
|
||||||
--- !u!114 &6942933885432526710
|
--- !u!114 &6942933885432526710
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -3772,7 +3699,7 @@ GameObject:
|
|||||||
- component: {fileID: 7450843285597770156}
|
- component: {fileID: 7450843285597770156}
|
||||||
- component: {fileID: 2242164212718897476}
|
- component: {fileID: 2242164212718897476}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Button (1)
|
m_Name: Button - 1280
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@@ -3824,8 +3751,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 1
|
m_Type: 1
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -3886,8 +3811,6 @@ MonoBehaviour:
|
|||||||
m_StringArgument:
|
m_StringArgument:
|
||||||
m_BoolArgument: 0
|
m_BoolArgument: 0
|
||||||
m_CallState: 2
|
m_CallState: 2
|
||||||
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
|
|
||||||
Culture=neutral, PublicKeyToken=null
|
|
||||||
--- !u!114 &2242164212718897476
|
--- !u!114 &2242164212718897476
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -3973,8 +3896,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 1
|
m_Type: 1
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -4061,8 +3982,6 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
|
|
||||||
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_Type: 1
|
m_Type: 1
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
@@ -4120,8 +4039,6 @@ MonoBehaviour:
|
|||||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||||
m_IntArgument: 0
|
m_IntArgument: 0
|
||||||
m_FloatArgument: 0
|
m_FloatArgument: 0
|
||||||
m_StringArgument:
|
m_StringArgument: WarFX Demo New
|
||||||
m_BoolArgument: 0
|
m_BoolArgument: 0
|
||||||
m_CallState: 2
|
m_CallState: 2
|
||||||
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
|
|
||||||
Culture=neutral, PublicKeyToken=null
|
|
||||||
|
|||||||
8
Samples~/Demo/Animations.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 097ebac92791448c1871b0dffb43c4c6
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
339
Samples~/Demo/Animations/UIParticle_Demo_Animatable.controller
Normal file
@@ -0,0 +1,339 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!91 &9100000
|
||||||
|
AnimatorController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: UIParticle_Demo_Animatable
|
||||||
|
serializedVersion: 5
|
||||||
|
m_AnimatorParameters: []
|
||||||
|
m_AnimatorLayers:
|
||||||
|
- serializedVersion: 5
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_StateMachine: {fileID: 1107990299158400902}
|
||||||
|
m_Mask: {fileID: 0}
|
||||||
|
m_Motions: []
|
||||||
|
m_Behaviours: []
|
||||||
|
m_BlendingMode: 0
|
||||||
|
m_SyncedLayerIndex: -1
|
||||||
|
m_DefaultWeight: 0
|
||||||
|
m_IKPass: 0
|
||||||
|
m_SyncedLayerAffectsTiming: 0
|
||||||
|
m_Controller: {fileID: 9100000}
|
||||||
|
--- !u!74 &74971957227727780
|
||||||
|
AnimationClip:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: UIParticle_Demo_Animatable
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Legacy: 0
|
||||||
|
m_Compressed: 0
|
||||||
|
m_UseHighQualityCurve: 1
|
||||||
|
m_RotationCurves: []
|
||||||
|
m_CompressedRotationCurves: []
|
||||||
|
m_EulerCurves: []
|
||||||
|
m_PositionCurves: []
|
||||||
|
m_ScaleCurves: []
|
||||||
|
m_FloatCurves:
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
attribute: material._MainTex_ST.x
|
||||||
|
path:
|
||||||
|
classID: 199
|
||||||
|
script: {fileID: 0}
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
attribute: material._MainTex_ST.y
|
||||||
|
path:
|
||||||
|
classID: 199
|
||||||
|
script: {fileID: 0}
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
attribute: material._MainTex_ST.z
|
||||||
|
path:
|
||||||
|
classID: 199
|
||||||
|
script: {fileID: 0}
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: -0.6
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 1
|
||||||
|
value: 0.6
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 1.5
|
||||||
|
value: 0.6
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
attribute: material._MainTex_ST.w
|
||||||
|
path:
|
||||||
|
classID: 199
|
||||||
|
script: {fileID: 0}
|
||||||
|
m_PPtrCurves: []
|
||||||
|
m_SampleRate: 30
|
||||||
|
m_WrapMode: 0
|
||||||
|
m_Bounds:
|
||||||
|
m_Center: {x: 0, y: 0, z: 0}
|
||||||
|
m_Extent: {x: 0, y: 0, z: 0}
|
||||||
|
m_ClipBindingConstant:
|
||||||
|
genericBindings:
|
||||||
|
- serializedVersion: 2
|
||||||
|
path: 0
|
||||||
|
attribute: 914802057
|
||||||
|
script: {fileID: 0}
|
||||||
|
typeID: 199
|
||||||
|
customType: 22
|
||||||
|
isPPtrCurve: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
path: 0
|
||||||
|
attribute: 109495689
|
||||||
|
script: {fileID: 0}
|
||||||
|
typeID: 199
|
||||||
|
customType: 22
|
||||||
|
isPPtrCurve: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
path: 0
|
||||||
|
attribute: 377931145
|
||||||
|
script: {fileID: 0}
|
||||||
|
typeID: 199
|
||||||
|
customType: 22
|
||||||
|
isPPtrCurve: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
path: 0
|
||||||
|
attribute: 646366601
|
||||||
|
script: {fileID: 0}
|
||||||
|
typeID: 199
|
||||||
|
customType: 22
|
||||||
|
isPPtrCurve: 0
|
||||||
|
pptrCurveMapping: []
|
||||||
|
m_AnimationClipSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_AdditiveReferencePoseClip: {fileID: 0}
|
||||||
|
m_AdditiveReferencePoseTime: 0
|
||||||
|
m_StartTime: 0
|
||||||
|
m_StopTime: 1.5
|
||||||
|
m_OrientationOffsetY: 0
|
||||||
|
m_Level: 0
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_HasAdditiveReferencePose: 0
|
||||||
|
m_LoopTime: 1
|
||||||
|
m_LoopBlend: 0
|
||||||
|
m_LoopBlendOrientation: 0
|
||||||
|
m_LoopBlendPositionY: 0
|
||||||
|
m_LoopBlendPositionXZ: 0
|
||||||
|
m_KeepOriginalOrientation: 0
|
||||||
|
m_KeepOriginalPositionY: 1
|
||||||
|
m_KeepOriginalPositionXZ: 0
|
||||||
|
m_HeightFromFeet: 0
|
||||||
|
m_Mirror: 0
|
||||||
|
m_EditorCurves:
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
attribute: material._MainTex_ST.x
|
||||||
|
path:
|
||||||
|
classID: 199
|
||||||
|
script: {fileID: 0}
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
attribute: material._MainTex_ST.y
|
||||||
|
path:
|
||||||
|
classID: 199
|
||||||
|
script: {fileID: 0}
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
attribute: material._MainTex_ST.z
|
||||||
|
path:
|
||||||
|
classID: 199
|
||||||
|
script: {fileID: 0}
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: -0.6
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 1
|
||||||
|
value: 0.6
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 1.5
|
||||||
|
value: 0.6
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
attribute: material._MainTex_ST.w
|
||||||
|
path:
|
||||||
|
classID: 199
|
||||||
|
script: {fileID: 0}
|
||||||
|
m_EulerEditorCurves: []
|
||||||
|
m_HasGenericRootTransform: 0
|
||||||
|
m_HasMotionFloatCurves: 0
|
||||||
|
m_Events: []
|
||||||
|
--- !u!1102 &1102093862037490004
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Play
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_Position: {x: 50, y: 50, z: 0}
|
||||||
|
m_IKOnFeet: 0
|
||||||
|
m_WriteDefaultValues: 1
|
||||||
|
m_Mirror: 0
|
||||||
|
m_SpeedParameterActive: 0
|
||||||
|
m_MirrorParameterActive: 0
|
||||||
|
m_CycleOffsetParameterActive: 0
|
||||||
|
m_TimeParameterActive: 0
|
||||||
|
m_Motion: {fileID: 74971957227727780}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1107 &1107990299158400902
|
||||||
|
AnimatorStateMachine:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_ChildStates:
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: 1102093862037490004}
|
||||||
|
m_Position: {x: 288, y: 48, z: 0}
|
||||||
|
m_ChildStateMachines: []
|
||||||
|
m_AnyStateTransitions: []
|
||||||
|
m_EntryTransitions: []
|
||||||
|
m_StateMachineTransitions: {}
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
||||||
|
m_EntryPosition: {x: 48, y: 120, z: 0}
|
||||||
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
|
m_DefaultState: {fileID: 1102093862037490004}
|
||||||
4
Samples~/Demo/UIParticle_Demo.renderTexture.meta → Samples~/Demo/Animations/UIParticle_Demo_Animatable.controller.meta
Normal file → Executable file
@@ -1,8 +1,8 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: ab4cc8f5f51c14175af41c4daa68cbf5
|
guid: 23dca587da071cd41ac3a7fc070bea5c
|
||||||
NativeFormatImporter:
|
NativeFormatImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
mainObjectFileID: 8400000
|
mainObjectFileID: 9100000
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
268
Samples~/Demo/Animations/UIParticle_Demo_Pop.controller
Normal file
@@ -0,0 +1,268 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!91 &9100000
|
||||||
|
AnimatorController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: UIParticle_Demo_Pop
|
||||||
|
serializedVersion: 5
|
||||||
|
m_AnimatorParameters: []
|
||||||
|
m_AnimatorLayers:
|
||||||
|
- serializedVersion: 5
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_StateMachine: {fileID: 1107303963999173640}
|
||||||
|
m_Mask: {fileID: 0}
|
||||||
|
m_Motions: []
|
||||||
|
m_Behaviours: []
|
||||||
|
m_BlendingMode: 0
|
||||||
|
m_SyncedLayerIndex: -1
|
||||||
|
m_DefaultWeight: 0
|
||||||
|
m_IKPass: 0
|
||||||
|
m_SyncedLayerAffectsTiming: 0
|
||||||
|
m_Controller: {fileID: 9100000}
|
||||||
|
--- !u!74 &74513151621551130
|
||||||
|
AnimationClip:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: UIParticle_Demo_Pop
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Legacy: 0
|
||||||
|
m_Compressed: 0
|
||||||
|
m_UseHighQualityCurve: 1
|
||||||
|
m_RotationCurves: []
|
||||||
|
m_CompressedRotationCurves: []
|
||||||
|
m_EulerCurves: []
|
||||||
|
m_PositionCurves: []
|
||||||
|
m_ScaleCurves:
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: {x: 1, y: 1, z: 1}
|
||||||
|
inSlope: {x: 0, y: 0, z: 0}
|
||||||
|
outSlope: {x: 0, y: 0, z: 0}
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
|
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0.06666667
|
||||||
|
value: {x: 1.5, y: 1.5, z: 1.5}
|
||||||
|
inSlope: {x: 0, y: 0, z: 0}
|
||||||
|
outSlope: {x: 0, y: 0, z: 0}
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
|
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0.5
|
||||||
|
value: {x: 1, y: 1, z: 1}
|
||||||
|
inSlope: {x: 0, y: 0, z: 0}
|
||||||
|
outSlope: {x: 0, y: 0, z: 0}
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
|
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
path:
|
||||||
|
m_FloatCurves: []
|
||||||
|
m_PPtrCurves: []
|
||||||
|
m_SampleRate: 30
|
||||||
|
m_WrapMode: 0
|
||||||
|
m_Bounds:
|
||||||
|
m_Center: {x: 0, y: 0, z: 0}
|
||||||
|
m_Extent: {x: 0, y: 0, z: 0}
|
||||||
|
m_ClipBindingConstant:
|
||||||
|
genericBindings: []
|
||||||
|
pptrCurveMapping: []
|
||||||
|
m_AnimationClipSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_AdditiveReferencePoseClip: {fileID: 0}
|
||||||
|
m_AdditiveReferencePoseTime: 0
|
||||||
|
m_StartTime: 0
|
||||||
|
m_StopTime: 0.5
|
||||||
|
m_OrientationOffsetY: 0
|
||||||
|
m_Level: 0
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_HasAdditiveReferencePose: 0
|
||||||
|
m_LoopTime: 0
|
||||||
|
m_LoopBlend: 0
|
||||||
|
m_LoopBlendOrientation: 0
|
||||||
|
m_LoopBlendPositionY: 0
|
||||||
|
m_LoopBlendPositionXZ: 0
|
||||||
|
m_KeepOriginalOrientation: 0
|
||||||
|
m_KeepOriginalPositionY: 1
|
||||||
|
m_KeepOriginalPositionXZ: 0
|
||||||
|
m_HeightFromFeet: 0
|
||||||
|
m_Mirror: 0
|
||||||
|
m_EditorCurves:
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0.06666667
|
||||||
|
value: 1.5
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0.5
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
attribute: m_LocalScale.x
|
||||||
|
path:
|
||||||
|
classID: 224
|
||||||
|
script: {fileID: 0}
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0.06666667
|
||||||
|
value: 1.5
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0.5
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
attribute: m_LocalScale.y
|
||||||
|
path:
|
||||||
|
classID: 224
|
||||||
|
script: {fileID: 0}
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0.06666667
|
||||||
|
value: 1.5
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0.5
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
attribute: m_LocalScale.z
|
||||||
|
path:
|
||||||
|
classID: 224
|
||||||
|
script: {fileID: 0}
|
||||||
|
m_EulerEditorCurves: []
|
||||||
|
m_HasGenericRootTransform: 0
|
||||||
|
m_HasMotionFloatCurves: 0
|
||||||
|
m_Events: []
|
||||||
|
--- !u!1102 &1102311490129699446
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: UIParticle_Demo_Pop
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_Position: {x: 50, y: 50, z: 0}
|
||||||
|
m_IKOnFeet: 0
|
||||||
|
m_WriteDefaultValues: 1
|
||||||
|
m_Mirror: 0
|
||||||
|
m_SpeedParameterActive: 0
|
||||||
|
m_MirrorParameterActive: 0
|
||||||
|
m_CycleOffsetParameterActive: 0
|
||||||
|
m_TimeParameterActive: 0
|
||||||
|
m_Motion: {fileID: 74513151621551130}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1107 &1107303963999173640
|
||||||
|
AnimatorStateMachine:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_ChildStates:
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: 1102311490129699446}
|
||||||
|
m_Position: {x: 240, y: 96, z: 0}
|
||||||
|
m_ChildStateMachines: []
|
||||||
|
m_AnyStateTransitions: []
|
||||||
|
m_EntryTransitions: []
|
||||||
|
m_StateMachineTransitions: {}
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
||||||
|
m_EntryPosition: {x: 50, y: 120, z: 0}
|
||||||
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
|
m_DefaultState: {fileID: 1102311490129699446}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: caa1268363f2e40dbb845db5e8e1b22a
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 9100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
215
Samples~/Demo/Animations/UIParticle_Demo_Wave.controller
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!91 &9100000
|
||||||
|
AnimatorController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: UIParticle_Demo_Wave
|
||||||
|
serializedVersion: 5
|
||||||
|
m_AnimatorParameters: []
|
||||||
|
m_AnimatorLayers:
|
||||||
|
- serializedVersion: 5
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_StateMachine: {fileID: 1107303963999173640}
|
||||||
|
m_Mask: {fileID: 0}
|
||||||
|
m_Motions: []
|
||||||
|
m_Behaviours: []
|
||||||
|
m_BlendingMode: 0
|
||||||
|
m_SyncedLayerIndex: -1
|
||||||
|
m_DefaultWeight: 0
|
||||||
|
m_IKPass: 0
|
||||||
|
m_SyncedLayerAffectsTiming: 0
|
||||||
|
m_Controller: {fileID: 9100000}
|
||||||
|
--- !u!74 &74084382941425094
|
||||||
|
AnimationClip:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: UIParticle_Demo_Wave
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Legacy: 0
|
||||||
|
m_Compressed: 0
|
||||||
|
m_UseHighQualityCurve: 1
|
||||||
|
m_RotationCurves: []
|
||||||
|
m_CompressedRotationCurves: []
|
||||||
|
m_EulerCurves: []
|
||||||
|
m_PositionCurves: []
|
||||||
|
m_ScaleCurves: []
|
||||||
|
m_FloatCurves:
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 200
|
||||||
|
tangentMode: 69
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0.5
|
||||||
|
value: 100
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 1.5
|
||||||
|
value: -100
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 2
|
||||||
|
value: 0
|
||||||
|
inSlope: 200
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 69
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
attribute: m_AnchoredPosition.y
|
||||||
|
path:
|
||||||
|
classID: 224
|
||||||
|
script: {fileID: 0}
|
||||||
|
m_PPtrCurves: []
|
||||||
|
m_SampleRate: 30
|
||||||
|
m_WrapMode: 0
|
||||||
|
m_Bounds:
|
||||||
|
m_Center: {x: 0, y: 0, z: 0}
|
||||||
|
m_Extent: {x: 0, y: 0, z: 0}
|
||||||
|
m_ClipBindingConstant:
|
||||||
|
genericBindings: []
|
||||||
|
pptrCurveMapping: []
|
||||||
|
m_AnimationClipSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_AdditiveReferencePoseClip: {fileID: 0}
|
||||||
|
m_AdditiveReferencePoseTime: 0
|
||||||
|
m_StartTime: 0
|
||||||
|
m_StopTime: 2
|
||||||
|
m_OrientationOffsetY: 0
|
||||||
|
m_Level: 0
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_HasAdditiveReferencePose: 0
|
||||||
|
m_LoopTime: 1
|
||||||
|
m_LoopBlend: 0
|
||||||
|
m_LoopBlendOrientation: 0
|
||||||
|
m_LoopBlendPositionY: 0
|
||||||
|
m_LoopBlendPositionXZ: 0
|
||||||
|
m_KeepOriginalOrientation: 0
|
||||||
|
m_KeepOriginalPositionY: 1
|
||||||
|
m_KeepOriginalPositionXZ: 0
|
||||||
|
m_HeightFromFeet: 0
|
||||||
|
m_Mirror: 0
|
||||||
|
m_EditorCurves:
|
||||||
|
- curve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 200
|
||||||
|
tangentMode: 69
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0.5
|
||||||
|
value: 100
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 1.5
|
||||||
|
value: -100
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 136
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 2
|
||||||
|
value: 0
|
||||||
|
inSlope: 200
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 69
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0.33333334
|
||||||
|
outWeight: 0.33333334
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
attribute: m_AnchoredPosition.y
|
||||||
|
path:
|
||||||
|
classID: 224
|
||||||
|
script: {fileID: 0}
|
||||||
|
m_EulerEditorCurves: []
|
||||||
|
m_HasGenericRootTransform: 0
|
||||||
|
m_HasMotionFloatCurves: 0
|
||||||
|
m_Events: []
|
||||||
|
--- !u!1102 &1102311490129699446
|
||||||
|
AnimatorState:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: UIParticle_Demo_Wave
|
||||||
|
m_Speed: 1
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_Transitions: []
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_Position: {x: 50, y: 50, z: 0}
|
||||||
|
m_IKOnFeet: 0
|
||||||
|
m_WriteDefaultValues: 1
|
||||||
|
m_Mirror: 0
|
||||||
|
m_SpeedParameterActive: 0
|
||||||
|
m_MirrorParameterActive: 0
|
||||||
|
m_CycleOffsetParameterActive: 0
|
||||||
|
m_TimeParameterActive: 0
|
||||||
|
m_Motion: {fileID: 74084382941425094}
|
||||||
|
m_Tag:
|
||||||
|
m_SpeedParameter:
|
||||||
|
m_MirrorParameter:
|
||||||
|
m_CycleOffsetParameter:
|
||||||
|
m_TimeParameter:
|
||||||
|
--- !u!1107 &1107303963999173640
|
||||||
|
AnimatorStateMachine:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Base Layer
|
||||||
|
m_ChildStates:
|
||||||
|
- serializedVersion: 1
|
||||||
|
m_State: {fileID: 1102311490129699446}
|
||||||
|
m_Position: {x: 240, y: 96, z: 0}
|
||||||
|
m_ChildStateMachines: []
|
||||||
|
m_AnyStateTransitions: []
|
||||||
|
m_EntryTransitions: []
|
||||||
|
m_StateMachineTransitions: {}
|
||||||
|
m_StateMachineBehaviours: []
|
||||||
|
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
||||||
|
m_EntryPosition: {x: 50, y: 120, z: 0}
|
||||||
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
|
m_DefaultState: {fileID: 1102311490129699446}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8e7d928ccc1b7404d80e0d0205434aeb
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 9100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Samples~/Demo/Materials.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1b9a6924ce61a4f099a4c610c8c78fd1
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
85
Samples~/Demo/Materials/UIParticle_Demo_Animatable.mat
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: UIParticle_Demo_Animatable
|
||||||
|
m_Shader: {fileID: 4800000, guid: ecfa8f5732b504ef98fba10aa18d0326, type: 3}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 2800000, guid: e834c7963556c9b4cbad7f1bee63f597, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ColorMask: 15
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _Stencil: 0
|
||||||
|
- _StencilComp: 8
|
||||||
|
- _StencilOp: 0
|
||||||
|
- _StencilReadMask: 255
|
||||||
|
- _StencilWriteMask: 255
|
||||||
|
- _UVSec: 0
|
||||||
|
- _UseUIAlphaClip: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 356b9d0e2cad849c3b53c7e9e1680cb7
|
guid: 96e9806111c7f4ad18c9467cbbe2c4fd
|
||||||
NativeFormatImporter:
|
NativeFormatImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
mainObjectFileID: 2100000
|
mainObjectFileID: 2100000
|
||||||
BIN
Samples~/Demo/Materials/UIParticle_Demo_Animatable.png
Executable file
|
After Width: | Height: | Size: 21 KiB |
132
Samples~/Demo/Materials/UIParticle_Demo_Animatable.png.meta
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e834c7963556c9b4cbad7f1bee63f597
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 9
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -100
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 2
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 64
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 64
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
buildTarget: iPhone
|
||||||
|
maxTextureSize: 64
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 64
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
buildTarget: WebGL
|
||||||
|
maxTextureSize: 64
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 78789b3115ea945b6ad75ef039075475
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
Before Width: | Height: | Size: 585 KiB After Width: | Height: | Size: 585 KiB |
92
Samples~/Demo/Materials/UIParticle_Demo_Flame.mat
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: UIParticle_Demo_Flame
|
||||||
|
m_Shader: {fileID: 4800000, guid: ecfa8f5732b504ef98fba10aa18d0326, type: 3}
|
||||||
|
m_ShaderKeywords: _EMISSION
|
||||||
|
m_LightmapFlags: 1
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 5b8fd2a34c36a4f1caae000b721312c4, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Normal:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ColorMask: 15
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Glow: 1
|
||||||
|
- _InvFade: 3
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _Stencil: 0
|
||||||
|
- _StencilComp: 8
|
||||||
|
- _StencilOp: 0
|
||||||
|
- _StencilReadMask: 255
|
||||||
|
- _StencilWriteMask: 255
|
||||||
|
- _UVSec: 0
|
||||||
|
- _UseUIAlphaClip: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _TintColor: {r: 1, g: 1, b: 1, a: 0.5}
|
||||||
8
Samples~/Demo/Materials/UIParticle_Demo_Flame.mat.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 15c6396b976394d68a63d742106293cb
|
||||||
|
timeCreated: 1471532950
|
||||||
|
licenseType: Store
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Samples~/Demo/Materials/UIParticle_Demo_Flame_Atlas.tif
Normal file
68
Samples~/Demo/Materials/UIParticle_Demo_Flame_Atlas.tif.meta
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5b8fd2a34c36a4f1caae000b721312c4
|
||||||
|
timeCreated: 1474988750
|
||||||
|
licenseType: Store
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: -1
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
platformSettings:
|
||||||
|
- buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -5,8 +5,9 @@ Material:
|
|||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInternal: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_Name: UIAdditive
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: UIParticle_Demo_UIAdditive
|
||||||
m_Shader: {fileID: 4800000, guid: ecfa8f5732b504ef98fba10aa18d0326, type: 3}
|
m_Shader: {fileID: 4800000, guid: ecfa8f5732b504ef98fba10aa18d0326, type: 3}
|
||||||
m_ShaderKeywords:
|
m_ShaderKeywords:
|
||||||
m_LightmapFlags: 4
|
m_LightmapFlags: 4
|
||||||
8
Samples~/Demo/Prefabs.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bd5b57519ab8b45df881c2be89882e8f
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Samples~/Demo/Prefabs/UIParticle_Demo_Animatable.fbx
Executable file
95
Samples~/Demo/Prefabs/UIParticle_Demo_Animatable.fbx.meta
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cc4bae8d676c44e0faffd572cc7599a0
|
||||||
|
ModelImporter:
|
||||||
|
serializedVersion: 23
|
||||||
|
fileIDToRecycleName:
|
||||||
|
100000: o_ring_00
|
||||||
|
100002: //RootNode
|
||||||
|
400000: o_ring_00
|
||||||
|
400002: //RootNode
|
||||||
|
2100000: lambert2
|
||||||
|
2300000: o_ring_00
|
||||||
|
3300000: o_ring_00
|
||||||
|
4300000: o_ring_00
|
||||||
|
externalObjects: {}
|
||||||
|
materials:
|
||||||
|
importMaterials: 1
|
||||||
|
materialName: 0
|
||||||
|
materialSearch: 1
|
||||||
|
materialLocation: 1
|
||||||
|
animations:
|
||||||
|
legacyGenerateAnimations: 4
|
||||||
|
bakeSimulation: 0
|
||||||
|
resampleCurves: 1
|
||||||
|
optimizeGameObjects: 0
|
||||||
|
motionNodeName:
|
||||||
|
rigImportErrors:
|
||||||
|
rigImportWarnings:
|
||||||
|
animationImportErrors:
|
||||||
|
animationImportWarnings:
|
||||||
|
animationRetargetingWarnings:
|
||||||
|
animationDoRetargetingWarnings: 0
|
||||||
|
importAnimatedCustomProperties: 0
|
||||||
|
importConstraints: 0
|
||||||
|
animationCompression: 1
|
||||||
|
animationRotationError: 0.5
|
||||||
|
animationPositionError: 0.5
|
||||||
|
animationScaleError: 0.5
|
||||||
|
animationWrapMode: 0
|
||||||
|
extraExposedTransformPaths: []
|
||||||
|
extraUserProperties: []
|
||||||
|
clipAnimations: []
|
||||||
|
isReadable: 1
|
||||||
|
meshes:
|
||||||
|
lODScreenPercentages: []
|
||||||
|
globalScale: 1
|
||||||
|
meshCompression: 0
|
||||||
|
addColliders: 0
|
||||||
|
importVisibility: 1
|
||||||
|
importBlendShapes: 1
|
||||||
|
importCameras: 1
|
||||||
|
importLights: 1
|
||||||
|
swapUVChannels: 0
|
||||||
|
generateSecondaryUV: 0
|
||||||
|
useFileUnits: 1
|
||||||
|
optimizeMeshForGPU: 1
|
||||||
|
keepQuads: 0
|
||||||
|
weldVertices: 1
|
||||||
|
preserveHierarchy: 0
|
||||||
|
indexFormat: 0
|
||||||
|
secondaryUVAngleDistortion: 8
|
||||||
|
secondaryUVAreaDistortion: 15.000001
|
||||||
|
secondaryUVHardAngle: 88
|
||||||
|
secondaryUVPackMargin: 4
|
||||||
|
useFileScale: 1
|
||||||
|
previousCalculatedGlobalScale: 1
|
||||||
|
hasPreviousCalculatedGlobalScale: 0
|
||||||
|
tangentSpace:
|
||||||
|
normalSmoothAngle: 60
|
||||||
|
normalImportMode: 0
|
||||||
|
tangentImportMode: 3
|
||||||
|
normalCalculationMode: 4
|
||||||
|
importAnimation: 1
|
||||||
|
copyAvatar: 0
|
||||||
|
humanDescription:
|
||||||
|
serializedVersion: 2
|
||||||
|
human: []
|
||||||
|
skeleton: []
|
||||||
|
armTwist: 0.5
|
||||||
|
foreArmTwist: 0.5
|
||||||
|
upperLegTwist: 0.5
|
||||||
|
legTwist: 0.5
|
||||||
|
armStretch: 0.05
|
||||||
|
legStretch: 0.05
|
||||||
|
feetSpacing: 0
|
||||||
|
rootMotionBoneName:
|
||||||
|
hasTranslationDoF: 0
|
||||||
|
hasExtraRoot: 0
|
||||||
|
skeletonHasParents: 1
|
||||||
|
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||||
|
animationType: 0
|
||||||
|
humanoidOversampling: 1
|
||||||
|
additionalBone: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
4866
Samples~/Demo/Prefabs/UIParticle_Demo_Animatable.prefab
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fd2938b6280d84e328d330be2aedd18f
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 100100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
9201
Samples~/Demo/Prefabs/UIParticle_Demo_EffectSample_Frame.prefab
Normal file
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 5d682dd3e44264ff69bd02590123ea73
|
guid: 0ddf94eaac8ad4e0cba66dc25b7fc1f5
|
||||||
PrefabImporter:
|
PrefabImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
9360
Samples~/Demo/Prefabs/UIParticle_Demo_EffectSample_Unity-chan.prefab
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1da1f7e678e2d4e449f6d46d2d4c4116
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Samples~/Demo/Scripts.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6bef82dac243d4989b75a236e63bffb1
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -6,5 +6,9 @@
|
|||||||
"optionalUnityReferences": [],
|
"optionalUnityReferences": [],
|
||||||
"includePlatforms": [],
|
"includePlatforms": [],
|
||||||
"excludePlatforms": [],
|
"excludePlatforms": [],
|
||||||
"allowUnsafeCode": false
|
"allowUnsafeCode": false,
|
||||||
|
"overrideReferences": false,
|
||||||
|
"precompiledReferences": [],
|
||||||
|
"autoReferenced": false,
|
||||||
|
"defineConstraints": []
|
||||||
}
|
}
|
||||||
25
Samples~/Demo/Scripts/CopyItemOnStart.cs
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Coffee.UIExtensions.Demo
|
||||||
|
{
|
||||||
|
public class CopyItemOnStart : MonoBehaviour
|
||||||
|
{
|
||||||
|
public GameObject origin;
|
||||||
|
public int count;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
if (!origin) return;
|
||||||
|
origin.SetActive(false);
|
||||||
|
|
||||||
|
var parent = origin.transform.parent;
|
||||||
|
for (var i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
var go = Instantiate(origin, parent, false);
|
||||||
|
go.name = string.Format("{0} {1}", origin.name, i + 1);
|
||||||
|
go.hideFlags = HideFlags.DontSave;
|
||||||
|
go.SetActive(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 999f0ea10cb5f48ed89190a0ca83dd53
|
guid: 01a6a172129d6453eb661239d2b1e850
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
82
Samples~/Demo/Scripts/UIElementDragger.cs
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
|
||||||
|
public class UIElementDragger : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
|
||||||
|
{
|
||||||
|
public enum Target
|
||||||
|
{
|
||||||
|
Self,
|
||||||
|
Parent,
|
||||||
|
Custom,
|
||||||
|
}
|
||||||
|
|
||||||
|
private RectTransform rectTransform;
|
||||||
|
private Canvas canvas;
|
||||||
|
public Target m_Target;
|
||||||
|
public Transform m_CustomTarget;
|
||||||
|
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
rectTransform = GetComponent<RectTransform>();
|
||||||
|
canvas = GetComponentInParent<Canvas>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDrag(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
var delta = (Vector3)GetLocalDelta(eventData.delta);
|
||||||
|
|
||||||
|
switch (m_Target)
|
||||||
|
{
|
||||||
|
case Target.Self:
|
||||||
|
rectTransform.localPosition += delta;
|
||||||
|
break;
|
||||||
|
case Target.Parent:
|
||||||
|
rectTransform.parent.localPosition += delta;
|
||||||
|
break;
|
||||||
|
case Target.Custom:
|
||||||
|
rectTransform.localPosition += delta;
|
||||||
|
if (m_CustomTarget)
|
||||||
|
{
|
||||||
|
m_CustomTarget.localPosition += delta;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnBeginDrag(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnEndDrag(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private Vector2 GetLocalDelta(Vector2 evDelta)
|
||||||
|
{
|
||||||
|
switch (canvas.renderMode)
|
||||||
|
{
|
||||||
|
case RenderMode.ScreenSpaceOverlay:
|
||||||
|
{
|
||||||
|
var zero = transform.InverseTransformPoint(Vector2.zero);
|
||||||
|
var delta = transform.InverseTransformPoint(evDelta);
|
||||||
|
return delta - zero;
|
||||||
|
}
|
||||||
|
case RenderMode.ScreenSpaceCamera:
|
||||||
|
{
|
||||||
|
Vector2 zero, delta;
|
||||||
|
RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, Vector2.zero, canvas.worldCamera, out zero);
|
||||||
|
RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, evDelta, canvas.worldCamera, out delta);
|
||||||
|
return delta - zero;
|
||||||
|
}
|
||||||
|
case RenderMode.WorldSpace:
|
||||||
|
{
|
||||||
|
Vector3 zero, delta;
|
||||||
|
RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, Vector2.zero, canvas.worldCamera, out zero);
|
||||||
|
RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, evDelta, canvas.worldCamera, out delta);
|
||||||
|
return delta - zero;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
throw new System.NotSupportedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 0328b9fb8360e4f8e8a842f87d330466
|
guid: d1979128e1e7d427cb18fde94c6ff4b5
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
167
Samples~/Demo/Scripts/UIParticle_Demo.cs
Normal file
@@ -0,0 +1,167 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace Coffee.UIExtensions.Demo
|
||||||
|
{
|
||||||
|
public class UIParticle_Demo : MonoBehaviour
|
||||||
|
{
|
||||||
|
public Canvas root;
|
||||||
|
|
||||||
|
private int _width;
|
||||||
|
private int _height;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
_width = Screen.width;
|
||||||
|
_height = Screen.height;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ResizeScreen()
|
||||||
|
{
|
||||||
|
switch (Application.platform)
|
||||||
|
{
|
||||||
|
case RuntimePlatform.OSXPlayer:
|
||||||
|
case RuntimePlatform.WindowsPlayer:
|
||||||
|
case RuntimePlatform.LinuxPlayer:
|
||||||
|
if (Screen.width == _width && Screen.height == _height)
|
||||||
|
Screen.SetResolution(_height, _width, Screen.fullScreen);
|
||||||
|
else if (Screen.width == _height && Screen.height == _width)
|
||||||
|
Screen.SetResolution(Mathf.Min(_width, _height), Mathf.Min(_width, _height), Screen.fullScreen);
|
||||||
|
else
|
||||||
|
Screen.SetResolution(_width, _height, Screen.fullScreen);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void FullScreen()
|
||||||
|
{
|
||||||
|
Screen.fullScreen = !Screen.fullScreen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void EnableAnimations(bool enabled)
|
||||||
|
{
|
||||||
|
foreach (var animator in FindObjectsOfType<Animator>())
|
||||||
|
{
|
||||||
|
animator.enabled = enabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UIParticle_MeshSharing(bool enabled)
|
||||||
|
{
|
||||||
|
foreach (var uip in root.GetComponentsInChildren<UIParticle>(true))
|
||||||
|
{
|
||||||
|
uip.meshSharing = enabled ? UIParticle.MeshSharing.Auto : UIParticle.MeshSharing.None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UIParticle_RandomGroup(bool enabled)
|
||||||
|
{
|
||||||
|
foreach (var uip in root.GetComponentsInChildren<UIParticle>(true))
|
||||||
|
{
|
||||||
|
uip.groupMaxId = enabled ? 4 : 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UIParticle_Scale(float scale)
|
||||||
|
{
|
||||||
|
foreach (var uip in FindObjectsOfType<UIParticle>())
|
||||||
|
{
|
||||||
|
uip.scale = scale;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ParticleSystem_WorldSpaseSimulation(bool enabled)
|
||||||
|
{
|
||||||
|
foreach (var ps in FindObjectsOfType<ParticleSystem>())
|
||||||
|
{
|
||||||
|
var main = ps.main;
|
||||||
|
main.simulationSpace = enabled ? ParticleSystemSimulationSpace.World : ParticleSystemSimulationSpace.Local;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ParticleSystem_WorldSpaseSimulation(ParticleSystem particleSystem)
|
||||||
|
{
|
||||||
|
foreach (var ps in particleSystem.GetComponentsInChildren<ParticleSystem>())
|
||||||
|
{
|
||||||
|
var main = ps.main;
|
||||||
|
main.simulationSpace = ParticleSystemSimulationSpace.World;
|
||||||
|
ps.Clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ParticleSystem_LocalSpaseSimulation(ParticleSystem particleSystem)
|
||||||
|
{
|
||||||
|
foreach (var ps in particleSystem.GetComponentsInChildren<ParticleSystem>())
|
||||||
|
{
|
||||||
|
var main = ps.main;
|
||||||
|
main.simulationSpace = ParticleSystemSimulationSpace.Local;
|
||||||
|
ps.Clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ParticleSystem_Emit(ParticleSystem particleSystem)
|
||||||
|
{
|
||||||
|
particleSystem.Emit(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ParticleSystem_SetScale(float scale)
|
||||||
|
{
|
||||||
|
foreach (var ps in FindObjectsOfType<ParticleSystem>())
|
||||||
|
{
|
||||||
|
ps.transform.localScale = new Vector3(scale, scale, scale);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UIParticleAttractor_Linear(UIParticleAttractor attractor)
|
||||||
|
{
|
||||||
|
attractor.movement = UIParticleAttractor.Movement.Linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UIParticleAttractor_Smooth(UIParticleAttractor attractor)
|
||||||
|
{
|
||||||
|
attractor.movement = UIParticleAttractor.Movement.Smooth;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UIParticleAttractor_Sphere(UIParticleAttractor attractor)
|
||||||
|
{
|
||||||
|
attractor.movement = UIParticleAttractor.Movement.Sphere;
|
||||||
|
}
|
||||||
|
|
||||||
|
int score = 0;
|
||||||
|
public void UIParticleAttractor_OnAttract(Text scoreText)
|
||||||
|
{
|
||||||
|
score++;
|
||||||
|
scoreText.text = score.ToString();
|
||||||
|
scoreText.GetComponent<Animator>().Play(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Canvas_WorldSpace(bool flag)
|
||||||
|
{
|
||||||
|
if (flag)
|
||||||
|
{
|
||||||
|
var canvas = FindObjectOfType<Canvas>();
|
||||||
|
canvas.renderMode = RenderMode.ScreenSpaceCamera;
|
||||||
|
canvas.renderMode = RenderMode.WorldSpace;
|
||||||
|
canvas.transform.rotation = Quaternion.Euler(new Vector3(0, 10, 0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Canvas_CameraSpace(bool flag)
|
||||||
|
{
|
||||||
|
if (flag)
|
||||||
|
{
|
||||||
|
var canvas = FindObjectOfType<Canvas>();
|
||||||
|
canvas.renderMode = RenderMode.ScreenSpaceCamera;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Canvas_Overlay(bool flag)
|
||||||
|
{
|
||||||
|
if (flag)
|
||||||
|
{
|
||||||
|
var canvas = FindObjectOfType<Canvas>();
|
||||||
|
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Coffee.UIExtensions.Demo
|
||||||
|
{
|
||||||
|
public class UIParticle_Demo_UIParticleController : MonoBehaviour
|
||||||
|
{
|
||||||
|
public Transform root;
|
||||||
|
|
||||||
|
public void UIParticle_MeshSharing(bool enabled)
|
||||||
|
{
|
||||||
|
foreach (var uip in root.GetComponentsInChildren<UIParticle>(true))
|
||||||
|
{
|
||||||
|
uip.meshSharing = enabled ? UIParticle.MeshSharing.Auto : UIParticle.MeshSharing.None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UIParticle_RandomGroup(bool enabled)
|
||||||
|
{
|
||||||
|
foreach (var uip in root.GetComponentsInChildren<UIParticle>(true))
|
||||||
|
{
|
||||||
|
uip.groupMaxId = enabled ? 4 : 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UIParticle_Scale(float scale)
|
||||||
|
{
|
||||||
|
foreach (var uip in root.GetComponentsInChildren<UIParticle>(true))
|
||||||
|
{
|
||||||
|
uip.scale = scale;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: f5f85388e938d9e4599afc6d9441ed57
|
guid: 3256d3a1b8cfa4982941c7e7eb17947d
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
8
Samples~/Demo/Sprites.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0251dca70242c4171a1dde2b4eef3367
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
48
Samples~/Demo/Sprites/UIParticle_Demo.spriteatlas
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!687078895 &4343727234628468602
|
||||||
|
SpriteAtlas:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: UIParticle_Demo
|
||||||
|
m_EditorData:
|
||||||
|
serializedVersion: 2
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
anisoLevel: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureCompression: 0
|
||||||
|
filterMode: 1
|
||||||
|
generateMipMaps: 0
|
||||||
|
readable: 0
|
||||||
|
crunchedCompression: 0
|
||||||
|
sRGB: 1
|
||||||
|
platformSettings: []
|
||||||
|
packingSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
padding: 4
|
||||||
|
blockOffset: 1
|
||||||
|
allowAlphaSplitting: 0
|
||||||
|
enableRotation: 1
|
||||||
|
enableTightPacking: 1
|
||||||
|
variantMultiplier: 1
|
||||||
|
packables:
|
||||||
|
- {fileID: 102900000, guid: 0251dca70242c4171a1dde2b4eef3367, type: 3}
|
||||||
|
totalSpriteSurfaceArea: 44845
|
||||||
|
bindAsDefault: 1
|
||||||
|
m_MasterAtlas: {fileID: 0}
|
||||||
|
m_PackedSprites:
|
||||||
|
- {fileID: 21300000, guid: 642c2160c66664114a5ec8f014456c3e, type: 3}
|
||||||
|
- {fileID: 21300000, guid: 8194ff59e335b4069b502b66d02131fa, type: 3}
|
||||||
|
- {fileID: 21300000, guid: 925f66fdcc9764b579413b7408c718f2, type: 3}
|
||||||
|
- {fileID: 21300000, guid: 077b84be6d052c34d933c79ef500be13, type: 3}
|
||||||
|
m_PackedSpriteNamesToIndex:
|
||||||
|
- UIParticle_Demo_Move
|
||||||
|
- UIParticle_Demo_Star
|
||||||
|
- UIParticle_Demo_Unity-chan
|
||||||
|
- UIParticle_Demo_Light_Frame
|
||||||
|
m_Tag: UIParticle_Demo
|
||||||
|
m_IsVariant: 0
|
||||||
8
Samples~/Demo/Sprites/UIParticle_Demo.spriteatlas.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6f4c242a0c8414734aaa4019486b8695
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 4343727234628468602
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
BIN
Samples~/Demo/Sprites/UIParticle_Demo_Move.png
Normal file
|
After Width: | Height: | Size: 754 B |
88
Samples~/Demo/Sprites/UIParticle_Demo_Move.png.meta
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 642c2160c66664114a5ec8f014456c3e
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 9
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -100
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: -1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 2
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 32
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 193ecdf6ca56940a2aa3da9c9e9faf6f
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Samples~/Demo/Sprites/UIParticle_Demo_Star.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
88
Samples~/Demo/Sprites/UIParticle_Demo_Star.png.meta
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8194ff59e335b4069b502b66d02131fa
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 9
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 7
|
||||||
|
maxTextureSize: 1024
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: -1
|
||||||
|
aniso: 0
|
||||||
|
mipBias: -100
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 0
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 2
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 64
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 4bb482a97bbcc410db8aca13bc4ced8d
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
@@ -1,335 +0,0 @@
|
|||||||
/// Credit glennpow, Zarlang
|
|
||||||
/// Sourced from - http://forum.unity3d.com/threads/free-script-particle-systems-in-ui-screen-space-overlay.406862/
|
|
||||||
/// Updated by Zarlang with a more robust implementation, including TextureSheet annimation support
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.UI;
|
|
||||||
|
|
||||||
namespace Coffee.UIExtensions.Demos
|
|
||||||
{
|
|
||||||
#if UNITY_5_3_OR_NEWER
|
|
||||||
[ExecuteInEditMode]
|
|
||||||
[RequireComponent(typeof(CanvasRenderer), typeof(ParticleSystem))]
|
|
||||||
public class UIParticleSystem_Demo : MaskableGraphic
|
|
||||||
{
|
|
||||||
[Tooltip("Having this enabled run the system in LateUpdate rather than in Update making it faster but less precise (more clunky)")]
|
|
||||||
public bool fixedTime = true;
|
|
||||||
|
|
||||||
private Transform _transform;
|
|
||||||
private ParticleSystem pSystem;
|
|
||||||
private ParticleSystem.Particle[] particles;
|
|
||||||
private UIVertex[] _quad = new UIVertex[4];
|
|
||||||
private Vector4 imageUV = Vector4.zero;
|
|
||||||
private ParticleSystem.TextureSheetAnimationModule textureSheetAnimation;
|
|
||||||
private int textureSheetAnimationFrames;
|
|
||||||
private Vector2 textureSheetAnimationFrameSize;
|
|
||||||
private ParticleSystemRenderer pRenderer;
|
|
||||||
|
|
||||||
private Material currentMaterial;
|
|
||||||
|
|
||||||
private Texture currentTexture;
|
|
||||||
|
|
||||||
#if UNITY_5_5_OR_NEWER
|
|
||||||
private ParticleSystem.MainModule mainModule;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
public override Texture mainTexture
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return currentTexture;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected bool Initialize()
|
|
||||||
{
|
|
||||||
// initialize members
|
|
||||||
if (_transform == null)
|
|
||||||
{
|
|
||||||
_transform = transform;
|
|
||||||
}
|
|
||||||
if (pSystem == null)
|
|
||||||
{
|
|
||||||
pSystem = GetComponent<ParticleSystem>();
|
|
||||||
|
|
||||||
if (pSystem == null)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if UNITY_5_5_OR_NEWER
|
|
||||||
mainModule = pSystem.main;
|
|
||||||
if (pSystem.main.maxParticles > 14000)
|
|
||||||
{
|
|
||||||
mainModule.maxParticles = 14000;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
if (pSystem.maxParticles > 14000)
|
|
||||||
pSystem.maxParticles = 14000;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
pRenderer = pSystem.GetComponent<ParticleSystemRenderer>();
|
|
||||||
if (pRenderer != null)
|
|
||||||
pRenderer.enabled = false;
|
|
||||||
|
|
||||||
//Shader foundShader = Shader.Find("UI Extensions/Particles/Additive");
|
|
||||||
//Material pMaterial = new Material(foundShader);
|
|
||||||
|
|
||||||
//if (material == null)
|
|
||||||
//material = pMaterial;
|
|
||||||
|
|
||||||
currentMaterial = material;
|
|
||||||
if (currentMaterial && currentMaterial.HasProperty("_MainTex"))
|
|
||||||
{
|
|
||||||
currentTexture = currentMaterial.mainTexture;
|
|
||||||
if (currentTexture == null)
|
|
||||||
currentTexture = Texture2D.whiteTexture;
|
|
||||||
}
|
|
||||||
material = currentMaterial;
|
|
||||||
// automatically set scaling
|
|
||||||
#if UNITY_5_5_OR_NEWER
|
|
||||||
mainModule.scalingMode = ParticleSystemScalingMode.Hierarchy;
|
|
||||||
#else
|
|
||||||
pSystem.scalingMode = ParticleSystemScalingMode.Hierarchy;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
particles = null;
|
|
||||||
}
|
|
||||||
#if UNITY_5_5_OR_NEWER
|
|
||||||
if (particles == null)
|
|
||||||
particles = new ParticleSystem.Particle[pSystem.main.maxParticles];
|
|
||||||
#else
|
|
||||||
if (particles == null)
|
|
||||||
particles = new ParticleSystem.Particle[pSystem.maxParticles];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
imageUV = new Vector4(0, 0, 1, 1);
|
|
||||||
|
|
||||||
// prepare texture sheet animation
|
|
||||||
textureSheetAnimation = pSystem.textureSheetAnimation;
|
|
||||||
textureSheetAnimationFrames = 0;
|
|
||||||
textureSheetAnimationFrameSize = Vector2.zero;
|
|
||||||
if (textureSheetAnimation.enabled)
|
|
||||||
{
|
|
||||||
textureSheetAnimationFrames = textureSheetAnimation.numTilesX * textureSheetAnimation.numTilesY;
|
|
||||||
textureSheetAnimationFrameSize = new Vector2(1f / textureSheetAnimation.numTilesX, 1f / textureSheetAnimation.numTilesY);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Awake()
|
|
||||||
{
|
|
||||||
base.Awake();
|
|
||||||
if (!Initialize())
|
|
||||||
enabled = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
protected override void OnPopulateMesh(VertexHelper vh)
|
|
||||||
{
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
if (!Application.isPlaying)
|
|
||||||
{
|
|
||||||
if (!Initialize())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
// prepare vertices
|
|
||||||
vh.Clear();
|
|
||||||
|
|
||||||
if (!gameObject.activeInHierarchy)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Vector2 temp = Vector2.zero;
|
|
||||||
Vector2 corner1 = Vector2.zero;
|
|
||||||
Vector2 corner2 = Vector2.zero;
|
|
||||||
// iterate through current particles
|
|
||||||
int count = pSystem.GetParticles(particles);
|
|
||||||
|
|
||||||
for (int i = 0; i < count; ++i)
|
|
||||||
{
|
|
||||||
ParticleSystem.Particle particle = particles[i];
|
|
||||||
|
|
||||||
// get particle properties
|
|
||||||
#if UNITY_5_5_OR_NEWER
|
|
||||||
Vector2 position = (mainModule.simulationSpace == ParticleSystemSimulationSpace.Local ? particle.position : _transform.InverseTransformPoint(particle.position));
|
|
||||||
#else
|
|
||||||
Vector2 position = (pSystem.simulationSpace == ParticleSystemSimulationSpace.Local ? particle.position : _transform.InverseTransformPoint(particle.position));
|
|
||||||
#endif
|
|
||||||
float rotation = -particle.rotation * Mathf.Deg2Rad;
|
|
||||||
float rotation90 = rotation + Mathf.PI / 2;
|
|
||||||
Color32 color = particle.GetCurrentColor(pSystem);
|
|
||||||
float size = particle.GetCurrentSize(pSystem) * 0.5f;
|
|
||||||
|
|
||||||
// apply scale
|
|
||||||
#if UNITY_5_5_OR_NEWER
|
|
||||||
if (mainModule.scalingMode == ParticleSystemScalingMode.Shape)
|
|
||||||
position /= canvas.scaleFactor;
|
|
||||||
#else
|
|
||||||
if (pSystem.scalingMode == ParticleSystemScalingMode.Shape)
|
|
||||||
position /= canvas.scaleFactor;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// apply texture sheet animation
|
|
||||||
Vector4 particleUV = imageUV;
|
|
||||||
if (textureSheetAnimation.enabled)
|
|
||||||
{
|
|
||||||
#if UNITY_5_5_OR_NEWER
|
|
||||||
float frameProgress = 1 - (particle.remainingLifetime / particle.startLifetime);
|
|
||||||
|
|
||||||
if (textureSheetAnimation.frameOverTime.curveMin != null)
|
|
||||||
{
|
|
||||||
frameProgress = textureSheetAnimation.frameOverTime.curveMin.Evaluate(1 - (particle.remainingLifetime / particle.startLifetime));
|
|
||||||
}
|
|
||||||
else if (textureSheetAnimation.frameOverTime.curve != null)
|
|
||||||
{
|
|
||||||
frameProgress = textureSheetAnimation.frameOverTime.curve.Evaluate(1 - (particle.remainingLifetime / particle.startLifetime));
|
|
||||||
}
|
|
||||||
else if (textureSheetAnimation.frameOverTime.constant > 0)
|
|
||||||
{
|
|
||||||
frameProgress = textureSheetAnimation.frameOverTime.constant - (particle.remainingLifetime / particle.startLifetime);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
float frameProgress = 1 - (particle.lifetime / particle.startLifetime);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
frameProgress = Mathf.Repeat(frameProgress * textureSheetAnimation.cycleCount, 1);
|
|
||||||
int frame = 0;
|
|
||||||
|
|
||||||
switch (textureSheetAnimation.animation)
|
|
||||||
{
|
|
||||||
|
|
||||||
case ParticleSystemAnimationType.WholeSheet:
|
|
||||||
frame = Mathf.FloorToInt(frameProgress * textureSheetAnimationFrames);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ParticleSystemAnimationType.SingleRow:
|
|
||||||
frame = Mathf.FloorToInt(frameProgress * textureSheetAnimation.numTilesX);
|
|
||||||
|
|
||||||
int row = textureSheetAnimation.rowIndex;
|
|
||||||
// if (textureSheetAnimation.useRandomRow) { // FIXME - is this handled internally by rowIndex?
|
|
||||||
// row = Random.Range(0, textureSheetAnimation.numTilesY, using: particle.randomSeed);
|
|
||||||
// }
|
|
||||||
frame += row * textureSheetAnimation.numTilesX;
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
frame %= textureSheetAnimationFrames;
|
|
||||||
|
|
||||||
particleUV.x = (frame % textureSheetAnimation.numTilesX) * textureSheetAnimationFrameSize.x;
|
|
||||||
particleUV.y = Mathf.FloorToInt(frame / textureSheetAnimation.numTilesX) * textureSheetAnimationFrameSize.y;
|
|
||||||
particleUV.z = particleUV.x + textureSheetAnimationFrameSize.x;
|
|
||||||
particleUV.w = particleUV.y + textureSheetAnimationFrameSize.y;
|
|
||||||
}
|
|
||||||
|
|
||||||
temp.x = particleUV.x;
|
|
||||||
temp.y = particleUV.y;
|
|
||||||
|
|
||||||
_quad[0] = UIVertex.simpleVert;
|
|
||||||
_quad[0].color = color;
|
|
||||||
_quad[0].uv0 = temp;
|
|
||||||
|
|
||||||
temp.x = particleUV.x;
|
|
||||||
temp.y = particleUV.w;
|
|
||||||
_quad[1] = UIVertex.simpleVert;
|
|
||||||
_quad[1].color = color;
|
|
||||||
_quad[1].uv0 = temp;
|
|
||||||
|
|
||||||
temp.x = particleUV.z;
|
|
||||||
temp.y = particleUV.w;
|
|
||||||
_quad[2] = UIVertex.simpleVert;
|
|
||||||
_quad[2].color = color;
|
|
||||||
_quad[2].uv0 = temp;
|
|
||||||
|
|
||||||
temp.x = particleUV.z;
|
|
||||||
temp.y = particleUV.y;
|
|
||||||
_quad[3] = UIVertex.simpleVert;
|
|
||||||
_quad[3].color = color;
|
|
||||||
_quad[3].uv0 = temp;
|
|
||||||
|
|
||||||
if (rotation == 0)
|
|
||||||
{
|
|
||||||
// no rotation
|
|
||||||
corner1.x = position.x - size;
|
|
||||||
corner1.y = position.y - size;
|
|
||||||
corner2.x = position.x + size;
|
|
||||||
corner2.y = position.y + size;
|
|
||||||
|
|
||||||
temp.x = corner1.x;
|
|
||||||
temp.y = corner1.y;
|
|
||||||
_quad[0].position = temp;
|
|
||||||
temp.x = corner1.x;
|
|
||||||
temp.y = corner2.y;
|
|
||||||
_quad[1].position = temp;
|
|
||||||
temp.x = corner2.x;
|
|
||||||
temp.y = corner2.y;
|
|
||||||
_quad[2].position = temp;
|
|
||||||
temp.x = corner2.x;
|
|
||||||
temp.y = corner1.y;
|
|
||||||
_quad[3].position = temp;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// apply rotation
|
|
||||||
Vector2 right = new Vector2(Mathf.Cos(rotation), Mathf.Sin(rotation)) * size;
|
|
||||||
Vector2 up = new Vector2(Mathf.Cos(rotation90), Mathf.Sin(rotation90)) * size;
|
|
||||||
|
|
||||||
_quad[0].position = position - right - up;
|
|
||||||
_quad[1].position = position - right + up;
|
|
||||||
_quad[2].position = position + right + up;
|
|
||||||
_quad[3].position = position + right - up;
|
|
||||||
}
|
|
||||||
|
|
||||||
vh.AddUIVertexQuad(_quad);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
if (!fixedTime && Application.isPlaying)
|
|
||||||
{
|
|
||||||
pSystem.Simulate(Time.unscaledDeltaTime, false, false, true);
|
|
||||||
SetAllDirty();
|
|
||||||
|
|
||||||
if ((currentMaterial != null && currentTexture != currentMaterial.mainTexture) ||
|
|
||||||
(material != null && currentMaterial != null && material.shader != currentMaterial.shader))
|
|
||||||
{
|
|
||||||
pSystem = null;
|
|
||||||
Initialize();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void LateUpdate()
|
|
||||||
{
|
|
||||||
if (!Application.isPlaying)
|
|
||||||
{
|
|
||||||
SetAllDirty();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (fixedTime)
|
|
||||||
{
|
|
||||||
pSystem.Simulate(Time.unscaledDeltaTime, false, false, true);
|
|
||||||
SetAllDirty();
|
|
||||||
if ((currentMaterial != null && currentTexture != currentMaterial.mainTexture) ||
|
|
||||||
(material != null && currentMaterial != null && material.shader != currentMaterial.shader))
|
|
||||||
{
|
|
||||||
pSystem = null;
|
|
||||||
Initialize();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (material == currentMaterial)
|
|
||||||
return;
|
|
||||||
pSystem = null;
|
|
||||||
Initialize();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
@@ -1,111 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
using UnityEngine.SceneManagement;
|
|
||||||
using UnityEngine.UI;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Coffee.UIExtensions.Demo
|
|
||||||
{
|
|
||||||
public class UIParticle_Demo : MonoBehaviour
|
|
||||||
{
|
|
||||||
[SerializeField] ParticleSystem [] m_ParticleSystems = new ParticleSystem [0];
|
|
||||||
[SerializeField] List<Transform> m_ScalingByTransforms = new List<Transform> ();
|
|
||||||
[SerializeField] List<UIParticle> m_ScalingByUIParticles = new List<UIParticle> ();
|
|
||||||
|
|
||||||
public void SetTimeScale (float scale)
|
|
||||||
{
|
|
||||||
Time.timeScale = scale;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void EnableTrailRibbon (bool ribbonMode)
|
|
||||||
{
|
|
||||||
foreach (var p in m_ParticleSystems)
|
|
||||||
{
|
|
||||||
var trails = p.trails;
|
|
||||||
trails.mode = ribbonMode ? ParticleSystemTrailMode.Ribbon : ParticleSystemTrailMode.PerParticle;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void EnableSprite (bool enabled)
|
|
||||||
{
|
|
||||||
foreach (var p in m_ParticleSystems)
|
|
||||||
{
|
|
||||||
var tex = p.textureSheetAnimation;
|
|
||||||
tex.enabled = enabled;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void EnableMask (bool enabled)
|
|
||||||
{
|
|
||||||
foreach (var m in FindObjectsOfType<Mask> ())
|
|
||||||
{
|
|
||||||
m.enabled = enabled;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void EnableMask2D (bool enabled)
|
|
||||||
{
|
|
||||||
foreach (var m in FindObjectsOfType<RectMask2D> ())
|
|
||||||
{
|
|
||||||
m.enabled = enabled;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetScale (float scale)
|
|
||||||
{
|
|
||||||
m_ScalingByTransforms.ForEach (x => x.localScale = Vector3.one * (10 * scale));
|
|
||||||
m_ScalingByUIParticles.ForEach (x => x.scale = scale);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetUIParticleScale (float scale)
|
|
||||||
{
|
|
||||||
foreach (var uip in FindObjectsOfType<UIParticle> ())
|
|
||||||
{
|
|
||||||
uip.scale = scale;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void LoadScene (string name)
|
|
||||||
{
|
|
||||||
SceneManager.LoadScene (name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void PlayAllParticleEffect ()
|
|
||||||
{
|
|
||||||
foreach (var animator in FindObjectsOfType<Animator> ())
|
|
||||||
{
|
|
||||||
animator.Play ("Play");
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var particle in FindObjectsOfType<ParticleSystem> ())
|
|
||||||
{
|
|
||||||
particle.Play ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetWorldSpase (bool flag)
|
|
||||||
{
|
|
||||||
if (flag)
|
|
||||||
{
|
|
||||||
GetComponent<Canvas> ().renderMode = RenderMode.ScreenSpaceCamera;
|
|
||||||
GetComponent<Canvas> ().renderMode = RenderMode.WorldSpace;
|
|
||||||
transform.rotation = Quaternion.Euler (new Vector3 (0, 6, 0));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetScreenSpase (bool flag)
|
|
||||||
{
|
|
||||||
if (flag)
|
|
||||||
{
|
|
||||||
GetComponent<Canvas> ().renderMode = RenderMode.ScreenSpaceCamera;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetOverlay (bool flag)
|
|
||||||
{
|
|
||||||
if (flag)
|
|
||||||
{
|
|
||||||
GetComponent<Canvas> ().renderMode = RenderMode.ScreenSpaceOverlay;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!84 &8400000
|
|
||||||
RenderTexture:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInternal: {fileID: 0}
|
|
||||||
m_Name: UIParticle_Demo
|
|
||||||
m_ImageContentsHash:
|
|
||||||
serializedVersion: 2
|
|
||||||
Hash: 00000000000000000000000000000000
|
|
||||||
m_ForcedFallbackFormat: 4
|
|
||||||
m_DownscaleFallback: 0
|
|
||||||
m_Width: 256
|
|
||||||
m_Height: 256
|
|
||||||
m_AntiAliasing: 1
|
|
||||||
m_DepthFormat: 0
|
|
||||||
m_ColorFormat: 0
|
|
||||||
m_MipMap: 0
|
|
||||||
m_GenerateMips: 1
|
|
||||||
m_SRGB: 0
|
|
||||||
m_UseDynamicScale: 0
|
|
||||||
m_BindMS: 0
|
|
||||||
m_TextureSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_FilterMode: 1
|
|
||||||
m_Aniso: 0
|
|
||||||
m_MipBias: 0
|
|
||||||
m_WrapU: 1
|
|
||||||
m_WrapV: 1
|
|
||||||
m_WrapW: 1
|
|
||||||
m_Dimension: 2
|
|
||||||
m_VolumeDepth: 1
|
|
||||||
8
Samples~/Performance Demo.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ca0fd7c7ead2c49b1ae139b7963de126
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Samples~/Performance Demo/Materials.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 839afb79f79094e6c942050ec5413ebf
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: UIParticle_PerformanceDemo_Fire
|
||||||
|
m_Shader: {fileID: 4800000, guid: ecfa8f5732b504ef98fba10aa18d0326, type: 3}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 294c5667b05cc4edcac3885a5899cc65, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ColorMask: 15
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Glow: 1
|
||||||
|
- _InvFade: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _Stencil: 0
|
||||||
|
- _StencilComp: 8
|
||||||
|
- _StencilOp: 0
|
||||||
|
- _StencilReadMask: 255
|
||||||
|
- _StencilWriteMask: 255
|
||||||
|
- _UVSec: 0
|
||||||
|
- _UseUIAlphaClip: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _TintColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3dc66b79cada243e59bcaf09f804373d
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
After Width: | Height: | Size: 585 KiB |
@@ -0,0 +1,121 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 294c5667b05cc4edcac3885a5899cc65
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 9
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 2
|
||||||
|
aniso: 16
|
||||||
|
mipBias: -100
|
||||||
|
wrapU: -1
|
||||||
|
wrapV: -1
|
||||||
|
wrapW: -1
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 2
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 4096
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 2
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 4096
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 2
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 4096
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 2
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
- serializedVersion: 2
|
||||||
|
buildTarget: WebGL
|
||||||
|
maxTextureSize: 4096
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 2
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -5,8 +5,9 @@ Material:
|
|||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInternal: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_Name: UIParticle_Demo_Spread
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: UIParticle_PerformanceDemo_Spread
|
||||||
m_Shader: {fileID: 4800000, guid: ecfa8f5732b504ef98fba10aa18d0326, type: 3}
|
m_Shader: {fileID: 4800000, guid: ecfa8f5732b504ef98fba10aa18d0326, type: 3}
|
||||||
m_ShaderKeywords:
|
m_ShaderKeywords:
|
||||||
m_LightmapFlags: 4
|
m_LightmapFlags: 4
|
||||||
@@ -63,6 +64,7 @@ Material:
|
|||||||
- _GlossMapScale: 1
|
- _GlossMapScale: 1
|
||||||
- _Glossiness: 0.5
|
- _Glossiness: 0.5
|
||||||
- _GlossyReflections: 1
|
- _GlossyReflections: 1
|
||||||
|
- _Glow: 1
|
||||||
- _InvFade: 1
|
- _InvFade: 1
|
||||||
- _Metallic: 0
|
- _Metallic: 0
|
||||||
- _Mode: 0
|
- _Mode: 0
|
||||||
@@ -77,6 +79,7 @@ Material:
|
|||||||
- _StencilReadMask: 255
|
- _StencilReadMask: 255
|
||||||
- _StencilWriteMask: 255
|
- _StencilWriteMask: 255
|
||||||
- _UVSec: 0
|
- _UVSec: 0
|
||||||
|
- _UseUIAlphaClip: 0
|
||||||
- _ZWrite: 1
|
- _ZWrite: 1
|
||||||
m_Colors:
|
m_Colors:
|
||||||
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
|
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b7ac7640c2f1047c887aa52ff1ce9fcc
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Samples~/Performance Demo/NanoMonitor.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c5a6b37697e71473cb1ecc90047622d0
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Samples~/Performance Demo/NanoMonitor/Fonts.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b888c253a15224f1fa518bed74028211
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Samples~/Performance Demo/NanoMonitor/Fonts/FalstinRegular.ttf
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 70069a8db1df148ae8b4c8108c079acf
|
||||||
|
TrueTypeFontImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
fontSize: 26
|
||||||
|
forceTextureCase: 0
|
||||||
|
characterSpacing: 0
|
||||||
|
characterPadding: 1
|
||||||
|
includeFontData: 1
|
||||||
|
fontName: Falstin
|
||||||
|
fontNames:
|
||||||
|
- Falstin
|
||||||
|
fallbackFontReferences: []
|
||||||
|
customCharacters:
|
||||||
|
fontRenderingMode: 1
|
||||||
|
ascentCalculationMode: 1
|
||||||
|
useLegacyBoundsCalculation: 0
|
||||||
|
shouldRoundAdvanceValue: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Samples~/Performance Demo/NanoMonitor/Prefab.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fa6e3b593bf274861b2eab47082d9b1e
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
1712
Samples~/Performance Demo/NanoMonitor/Prefab/NanoMonitor.prefab
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 784696794bc6345bc80bf49623581c2e
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Samples~/Performance Demo/NanoMonitor/Scripts.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f0b370726e57248da97c1c2f3bfd8bdf
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"name": "Coffee.NanoMonitor",
|
||||||
|
"references": [],
|
||||||
|
"optionalUnityReferences": [],
|
||||||
|
"includePlatforms": [],
|
||||||
|
"excludePlatforms": [],
|
||||||
|
"allowUnsafeCode": false,
|
||||||
|
"overrideReferences": false,
|
||||||
|
"precompiledReferences": [],
|
||||||
|
"autoReferenced": false,
|
||||||
|
"defineConstraints": []
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3d6cc132218a845708ce317bd33e5500
|
||||||
|
AssemblyDefinitionImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
268
Samples~/Performance Demo/NanoMonitor/Scripts/NanoMonitor.cs
Normal file
@@ -0,0 +1,268 @@
|
|||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Serialization;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
using UnityEditor;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace Coffee.NanoMonitor
|
||||||
|
{
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
[CustomEditor(typeof(NanoMonitor))]
|
||||||
|
internal class NanoMonitorEditor : Editor
|
||||||
|
{
|
||||||
|
private UnityEditorInternal.ReorderableList m_MonitorItemList;
|
||||||
|
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
var items = serializedObject.FindProperty("m_CustomMonitorItems");
|
||||||
|
m_MonitorItemList = new UnityEditorInternal.ReorderableList(serializedObject, items)
|
||||||
|
{
|
||||||
|
draggable = false,
|
||||||
|
drawHeaderCallback = r => { EditorGUI.LabelField(r, new GUIContent("Custom Monitor Items")); },
|
||||||
|
drawElementCallback = (r, i, _, __) =>
|
||||||
|
{
|
||||||
|
EditorGUI.LabelField(new Rect(r.x, r.y, r.width, r.height - 2), GUIContent.none, EditorStyles.textArea);
|
||||||
|
var labelWidth = EditorGUIUtility.labelWidth;
|
||||||
|
EditorGUIUtility.labelWidth = 80;
|
||||||
|
EditorGUI.PropertyField(new Rect(r.x + 2, r.y + 3, r.width - 4, r.height - 4), items.GetArrayElementAtIndex(i), true);
|
||||||
|
EditorGUIUtility.labelWidth = labelWidth;
|
||||||
|
},
|
||||||
|
elementHeightCallback = i => EditorGUI.GetPropertyHeight(items.GetArrayElementAtIndex(i)) + 6,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnInspectorGUI()
|
||||||
|
{
|
||||||
|
base.OnInspectorGUI();
|
||||||
|
|
||||||
|
m_MonitorItemList.DoLayoutList();
|
||||||
|
serializedObject.ApplyModifiedProperties();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
[DisallowMultipleComponent]
|
||||||
|
public sealed class NanoMonitor : MonoBehaviour
|
||||||
|
{
|
||||||
|
//################################
|
||||||
|
// Serialize Members.
|
||||||
|
//################################
|
||||||
|
// Settings
|
||||||
|
[Header("Settings")] [SerializeField] [Range(0.01f, 2f)]
|
||||||
|
private float m_Interval = 1f;
|
||||||
|
|
||||||
|
[SerializeField] [Range(0, 3)] private int m_Precision = 2;
|
||||||
|
[SerializeField] private Font m_Font;
|
||||||
|
|
||||||
|
// Foldout
|
||||||
|
[Header("Foldout")] [SerializeField] private bool m_Opened = false;
|
||||||
|
|
||||||
|
[FormerlySerializedAs("m_Collapse")] [SerializeField]
|
||||||
|
private GameObject m_FoldoutObject = null;
|
||||||
|
|
||||||
|
[SerializeField] private Button m_OpenButton = null;
|
||||||
|
[SerializeField] private Button m_CloseButton = null;
|
||||||
|
|
||||||
|
// View
|
||||||
|
[Header("View")] [SerializeField] private MonitorUI m_Fps = null;
|
||||||
|
[SerializeField] private MonitorUI m_Gc = null;
|
||||||
|
[SerializeField] private MonitorUI m_MonoUsage = null;
|
||||||
|
[SerializeField] private MonitorUI m_UnityUsage = null;
|
||||||
|
|
||||||
|
[HideInInspector] [SerializeField] private CustomMonitorItem[] m_CustomMonitorItems = new CustomMonitorItem[0];
|
||||||
|
|
||||||
|
|
||||||
|
//################################
|
||||||
|
// Public Members.
|
||||||
|
//################################
|
||||||
|
public void Clean()
|
||||||
|
{
|
||||||
|
Resources.UnloadUnusedAssets();
|
||||||
|
GC.Collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//################################
|
||||||
|
// Private Members.
|
||||||
|
//################################
|
||||||
|
private double _elapsed;
|
||||||
|
private double _fpsElapsed;
|
||||||
|
private int _frames;
|
||||||
|
|
||||||
|
private void Open()
|
||||||
|
{
|
||||||
|
_frames = 0;
|
||||||
|
_elapsed = m_Interval;
|
||||||
|
_fpsElapsed = 0;
|
||||||
|
|
||||||
|
if (m_FoldoutObject)
|
||||||
|
{
|
||||||
|
m_FoldoutObject.SetActive(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_CloseButton)
|
||||||
|
{
|
||||||
|
m_CloseButton.gameObject.SetActive(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_OpenButton)
|
||||||
|
{
|
||||||
|
m_OpenButton.gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Close()
|
||||||
|
{
|
||||||
|
if (m_FoldoutObject)
|
||||||
|
{
|
||||||
|
m_FoldoutObject.SetActive(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_CloseButton)
|
||||||
|
{
|
||||||
|
m_CloseButton.gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_OpenButton)
|
||||||
|
{
|
||||||
|
m_OpenButton.gameObject.SetActive(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//################################
|
||||||
|
// Unity Callbacks.
|
||||||
|
//################################
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
if (m_OpenButton)
|
||||||
|
{
|
||||||
|
m_OpenButton.onClick.AddListener(Open);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_CloseButton)
|
||||||
|
{
|
||||||
|
m_CloseButton.onClick.AddListener(Close);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_Opened)
|
||||||
|
{
|
||||||
|
Open();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDisable()
|
||||||
|
{
|
||||||
|
if (m_OpenButton)
|
||||||
|
{
|
||||||
|
m_OpenButton.onClick.RemoveListener(Open);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_CloseButton)
|
||||||
|
{
|
||||||
|
m_CloseButton.onClick.RemoveListener(Close);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
_frames++;
|
||||||
|
_elapsed += Time.unscaledDeltaTime;
|
||||||
|
_fpsElapsed += Time.unscaledDeltaTime;
|
||||||
|
if (_elapsed < m_Interval) return;
|
||||||
|
|
||||||
|
if (m_Fps)
|
||||||
|
{
|
||||||
|
m_Fps.SetText("FPS: {0}", (int) (_frames / _fpsElapsed));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_Gc)
|
||||||
|
{
|
||||||
|
m_Gc.SetText("GC: {0}", GC.CollectionCount(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_MonoUsage)
|
||||||
|
{
|
||||||
|
var monoUsed = (UnityEngine.Profiling.Profiler.GetMonoUsedSizeLong() >> 10) / 1024f;
|
||||||
|
var monoTotal = (UnityEngine.Profiling.Profiler.GetMonoHeapSizeLong() >> 10) / 1024f;
|
||||||
|
if (m_Precision == 3)
|
||||||
|
{
|
||||||
|
m_MonoUsage.SetText("Mono: {0:N3}/{1:N3}MB", monoUsed, monoTotal);
|
||||||
|
}
|
||||||
|
else if (m_Precision == 2)
|
||||||
|
{
|
||||||
|
m_MonoUsage.SetText("Mono: {0:N2}/{1:N2}MB", monoUsed, monoTotal);
|
||||||
|
}
|
||||||
|
else if (m_Precision == 1)
|
||||||
|
{
|
||||||
|
m_MonoUsage.SetText("Mono: {0:N1}/{1:N1}MB", monoUsed, monoTotal);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_MonoUsage.SetText("Mono: {0:N0}/{1:N0}MB", monoUsed, monoTotal);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_UnityUsage)
|
||||||
|
{
|
||||||
|
var unityUsed = (UnityEngine.Profiling.Profiler.GetTotalAllocatedMemoryLong() >> 10) / 1024f;
|
||||||
|
var unityTotal = (UnityEngine.Profiling.Profiler.GetTotalReservedMemoryLong() >> 10) / 1024f;
|
||||||
|
if (m_Precision == 3)
|
||||||
|
{
|
||||||
|
m_UnityUsage.SetText("Unity: {0:N3}/{1:N3}MB", unityUsed, unityTotal);
|
||||||
|
}
|
||||||
|
else if (m_Precision == 2)
|
||||||
|
{
|
||||||
|
m_UnityUsage.SetText("Unity: {0:N2}/{1:N2}MB", unityUsed, unityTotal);
|
||||||
|
}
|
||||||
|
else if (m_Precision == 1)
|
||||||
|
{
|
||||||
|
m_UnityUsage.SetText("Unity: {0:N1}/{1:N1}MB", unityUsed, unityTotal);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_UnityUsage.SetText("Unity: {0:N0}/{1:N0}MB", unityUsed, unityTotal);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var item in m_CustomMonitorItems)
|
||||||
|
{
|
||||||
|
item.UpdateText();
|
||||||
|
}
|
||||||
|
|
||||||
|
_frames = 0;
|
||||||
|
_elapsed %= m_Interval;
|
||||||
|
_fpsElapsed = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
private void OnValidate()
|
||||||
|
{
|
||||||
|
if (m_Font)
|
||||||
|
{
|
||||||
|
foreach (var ui in GetComponentsInChildren<MonitorUI>(true))
|
||||||
|
{
|
||||||
|
ui.font = m_Font;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_Opened)
|
||||||
|
{
|
||||||
|
Open();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: f689ea5a2e9f140288c8874127aa9ee0
|
guid: 19e83f45e7d5648f2bd10122dc7fed14
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: affee221821a14cfb842a0b0e8514a4e
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,138 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace Coffee.NanoMonitor{
|
||||||
|
public class FixedFont
|
||||||
|
{
|
||||||
|
private readonly UIVertex[] _tmpVerts = new UIVertex[4];
|
||||||
|
private static readonly Dictionary<Font, FixedFont> _fonts = new Dictionary<Font, FixedFont>();
|
||||||
|
private static readonly TextGenerator _textGenerator = new TextGenerator(100);
|
||||||
|
|
||||||
|
private static TextGenerationSettings _settings = new TextGenerationSettings
|
||||||
|
{
|
||||||
|
scaleFactor = 1,
|
||||||
|
horizontalOverflow = HorizontalWrapMode.Overflow,
|
||||||
|
verticalOverflow = VerticalWrapMode.Overflow,
|
||||||
|
alignByGeometry = true,
|
||||||
|
textAnchor = TextAnchor.MiddleCenter,
|
||||||
|
color = Color.white
|
||||||
|
};
|
||||||
|
|
||||||
|
private int _resolution = 0;
|
||||||
|
private readonly Font _font;
|
||||||
|
private UIVertex[] _verts;
|
||||||
|
private UICharInfo[] _charInfos;
|
||||||
|
|
||||||
|
private FixedFont(Font font)
|
||||||
|
{
|
||||||
|
_font = font;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int fontSize => _font.dynamic ? 32 : _font.fontSize;
|
||||||
|
|
||||||
|
public static FixedFont GetOrCreate(Font font)
|
||||||
|
{
|
||||||
|
if (font == null) return null;
|
||||||
|
if (_fonts.TryGetValue(font, out var data)) return data;
|
||||||
|
|
||||||
|
data = new FixedFont(font);
|
||||||
|
_fonts.Add(font, data);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Invalidate()
|
||||||
|
{
|
||||||
|
_resolution = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateFont()
|
||||||
|
{
|
||||||
|
if (!_font) return;
|
||||||
|
|
||||||
|
var mat = _font.material;
|
||||||
|
if (!mat) return;
|
||||||
|
|
||||||
|
var tex = mat.mainTexture;
|
||||||
|
if (!tex) return;
|
||||||
|
|
||||||
|
var currentResolution = tex.width * tex.height;
|
||||||
|
|
||||||
|
if (_resolution == currentResolution) return;
|
||||||
|
_resolution = currentResolution;
|
||||||
|
|
||||||
|
_settings.font = _font;
|
||||||
|
_textGenerator.Invalidate();
|
||||||
|
_textGenerator.Populate("_!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", _settings);
|
||||||
|
|
||||||
|
_verts = _textGenerator.GetVerticesArray();
|
||||||
|
_charInfos = _textGenerator.GetCharactersArray();
|
||||||
|
|
||||||
|
float offsetX = 0;
|
||||||
|
for (var i = 0; i < _verts.Length; i++)
|
||||||
|
{
|
||||||
|
if ((i & 3) == 0)
|
||||||
|
offsetX = _verts[i].position.x;
|
||||||
|
|
||||||
|
var v = _verts[i];
|
||||||
|
v.position -= new Vector3(offsetX, 0);
|
||||||
|
_verts[i] = v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public float Layout(char c, float offset, float scale)
|
||||||
|
{
|
||||||
|
if (_charInfos == null) return offset;
|
||||||
|
if (c < 0x20 || 0x7e < c) return offset;
|
||||||
|
var ci = c - 0x20;
|
||||||
|
|
||||||
|
return offset + _charInfos[ci].charWidth * scale;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float Append(VertexHelper toFill, char c, float offset, float scale, Color color)
|
||||||
|
{
|
||||||
|
if (_verts == null || _charInfos == null) return offset;
|
||||||
|
if (c < 0x20 || 0x7e < c) return offset;
|
||||||
|
var ci = c - 0x20;
|
||||||
|
|
||||||
|
for (var i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
_tmpVerts[i] = _verts[ci * 4 + i];
|
||||||
|
_tmpVerts[i].position = _tmpVerts[i].position * scale + new Vector3(offset, 0);
|
||||||
|
_tmpVerts[i].color = ci == 0 ? Color.clear : color;
|
||||||
|
}
|
||||||
|
|
||||||
|
toFill.AddUIVertexQuad(_tmpVerts);
|
||||||
|
return offset + _charInfos[ci].charWidth * scale;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Fill(VertexHelper toFill, Color color, RectTransform tr)
|
||||||
|
{
|
||||||
|
if (_verts == null || _charInfos == null) return;
|
||||||
|
const int ci = '*' - 0x20;
|
||||||
|
var uv = (_verts[ci * 4].uv0 + _verts[ci * 4 + 2].uv0) / 2;
|
||||||
|
|
||||||
|
var rect = tr.rect;
|
||||||
|
var size = rect.size / 2;
|
||||||
|
var offset = (new Vector2(0.5f, 0.5f) - tr.pivot) * rect.size;
|
||||||
|
|
||||||
|
for (var i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
_tmpVerts[i] = new UIVertex();
|
||||||
|
_tmpVerts[i].uv0 = uv;
|
||||||
|
_tmpVerts[i].color = color;
|
||||||
|
|
||||||
|
if (i == 0)
|
||||||
|
_tmpVerts[i].position = new Vector2(-size.x, -size.y) + offset;
|
||||||
|
else if (i == 1)
|
||||||
|
_tmpVerts[i].position = new Vector2(-size.x, size.y) + offset;
|
||||||
|
else if (i == 2)
|
||||||
|
_tmpVerts[i].position = new Vector2(size.x, size.y) + offset;
|
||||||
|
else
|
||||||
|
_tmpVerts[i].position = new Vector2(size.x, -size.y) + offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
toFill.AddUIVertexQuad(_tmpVerts);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9a8c5c555d4bf4361ab3435c318c0699
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences:
|
||||||
|
- m_Material: {fileID: 2100000, guid: 4da4639f724144ddead57bffca64e71f, type: 3}
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,236 @@
|
|||||||
|
using System.Text;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace Coffee.NanoMonitor{
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
using UnityEditor;
|
||||||
|
|
||||||
|
[CustomEditor(typeof(MonitorUI))]
|
||||||
|
public class MonitorTextEditor : Editor
|
||||||
|
{
|
||||||
|
private SerializedProperty m_Mode;
|
||||||
|
private SerializedProperty m_TextAnchor;
|
||||||
|
private SerializedProperty m_FontSize;
|
||||||
|
private SerializedProperty m_Font;
|
||||||
|
private SerializedProperty m_Text;
|
||||||
|
private SerializedProperty m_Color;
|
||||||
|
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
m_Mode = serializedObject.FindProperty("m_Mode");
|
||||||
|
|
||||||
|
m_Text = serializedObject.FindProperty("m_Text");
|
||||||
|
m_Color = serializedObject.FindProperty("m_Color");
|
||||||
|
var fontData = serializedObject.FindProperty("m_FontData");
|
||||||
|
m_FontSize = fontData.FindPropertyRelative("m_FontSize");
|
||||||
|
m_Font = fontData.FindPropertyRelative("m_Font");
|
||||||
|
m_TextAnchor = serializedObject.FindProperty("m_TextAnchor");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnInspectorGUI()
|
||||||
|
{
|
||||||
|
serializedObject.Update();
|
||||||
|
|
||||||
|
EditorGUILayout.PropertyField(m_Mode);
|
||||||
|
if ((MonitorUI.Mode) m_Mode.intValue == MonitorUI.Mode.Text)
|
||||||
|
{
|
||||||
|
EditorGUILayout.PropertyField(m_Text);
|
||||||
|
EditorGUILayout.PropertyField(m_FontSize);
|
||||||
|
EditorGUILayout.PropertyField(m_TextAnchor);
|
||||||
|
|
||||||
|
//EditorGUI.BeginDisabledGroup(true);
|
||||||
|
EditorGUILayout.PropertyField(m_Font);
|
||||||
|
//EditorGUI.EndDisabledGroup();
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorGUILayout.PropertyField(m_Color);
|
||||||
|
|
||||||
|
serializedObject.ApplyModifiedProperties();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
public class MonitorUI : Text
|
||||||
|
{
|
||||||
|
public enum Mode
|
||||||
|
{
|
||||||
|
Text,
|
||||||
|
Fill,
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum TextAnchor
|
||||||
|
{
|
||||||
|
Left,
|
||||||
|
Center,
|
||||||
|
Right
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//################################
|
||||||
|
// Serialize Members.
|
||||||
|
//################################
|
||||||
|
[SerializeField] private Mode m_Mode = Mode.Text;
|
||||||
|
[SerializeField] private TextAnchor m_TextAnchor;
|
||||||
|
|
||||||
|
|
||||||
|
//################################
|
||||||
|
// Public Members.
|
||||||
|
//################################
|
||||||
|
public override string text
|
||||||
|
{
|
||||||
|
get => m_StringBuilder.ToString();
|
||||||
|
set
|
||||||
|
{
|
||||||
|
m_Text = value;
|
||||||
|
if (m_StringBuilder.IsEqual(m_Text)) return;
|
||||||
|
|
||||||
|
m_StringBuilder.Length = 0;
|
||||||
|
m_StringBuilder.Append(m_Text);
|
||||||
|
SetVerticesDirty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TextAnchor textAnchor
|
||||||
|
{
|
||||||
|
get => m_TextAnchor;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (m_TextAnchor == value) return;
|
||||||
|
|
||||||
|
m_TextAnchor = value;
|
||||||
|
SetVerticesDirty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool raycastTarget
|
||||||
|
{
|
||||||
|
get => m_Mode == Mode.Fill;
|
||||||
|
set { }
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetText(string format, double arg0 = 0, double arg1 = 0, double arg2 = 0, double arg3 = 0)
|
||||||
|
{
|
||||||
|
m_StringBuilder.Length = 0;
|
||||||
|
m_StringBuilder.AppendFormatNoAlloc(format, arg0, arg1, arg2, arg3);
|
||||||
|
SetVerticesDirty();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetText(StringBuilder builder)
|
||||||
|
{
|
||||||
|
m_StringBuilder.Length = 0;
|
||||||
|
m_StringBuilder.Append(builder);
|
||||||
|
SetVerticesDirty();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//################################
|
||||||
|
// Private Members.
|
||||||
|
//################################
|
||||||
|
private readonly StringBuilder m_StringBuilder = new StringBuilder(64);
|
||||||
|
|
||||||
|
private void UpdateFont()
|
||||||
|
{
|
||||||
|
//var globalFont = NNanoMonitorttings.Instance.font;
|
||||||
|
//if (globalFont)
|
||||||
|
//{
|
||||||
|
// font = globalFont;
|
||||||
|
//}
|
||||||
|
|
||||||
|
var fontData = FixedFont.GetOrCreate(font);
|
||||||
|
if (fontData != null)
|
||||||
|
{
|
||||||
|
fontData.Invalidate();
|
||||||
|
fontData.UpdateFont();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//################################
|
||||||
|
// Unity Callbacks.
|
||||||
|
//################################
|
||||||
|
protected override void OnEnable()
|
||||||
|
{
|
||||||
|
//NaNanoMonitortings.Instance.onFontChanged += UpdateFont;
|
||||||
|
RegisterDirtyMaterialCallback(UpdateFont);
|
||||||
|
|
||||||
|
base.OnEnable();
|
||||||
|
raycastTarget = false;
|
||||||
|
maskable = false;
|
||||||
|
m_StringBuilder.Length = 0;
|
||||||
|
m_StringBuilder.Append(m_Text);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnDisable()
|
||||||
|
{
|
||||||
|
//NanNanoMonitorings.Instance.onFontChanged -= UpdateFont;
|
||||||
|
UnregisterDirtyMaterialCallback(UpdateFont);
|
||||||
|
|
||||||
|
base.OnDisable();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
protected override void OnValidate()
|
||||||
|
{
|
||||||
|
base.OnValidate();
|
||||||
|
|
||||||
|
if (!m_StringBuilder.IsEqual(m_Text))
|
||||||
|
{
|
||||||
|
m_StringBuilder.Length = 0;
|
||||||
|
m_StringBuilder.Append(m_Text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
protected override void OnPopulateMesh(VertexHelper toFill)
|
||||||
|
{
|
||||||
|
toFill.Clear();
|
||||||
|
|
||||||
|
var fontData = FixedFont.GetOrCreate(font);
|
||||||
|
if (fontData == null) return;
|
||||||
|
|
||||||
|
fontData.UpdateFont();
|
||||||
|
|
||||||
|
if (m_Mode == Mode.Fill)
|
||||||
|
{
|
||||||
|
fontData.Fill(toFill, color, rectTransform);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var scale = (float) fontSize / fontData.fontSize;
|
||||||
|
float offset = 0;
|
||||||
|
switch (textAnchor)
|
||||||
|
{
|
||||||
|
case TextAnchor.Left:
|
||||||
|
offset = rectTransform.rect.xMin;
|
||||||
|
break;
|
||||||
|
case TextAnchor.Center:
|
||||||
|
for (var i = 0; i < m_StringBuilder.Length; i++)
|
||||||
|
offset = fontData.Layout(m_StringBuilder[i], offset, scale);
|
||||||
|
offset = -offset / 2;
|
||||||
|
break;
|
||||||
|
case TextAnchor.Right:
|
||||||
|
for (var i = 0; i < m_StringBuilder.Length; i++)
|
||||||
|
offset = fontData.Layout(m_StringBuilder[i], offset, scale);
|
||||||
|
offset = rectTransform.rect.xMax - offset;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0; i < m_StringBuilder.Length; i++)
|
||||||
|
{
|
||||||
|
offset = fontData.Append(toFill, m_StringBuilder[i], offset, scale, color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void UpdateMaterial()
|
||||||
|
{
|
||||||
|
base.UpdateMaterial();
|
||||||
|
|
||||||
|
var fontData = FixedFont.GetOrCreate(font);
|
||||||
|
if (fontData != null)
|
||||||
|
{
|
||||||
|
fontData.UpdateFont();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b0e08c6080a2e4d8186f97c60518830f
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences:
|
||||||
|
- m_Material: {fileID: 2100000, guid: 4da4639f724144ddead57bffca64e71f, type: 3}
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.SceneManagement;
|
||||||
|
|
||||||
|
namespace Coffee.MiniProfiler
|
||||||
|
{
|
||||||
|
internal class MiniProfilerSettings : ScriptableSettings<MiniProfilerSettings>
|
||||||
|
{
|
||||||
|
[Header("UI")]
|
||||||
|
[SerializeField] private Font m_Font = null;
|
||||||
|
|
||||||
|
[Header("Instantiate On Boot")]
|
||||||
|
[SerializeField] private GameObject miniProfilerPrefab = null;
|
||||||
|
[SerializeField] private string[] m_SceneNames = new string[0];
|
||||||
|
|
||||||
|
public Font font => m_Font;
|
||||||
|
public event Action onFontChanged;
|
||||||
|
|
||||||
|
protected override void OnBoot()
|
||||||
|
{
|
||||||
|
SceneManager.sceneLoaded -= OnSceneLoaded;
|
||||||
|
SceneManager.sceneLoaded += OnSceneLoaded;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnSceneLoaded(Scene scene, LoadSceneMode __)
|
||||||
|
{
|
||||||
|
SceneManager.sceneLoaded -= OnSceneLoaded;
|
||||||
|
if (!miniProfilerPrefab || !m_SceneNames.Contains(scene.name)) return;
|
||||||
|
|
||||||
|
var go = Instantiate(miniProfilerPrefab);
|
||||||
|
if (Application.isPlaying)
|
||||||
|
DontDestroyOnLoad(go);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override bool bootOnPlayMode => true;
|
||||||
|
protected override bool bootOnEditorMode => false;
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
protected override void OnValidate()
|
||||||
|
{
|
||||||
|
onFontChanged?.Invoke();
|
||||||
|
base.OnValidate();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Reset()
|
||||||
|
{
|
||||||
|
m_Font = UnityEngine.Resources.GetBuiltinResource<Font>("Arial.ttf");
|
||||||
|
}
|
||||||
|
|
||||||
|
[UnityEditor.SettingsProvider]
|
||||||
|
private static UnityEditor.SettingsProvider CreateSettingsProvider() => new ScriptableSettingsProvider<MiniProfilerSettings>();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 647dad4f8226a49b9874b68b79413d64
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences:
|
||||||
|
- miniProfilerPrefab: {fileID: 7211429669315726685, guid: 784696794bc6345bc80bf49623581c2e,
|
||||||
|
type: 3}
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,280 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
using UnityEditor;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace Coffee.MiniProfiler
|
||||||
|
{
|
||||||
|
internal abstract class ScriptableSettings : ScriptableObject
|
||||||
|
{
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
public virtual string GetSettingPath()
|
||||||
|
{
|
||||||
|
return GetSettingPath(GetType());
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static string GetSettingPath(Type type)
|
||||||
|
{
|
||||||
|
return $"Project/{ObjectNames.NicifyVariableName(type.Name.Replace("ProjectSettings", ""))}";
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
public virtual string GetDefaultAssetPath()
|
||||||
|
{
|
||||||
|
return $"Assets/ProjectSettings/{GetType().Name}.asset";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal abstract class ScriptableSettings<T> : ScriptableSettings
|
||||||
|
where T : ScriptableSettings<T>
|
||||||
|
{
|
||||||
|
//################################
|
||||||
|
// Public Members.
|
||||||
|
//################################
|
||||||
|
public static T Instance => _instance ? _instance : _instance = GetOrCreate();
|
||||||
|
|
||||||
|
private static T _instance;
|
||||||
|
|
||||||
|
protected virtual bool bootOnEditorMode => true;
|
||||||
|
protected virtual bool bootOnPlayMode => true;
|
||||||
|
|
||||||
|
protected abstract void OnBoot();
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
//################################
|
||||||
|
// Private Members.
|
||||||
|
//################################
|
||||||
|
private bool enabled;
|
||||||
|
|
||||||
|
private static T GetOrCreate()
|
||||||
|
{
|
||||||
|
return PlayerSettings.GetPreloadedAssets()
|
||||||
|
.OfType<T>()
|
||||||
|
.FirstOrDefault() ?? CreateInstance<T>();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnPlayModeStateChanged(PlayModeStateChange state)
|
||||||
|
{
|
||||||
|
switch (state)
|
||||||
|
{
|
||||||
|
case PlayModeStateChange.EnteredEditMode:
|
||||||
|
enabled = true;
|
||||||
|
Boot();
|
||||||
|
break;
|
||||||
|
case PlayModeStateChange.ExitingEditMode:
|
||||||
|
case PlayModeStateChange.ExitingPlayMode:
|
||||||
|
enabled = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Boot()
|
||||||
|
{
|
||||||
|
var preloadedAssets = PlayerSettings.GetPreloadedAssets();
|
||||||
|
var assets = preloadedAssets.OfType<T>().ToArray();
|
||||||
|
var first = assets.FirstOrDefault() ?? this as T;
|
||||||
|
|
||||||
|
// If there are no preloaded assets, registry the first asset.
|
||||||
|
// If there are multiple preloaded assets, unregisters all but the first one.
|
||||||
|
if (assets.Length != 1)
|
||||||
|
{
|
||||||
|
// The first asset is not saved.
|
||||||
|
if (string.IsNullOrEmpty(AssetDatabase.GetAssetPath(first)))
|
||||||
|
{
|
||||||
|
if (!AssetDatabase.IsValidFolder("Assets/ProjectSettings"))
|
||||||
|
AssetDatabase.CreateFolder("Assets", "ProjectSettings");
|
||||||
|
|
||||||
|
var assetName = ObjectNames.NicifyVariableName(first.GetType().Name.Replace("ProjectSettings", ""));
|
||||||
|
var assetPath = AssetDatabase.GenerateUniqueAssetPath($"Assets/ProjectSettings/{assetName}.asset");
|
||||||
|
AssetDatabase.CreateAsset(first, assetPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
PlayerSettings.SetPreloadedAssets(preloadedAssets
|
||||||
|
.Where(x => x)
|
||||||
|
.Except(assets)
|
||||||
|
.Concat(new[] {first})
|
||||||
|
.ToArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Another asset is registered as a preload asset.
|
||||||
|
if (first != this)
|
||||||
|
{
|
||||||
|
UnityEngine.Debug.LogError($"Another asset '{first}' is registered as a preload '{typeof(T).Name}' asset." +
|
||||||
|
$"\nThis instance ('{this}') will be ignored. Check 'Project Settings > Player > Preload Assets'", this);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_instance = first;
|
||||||
|
|
||||||
|
// Do nothing on editor mode.
|
||||||
|
if (!bootOnEditorMode && !EditorApplication.isPlayingOrWillChangePlaymode)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Do nothing on play mode.
|
||||||
|
if (!bootOnPlayMode && EditorApplication.isPlayingOrWillChangePlaymode)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
OnBoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//################################
|
||||||
|
// Unity Callbacks.
|
||||||
|
//################################
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
enabled = true;
|
||||||
|
Boot();
|
||||||
|
EditorApplication.playModeStateChanged += OnPlayModeStateChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDisable()
|
||||||
|
{
|
||||||
|
EditorApplication.playModeStateChanged -= OnPlayModeStateChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnValidate()
|
||||||
|
{
|
||||||
|
if (enabled)
|
||||||
|
Boot();
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
private static T GetOrCreate()
|
||||||
|
{
|
||||||
|
return CreateInstance<T>();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
if (!bootOnPlayMode) return;
|
||||||
|
|
||||||
|
_instance = this as T;
|
||||||
|
OnBoot();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
[CustomEditor(typeof(ScriptablePreferenceSettings<>), true)]
|
||||||
|
internal class ScriptablePreferenceSettingsEditor : Editor
|
||||||
|
{
|
||||||
|
private static readonly GUIContent _button = new GUIContent("Open Project Settings");
|
||||||
|
|
||||||
|
public override void OnInspectorGUI()
|
||||||
|
{
|
||||||
|
if (GUILayout.Button(_button))
|
||||||
|
{
|
||||||
|
SettingsService.OpenProjectSettings(((ScriptableSettings) target).GetSettingPath());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal abstract class ScriptablePreferenceSettings<T> : ScriptableSingleton<T>
|
||||||
|
where T : ScriptablePreferenceSettings<T>
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
[CustomEditor(typeof(ScriptableSettings), true)]
|
||||||
|
internal class ScriptableSettingsEditor : Editor
|
||||||
|
{
|
||||||
|
private static readonly GUIContent _button = new GUIContent("Open Project Settings");
|
||||||
|
|
||||||
|
public override void OnInspectorGUI()
|
||||||
|
{
|
||||||
|
if (GUILayout.Button(_button))
|
||||||
|
{
|
||||||
|
SettingsService.OpenProjectSettings(((ScriptableSettings) target).GetSettingPath());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class ScriptableSettingsProvider<T> : SettingsProvider where T : ScriptableSettings<T>
|
||||||
|
{
|
||||||
|
public ScriptableSettingsProvider(string path) : base(path)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public ScriptableSettingsProvider() : base(ScriptableSettings.GetSettingPath(typeof(T)))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected SerializedObject serializedObject { get; private set; }
|
||||||
|
protected ScriptableSettings<T> target { get; private set; }
|
||||||
|
|
||||||
|
public sealed override void OnGUI(string searchContext)
|
||||||
|
{
|
||||||
|
if (!target)
|
||||||
|
{
|
||||||
|
target = ScriptableSettings<T>.Instance;
|
||||||
|
serializedObject = new SerializedObject(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
OnGUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnGUI()
|
||||||
|
{
|
||||||
|
serializedObject.UpdateIfRequiredOrScript();
|
||||||
|
var iterator = serializedObject.GetIterator();
|
||||||
|
var enterChildren = true;
|
||||||
|
while (iterator.NextVisible(enterChildren))
|
||||||
|
{
|
||||||
|
if (iterator.propertyPath != "m_Script")
|
||||||
|
EditorGUILayout.PropertyField(iterator, true);
|
||||||
|
|
||||||
|
enterChildren = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
serializedObject.ApplyModifiedProperties();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class ScriptablePreferenceSettingsProvider<T> : SettingsProvider where T : ScriptableSettings<T>
|
||||||
|
{
|
||||||
|
public ScriptablePreferenceSettingsProvider(string path) : base(path, SettingsScope.User)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public ScriptablePreferenceSettingsProvider() : base(ScriptableSettings.GetSettingPath(typeof(T)), SettingsScope.User)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected SerializedObject serializedObject { get; private set; }
|
||||||
|
protected ScriptableSettings<T> target { get; private set; }
|
||||||
|
|
||||||
|
public sealed override void OnGUI(string searchContext)
|
||||||
|
{
|
||||||
|
if (!target)
|
||||||
|
{
|
||||||
|
target = ScriptableSettings<T>.Instance;
|
||||||
|
serializedObject = new SerializedObject(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
OnGUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnGUI()
|
||||||
|
{
|
||||||
|
serializedObject.UpdateIfRequiredOrScript();
|
||||||
|
var iterator = serializedObject.GetIterator();
|
||||||
|
var enterChildren = true;
|
||||||
|
while (iterator.NextVisible(enterChildren))
|
||||||
|
{
|
||||||
|
if (iterator.propertyPath != "m_Script")
|
||||||
|
EditorGUILayout.PropertyField(iterator, true);
|
||||||
|
|
||||||
|
enterChildren = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
serializedObject.ApplyModifiedProperties();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6ea9606f69cee413e9f96f52de99fa5e
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1051ed7e3f1474ed59ca41b33b00029b
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
using UnityEditor;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace Coffee.NanoMonitor
|
||||||
|
{
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
[CustomPropertyDrawer(typeof(CustomMonitorItem))]
|
||||||
|
internal sealed class CustomMonitorItemDrawer : PropertyDrawer
|
||||||
|
{
|
||||||
|
public override void OnGUI(Rect p, SerializedProperty property, GUIContent label)
|
||||||
|
{
|
||||||
|
EditorGUI.PropertyField(new Rect(p.x, p.y + 18 * 0, p.width, 16), property.FindPropertyRelative("m_Text"));
|
||||||
|
EditorGUI.PropertyField(new Rect(p.x, p.y + 18 * 1, p.width, 16), property.FindPropertyRelative("m_Format"));
|
||||||
|
EditorGUI.indentLevel++;
|
||||||
|
EditorGUI.PropertyField(new Rect(p.x, p.y + 18 * 2, p.width, 16), property.FindPropertyRelative("m_Arg0"));
|
||||||
|
EditorGUI.PropertyField(new Rect(p.x, p.y + 18 * 3, p.width, 16), property.FindPropertyRelative("m_Arg1"));
|
||||||
|
EditorGUI.PropertyField(new Rect(p.x, p.y + 18 * 4, p.width, 16), property.FindPropertyRelative("m_Arg2"));
|
||||||
|
EditorGUI.indentLevel--;
|
||||||
|
|
||||||
|
property.serializedObject.ApplyModifiedProperties();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
|
||||||
|
{
|
||||||
|
return (EditorGUIUtility.singleLineHeight + 2) * 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
[System.Serializable]
|
||||||
|
public class CustomMonitorItem
|
||||||
|
{
|
||||||
|
[SerializeField] private MonitorUI m_Text = null;
|
||||||
|
[SerializeField] private string m_Format = "";
|
||||||
|
[SerializeField] private NumericProperty m_Arg0 = null;
|
||||||
|
[SerializeField] private NumericProperty m_Arg1 = null;
|
||||||
|
[SerializeField] private NumericProperty m_Arg2 = null;
|
||||||
|
|
||||||
|
public void UpdateText()
|
||||||
|
{
|
||||||
|
if (m_Text)
|
||||||
|
m_Text.SetText(m_Format, m_Arg0.Get(), m_Arg1.Get(), m_Arg2.Get());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5c50c6434f4ad4488bfc5b0928dbb4c4
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,199 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Serialization;
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
using UnityEditor;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace Coffee.NanoMonitor
|
||||||
|
{
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
[CustomPropertyDrawer(typeof(NumericProperty))]
|
||||||
|
internal sealed class NumericPropertyDrawer : PropertyDrawer
|
||||||
|
{
|
||||||
|
private static Action<PropertyInfo> s_OnMenuSelected;
|
||||||
|
private static GenericMenu s_PropertyMenu;
|
||||||
|
|
||||||
|
private static readonly Dictionary<Type, string> s_SupportedTypes = new Dictionary<Type, string>
|
||||||
|
{
|
||||||
|
{typeof(bool), "bool"},
|
||||||
|
{typeof(sbyte), "sbyte"},
|
||||||
|
{typeof(short), "short"},
|
||||||
|
{typeof(int), "int"},
|
||||||
|
{typeof(long), "long"},
|
||||||
|
{typeof(byte), "byte"},
|
||||||
|
{typeof(ushort), "ushort"},
|
||||||
|
{typeof(uint), "uint"},
|
||||||
|
{typeof(ulong), "ulong"},
|
||||||
|
{typeof(float), "float"},
|
||||||
|
{typeof(double), "double"},
|
||||||
|
{typeof(decimal), "decimal"},
|
||||||
|
};
|
||||||
|
|
||||||
|
private static void Init()
|
||||||
|
{
|
||||||
|
if (s_PropertyMenu != null) return;
|
||||||
|
|
||||||
|
var properties = AppDomain.CurrentDomain.GetAssemblies()
|
||||||
|
.SelectMany(assembly => assembly.GetTypes())
|
||||||
|
.SelectMany(type => type.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.GetProperty))
|
||||||
|
.Where(pi => pi.GetMethod != null && s_SupportedTypes.ContainsKey(pi.PropertyType))
|
||||||
|
.OrderBy(pi => ConvertToMenuItem(pi, false))
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
|
s_PropertyMenu = new GenericMenu();
|
||||||
|
s_PropertyMenu.AddItem(new GUIContent("No Property"), false, arg => s_OnMenuSelected?.Invoke(arg as PropertyInfo), null);
|
||||||
|
s_PropertyMenu.AddItem(new GUIContent("(Non Public Properties)/"), false, ()=>{});
|
||||||
|
s_PropertyMenu.AddSeparator("");
|
||||||
|
|
||||||
|
foreach (var pi in properties)
|
||||||
|
{
|
||||||
|
s_PropertyMenu.AddItem(new GUIContent(ConvertToMenuItem(pi, true)), false, arg => s_OnMenuSelected?.Invoke(arg as PropertyInfo), pi);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string ConvertToMenuItem(PropertyInfo p, bool propertyType)
|
||||||
|
{
|
||||||
|
var type = p.DeclaringType;
|
||||||
|
if (type == null) return "";
|
||||||
|
var category = p.GetMethod.IsPublic && type.IsPublic ? "" : "(Non Public Properties)/";
|
||||||
|
var typeName = type.FullName;
|
||||||
|
var asmName = type.Assembly.GetName().Name;
|
||||||
|
if (asmName == "UnityEngine.CoreModule")
|
||||||
|
asmName = "UnityEngine";
|
||||||
|
return propertyType
|
||||||
|
? $"{category}{asmName}/{typeName}/{s_SupportedTypes[p.PropertyType]} {p.Name}"
|
||||||
|
: $"{category}{asmName}/{typeName}/{p.Name}";
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
label = EditorGUI.BeginProperty(position, label, property);
|
||||||
|
|
||||||
|
var path = property.FindPropertyRelative("m_Path");
|
||||||
|
var split = path.stringValue.Split(';', ' ', ',');
|
||||||
|
var name = split.Length == 4 ? $"{split[0]}.{split[3]}" : "No Property";
|
||||||
|
|
||||||
|
position = EditorGUI.PrefixLabel(position, label);
|
||||||
|
if (GUI.Button(position, name, EditorStyles.popup))
|
||||||
|
{
|
||||||
|
s_OnMenuSelected = p =>
|
||||||
|
{
|
||||||
|
path.stringValue = p == null ? "" : $"{p.DeclaringType?.FullName}, {p.DeclaringType?.Assembly.GetName().Name};{p.Name}";
|
||||||
|
property.serializedObject.ApplyModifiedProperties();
|
||||||
|
};
|
||||||
|
s_PropertyMenu.DropDown(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorGUI.EndProperty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class NumericProperty : ISerializationCallbackReceiver
|
||||||
|
{
|
||||||
|
//################################
|
||||||
|
// Serialized Members.
|
||||||
|
//################################
|
||||||
|
[SerializeField] private string m_Path = "";
|
||||||
|
|
||||||
|
|
||||||
|
//################################
|
||||||
|
// Public Members.
|
||||||
|
//################################
|
||||||
|
public double Get()
|
||||||
|
{
|
||||||
|
return _get?.Invoke() ?? -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//################################
|
||||||
|
// Private Members.
|
||||||
|
//################################
|
||||||
|
private Func<double> _get = null;
|
||||||
|
|
||||||
|
private static PropertyInfo GetPropertyInfo(string path)
|
||||||
|
{
|
||||||
|
var p = path.Split(';');
|
||||||
|
if (p.Length != 2) return null;
|
||||||
|
|
||||||
|
var type = Type.GetType(p[0]);
|
||||||
|
if (type == null)
|
||||||
|
{
|
||||||
|
UnityEngine.Debug.LogException(new Exception($"Type '{p[0]}' is not found"));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var pInfo = type.GetProperty(p[1], BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Static);
|
||||||
|
if (pInfo == null)
|
||||||
|
{
|
||||||
|
UnityEngine.Debug.LogException(new Exception($"Member '{p[1]}' is not found in type '{type}'"));
|
||||||
|
}
|
||||||
|
|
||||||
|
return pInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Func<double> CreateFunc(MethodInfo mInfo)
|
||||||
|
{
|
||||||
|
if (mInfo == null) return null;
|
||||||
|
switch (Type.GetTypeCode(mInfo.ReturnType))
|
||||||
|
{
|
||||||
|
case TypeCode.Boolean:
|
||||||
|
var f_bool = (Func<bool>) mInfo.CreateDelegate(typeof(Func<bool>));
|
||||||
|
return () => f_bool() ? 1 : 0;
|
||||||
|
case TypeCode.Byte:
|
||||||
|
var f_byte = (Func<byte>) mInfo.CreateDelegate(typeof(Func<byte>));
|
||||||
|
return () => f_byte();
|
||||||
|
case TypeCode.SByte:
|
||||||
|
var f_sbyte = (Func<sbyte>) mInfo.CreateDelegate(typeof(Func<sbyte>));
|
||||||
|
return () => f_sbyte();
|
||||||
|
case TypeCode.UInt16:
|
||||||
|
var f_ushort = (Func<ushort>) mInfo.CreateDelegate(typeof(Func<ushort>));
|
||||||
|
return () => f_ushort();
|
||||||
|
case TypeCode.UInt32:
|
||||||
|
var f_uint = (Func<uint>) mInfo.CreateDelegate(typeof(Func<uint>));
|
||||||
|
return () => f_uint();
|
||||||
|
case TypeCode.UInt64:
|
||||||
|
var f_ulong = (Func<ulong>) mInfo.CreateDelegate(typeof(Func<ulong>));
|
||||||
|
return () => f_ulong();
|
||||||
|
case TypeCode.Int16:
|
||||||
|
var f_short = (Func<short>) mInfo.CreateDelegate(typeof(Func<short>));
|
||||||
|
return () => f_short();
|
||||||
|
case TypeCode.Int32:
|
||||||
|
var f_int = (Func<int>) mInfo.CreateDelegate(typeof(Func<int>));
|
||||||
|
return () => f_int();
|
||||||
|
case TypeCode.Int64:
|
||||||
|
var f_long = (Func<long>) mInfo.CreateDelegate(typeof(Func<long>));
|
||||||
|
return () => f_long();
|
||||||
|
case TypeCode.Decimal:
|
||||||
|
var f_decimal = (Func<decimal>) mInfo.CreateDelegate(typeof(Func<decimal>));
|
||||||
|
return () => (double) f_decimal();
|
||||||
|
case TypeCode.Double:
|
||||||
|
var f_double = (Func<double>) mInfo.CreateDelegate(typeof(Func<double>));
|
||||||
|
return f_double;
|
||||||
|
case TypeCode.Single:
|
||||||
|
var f_float = (Func<float>) mInfo.CreateDelegate(typeof(Func<float>));
|
||||||
|
return () => f_float();
|
||||||
|
default:
|
||||||
|
UnityEngine.Debug.LogException(new Exception(string.Format("Method '{1}.{0}' is not supported.", mInfo.Name, mInfo.DeclaringType)));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ISerializationCallbackReceiver.OnBeforeSerialize()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void ISerializationCallbackReceiver.OnAfterDeserialize()
|
||||||
|
{
|
||||||
|
var pInfo = GetPropertyInfo(m_Path);
|
||||||
|
_get = CreateFunc(pInfo?.GetMethod);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 87fefa9f373e8411596b00238a65f3c3
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,236 @@
|
|||||||
|
using System;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
[assembly: InternalsVisibleTo("Coffee.NanoMonitor.Tests")]
|
||||||
|
|
||||||
|
namespace Coffee.NanoMonitor
|
||||||
|
{
|
||||||
|
internal static class StringBuilderExtensions
|
||||||
|
{
|
||||||
|
public static bool IsEqual(this StringBuilder sb, string other)
|
||||||
|
{
|
||||||
|
if (sb == null || other == null) return false;
|
||||||
|
if (sb.Length != other.Length) return false;
|
||||||
|
|
||||||
|
for (var i = 0; i < sb.Length; i++)
|
||||||
|
{
|
||||||
|
if (sb[i] != other[i]) return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AppendFormatNoAlloc(this StringBuilder sb, string format, double arg0 = 0, double arg1 = 0, double arg2 = 0, double arg3 = 0)
|
||||||
|
{
|
||||||
|
for (var i = 0; i < format.Length; i++)
|
||||||
|
{
|
||||||
|
var c = format[i];
|
||||||
|
|
||||||
|
// Append formatted value
|
||||||
|
if (c == '{')
|
||||||
|
{
|
||||||
|
i = GetFormat(format, i, out var argIndex, out var padding, out var precision, out var alignment);
|
||||||
|
|
||||||
|
switch (argIndex)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
sb.AppendDouble(arg0, padding, precision, alignment);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
sb.AppendDouble(arg1, padding, precision, alignment);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
sb.AppendDouble(arg2, padding, precision, alignment);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
sb.AppendDouble(arg3, padding, precision, alignment);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Append character
|
||||||
|
sb.Append(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void AppendInteger(this StringBuilder sb, double number, int padding, int precision, int alignment)
|
||||||
|
{
|
||||||
|
number = Math.Truncate(number);
|
||||||
|
var sign = number < 0;
|
||||||
|
number = sign ? -number : number;
|
||||||
|
|
||||||
|
var startIndex = sb.Length;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
var n = Math.Truncate(number % 10);
|
||||||
|
number /= 10;
|
||||||
|
|
||||||
|
sb.Append((char) (n + 48));
|
||||||
|
} while (1 <= number || (sb.Length - startIndex) < padding);
|
||||||
|
|
||||||
|
if (sign)
|
||||||
|
{
|
||||||
|
sb.Append('-');
|
||||||
|
}
|
||||||
|
|
||||||
|
var endIndex = sb.Length - 1;
|
||||||
|
|
||||||
|
sb.Reverse(startIndex, endIndex);
|
||||||
|
sb.Alignment(alignment, startIndex, endIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void AppendDouble(this StringBuilder sb, double number, int padding, int precision, int alignment)
|
||||||
|
{
|
||||||
|
var integer = Math.Truncate(number);
|
||||||
|
var startIndex = sb.Length;
|
||||||
|
sb.AppendInteger(integer, padding, precision, 0);
|
||||||
|
|
||||||
|
if (0 < precision)
|
||||||
|
{
|
||||||
|
sb.Append('.');
|
||||||
|
number -= integer;
|
||||||
|
number = Math.Round(number, precision);
|
||||||
|
for (var p = 0; p < precision; p++)
|
||||||
|
{
|
||||||
|
number *= 10;
|
||||||
|
integer = (long) number;
|
||||||
|
sb.Append((char) (integer + 48));
|
||||||
|
number -= integer;
|
||||||
|
number = Math.Round(number, precision);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sb.Alignment(alignment, startIndex, sb.Length - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void Reverse(this StringBuilder sb, int start, int end)
|
||||||
|
{
|
||||||
|
while (start < end)
|
||||||
|
{
|
||||||
|
var c = sb[start];
|
||||||
|
sb[start] = sb[end];
|
||||||
|
sb[end] = c;
|
||||||
|
|
||||||
|
start++;
|
||||||
|
end--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void Alignment(this StringBuilder sb, int alignment, int start, int end)
|
||||||
|
{
|
||||||
|
if (alignment == 0) return;
|
||||||
|
|
||||||
|
var len = end - start + 1;
|
||||||
|
if (0 < alignment && len < alignment)
|
||||||
|
{
|
||||||
|
sb.Append(' ', alignment - len);
|
||||||
|
for (var i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
var c = sb[end - i];
|
||||||
|
sb[end - i] = sb[start + alignment - i - 1];
|
||||||
|
sb[start + alignment - i - 1] = c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (alignment < 0 && len < -alignment)
|
||||||
|
{
|
||||||
|
sb.Append(' ', -alignment - len);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static int GetFormat(string format, int i, out int argIndex, out int padding, out int precision, out int alignment)
|
||||||
|
{
|
||||||
|
argIndex = -1;
|
||||||
|
padding = 0;
|
||||||
|
precision = 0;
|
||||||
|
alignment = 0;
|
||||||
|
|
||||||
|
var alignmentSign = false;
|
||||||
|
var readFlag = 0;
|
||||||
|
|
||||||
|
for (; i < format.Length; i++)
|
||||||
|
{
|
||||||
|
var c = format[i];
|
||||||
|
|
||||||
|
// End format
|
||||||
|
if (c == '}')
|
||||||
|
{
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Start format
|
||||||
|
if (c == '{')
|
||||||
|
{
|
||||||
|
readFlag = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// After '{': Read argument index and format
|
||||||
|
else if (readFlag == 1)
|
||||||
|
{
|
||||||
|
if ('0' <= c && c <= '3')
|
||||||
|
{
|
||||||
|
argIndex = c - 48;
|
||||||
|
}
|
||||||
|
else if (c == ',')
|
||||||
|
{
|
||||||
|
readFlag = 2;
|
||||||
|
}
|
||||||
|
else if (c == ':')
|
||||||
|
{
|
||||||
|
readFlag = 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//After ',': Read alignment value
|
||||||
|
else if (readFlag == 2)
|
||||||
|
{
|
||||||
|
if ('0' <= c && c <= '9')
|
||||||
|
{
|
||||||
|
alignment = alignment * 10 + (alignmentSign ? 48 - c : c - 48);
|
||||||
|
}
|
||||||
|
else if (c == '-')
|
||||||
|
{
|
||||||
|
alignmentSign = true;
|
||||||
|
}
|
||||||
|
else if (c == ':')
|
||||||
|
{
|
||||||
|
readFlag = 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// After ':': Read format for integral
|
||||||
|
else if (readFlag == 3)
|
||||||
|
{
|
||||||
|
if (c == '.')
|
||||||
|
{
|
||||||
|
precision = 0;
|
||||||
|
readFlag = 4;
|
||||||
|
}
|
||||||
|
else if (c == '0')
|
||||||
|
{
|
||||||
|
padding++;
|
||||||
|
}
|
||||||
|
// Legacy mode
|
||||||
|
else if ('1' <= c && c <= '9')
|
||||||
|
{
|
||||||
|
precision = c - 48;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// After '.': Read decimal precision value
|
||||||
|
else if (readFlag == 4)
|
||||||
|
{
|
||||||
|
if (c == '0')
|
||||||
|
{
|
||||||
|
precision++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
argIndex = -1;
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 23b4d6d0f5b8644b0981a065d7e47478
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences:
|
||||||
|
- m_Material: {fileID: 2100000, guid: 4da4639f724144ddead57bffca64e71f, type: 3}
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||