Compare commits

..

5 Commits
3.0.1 ... 3.1.0

Author SHA1 Message Date
semantic-release-bot
b322db3ca9 chore(release): 3.1.0 [skip ci]
# [3.1.0](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.0.1...3.1.0) (2020-10-28)

### Bug Fixes

* compile error in 2018.2 ([82f81ef](82f81efd7e))

### Features

* maskable option to ignore masking ([af5f7e9](af5f7e90b0)), closes [#109](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/109)
2020-10-28 17:05:39 +00:00
mob-sakai
44beab0de8 test: update test workflow 2020-10-29 01:57:17 +09:00
mob-sakai
82f81efd7e fix: compile error in 2018.2 2020-10-29 01:57:17 +09:00
mob-sakai
af5f7e90b0 feat: maskable option to ignore masking
Close #109
2020-10-28 22:19:15 +09:00
mob-sakai
3d8f11ba82 docs: add warning for the obsolete tags and branches 2020-10-28 13:13:11 +09:00
7 changed files with 65 additions and 66 deletions

View File

@@ -1,5 +1,3 @@
# Secrets
# ULF_REPO: Git repository url contains ulf files. https://mob-sakai:{{token}}@github.com/mob-sakai/ulfs.git
name: unity-test name: unity-test
on: on:
@@ -14,29 +12,20 @@ on:
- synchronize - synchronize
jobs: jobs:
release-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: |
npm i --no-save https://gist.github.com/mob-sakai/c90044338361af97a7e8c8a78425bdb3
npx semantic-release -e @mob-sakai/semantic-release-upm --dry-run --branches develop
env:
GITHUB_TOKEN: ${{ github.token }}
unity-test: unity-test:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
unity: unity:
[ [
"2018.3.14f1",
"2018.4.25f1", "2018.4.25f1",
"2019.4.10f1", "2019.1.14f1",
"2019.2.11f1",
"2019.3.15f1",
"2019.4.8f1",
"2020.1.5f1", "2020.1.5f1",
] ]
env:
RUN_UNITY: "xvfb-run --auto-servernum --server-args='-screen 0 640x480x24' /opt/Unity/Editor/Unity -batchmode -nographics -silent-crashes -logFile -projectPath ."
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
@@ -48,41 +37,13 @@ jobs:
- name: Activate Unity Editor - name: Activate Unity Editor
id: activation id: activation
run: | run: |
# Clone ulfs. apt-get update > /dev/null
apt-get update apt-get install software-properties-common -y > /dev/null
apt-get install software-properties-common -y apt-add-repository ppa:git-core/ppa -y > /dev/null
apt-add-repository ppa:git-core/ppa -y apt-get update > /dev/null
apt-get update apt-get install git -y > /dev/null
apt-get install git -y git clone https://gist.github.com/135c940b45ec4e385861c8711777db7f.git .ulfs
git clone --depth 1 ${ULF_REPO} .ulfs chmod 755 .ulfs/activate.sh && .ulfs/activate.sh ${{ matrix.unity }}
# Activate with ulf.
ULF_FILE=.ulfs/Unity_v${UNITY_VERSION}.ulf
echo $ULF_FILE
if [ -e ${ULF_FILE} ]; then
/opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -manualLicenseFile ${ULF_FILE} \
| grep -E 'LICENSE SYSTEM.*\w{32} != \w{32}' && FAILED=true
else
echo "::error:: ulf file '${ULF_FILE}' is not found."
FAILED=true
fi
# Activation failed.
if [ $FAILED ]; then
echo "::error:: the unity activation may have failed. manual activation is required.%0A \
1. download the artifact's .alf file.%0A \
2. Go to https://license.unity3d.com/manual to activate manually.%0A \
3. Generate a .ulf file from the .alf file and download it.%0A \
4. Rename .ulf to 'Unity_v${UNITY_VERSION}.ulf'.%0A \
5. Add file to ulfs repository.%0A \
5. Re-run the jobs."
/opt/Unity/Editor/Unity -quit -batchmode -nographics -logFile -createManualActivationFile
exit 1
fi
env:
ULF_REPO: ${{ secrets.ULF_REPO }}
UNITY_VERSION: ${{ matrix.unity }}
# (On failed activation) Upload unity activation file # (On failed activation) Upload unity activation file
- name: Upload unity activation file - name: Upload unity activation file
@@ -92,40 +53,46 @@ jobs:
name: Unity_v${{ matrix.unity }}.alf name: Unity_v${{ matrix.unity }}.alf
path: ./*.alf path: ./*.alf
# Setup testspace
- uses: testspace-com/setup-testspace@v1
with:
domain: ${{ github.repository_owner }}
# Checkout sandbox project # Checkout sandbox project
- uses: actions/checkout@v2 - uses: actions/checkout@v2
with: with:
ref: "sandbox" ref: "sandbox"
submodules: "true" submodules: "true"
fetch-depth: "1"
# Update package submodule # Update package submodule
- name: "Update package submodule" - name: "Update package submodule"
working-directory: Packages/dev working-directory: Packages/dev
run: git checkout ${{ github.head_ref }} run: git checkout ${{ github.head_ref }}
# Install codecoverage package
- name: "Install codecoverage package"
if: always() && steps.activation.conclusion == 'success'
run: |
[ -n "`echo ${{ matrix.unity }} | grep -e '\(2017.\|2018.\|2019.1.\|2019.2.\)'`" ] && exit 0
npm i -g openupm-cli
openupm add com.unity.testtools.codecoverage
# Run playmode tests # Run playmode tests
- name: "Run playmode tests" - name: "Run playmode tests"
if: always() && steps.activation.conclusion == 'success' if: always() && steps.activation.conclusion == 'success'
run: | run: |
# Install codecoverage xvfb-run --auto-servernum --server-args='-screen 0 640x480x24' \
if [ -z "`echo ${{ matrix.unity }} | grep 2018.`" ]; then /opt/Unity/Editor/Unity -batchmode -nographics -silent-crashes -logFile -projectPath . \
npm i -g openupm-cli -runTests -testPlatform playmode -enableCodeCoverage
openupm add com.unity.testtools.codecoverage
fi
$RUN_UNITY -runTests -testPlatform playmode -enableCodeCoverage || exit 0
# Run editmode tests # Run editmode tests
- name: "Run editmode tests" - name: "Run editmode tests"
if: always() && steps.activation.conclusion == 'success' if: always() && steps.activation.conclusion == 'success'
run: | run: |
$RUN_UNITY -runTests -testPlatform editmode -enableCodeCoverage || exit 0 xvfb-run --auto-servernum --server-args='-screen 0 640x480x24' \
/opt/Unity/Editor/Unity -batchmode -nographics -silent-crashes -logFile -projectPath . \
-runTests -testPlatform editmode -enableCodeCoverage
# Setup testspace
- uses: testspace-com/setup-testspace@v1
if: always() && steps.activation.conclusion == 'success'
with:
domain: ${{ github.repository_owner }}
# Push test results # Push test results
- name: Push test results - name: Push test results

View File

@@ -1,3 +1,15 @@
# [3.1.0](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.0.1...3.1.0) (2020-10-28)
### Bug Fixes
* compile error in 2018.2 ([82f81ef](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/82f81efd7e4ea06465e24f44f96d9726a1a60cc8))
### Features
* maskable option to ignore masking ([af5f7e9](https://github.com/mob-sakai/ParticleEffectForUGUI/commit/af5f7e90b0570d5c7fcf045fd6b81036a060e493)), closes [#109](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/109)
## [3.0.1](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.0.0...3.0.1) (2020-10-28) ## [3.0.1](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/3.0.0...3.0.1) (2020-10-28)

View File

@@ -1,6 +1,8 @@
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.

View File

@@ -25,6 +25,7 @@ namespace Coffee.UIExtensions
private static readonly List<UIParticle> s_TempParents = new List<UIParticle>(); private static readonly List<UIParticle> s_TempParents = new List<UIParticle>();
private static readonly List<UIParticle> s_TempChildren = new List<UIParticle>(); private static readonly List<UIParticle> s_TempChildren = new List<UIParticle>();
private SerializedProperty _spMaskable;
private SerializedProperty _spScale; private SerializedProperty _spScale;
private SerializedProperty _spIgnoreCanvasScaler; private SerializedProperty _spIgnoreCanvasScaler;
private SerializedProperty _spAnimatableProperties; private SerializedProperty _spAnimatableProperties;
@@ -52,6 +53,7 @@ namespace Coffee.UIExtensions
protected override void OnEnable() protected override void OnEnable()
{ {
base.OnEnable(); base.OnEnable();
_spMaskable = serializedObject.FindProperty("m_Maskable");
_spScale = serializedObject.FindProperty("m_Scale3D"); _spScale = serializedObject.FindProperty("m_Scale3D");
_spIgnoreCanvasScaler = serializedObject.FindProperty("m_IgnoreCanvasScaler"); _spIgnoreCanvasScaler = serializedObject.FindProperty("m_IgnoreCanvasScaler");
_spAnimatableProperties = serializedObject.FindProperty("m_AnimatableProperties"); _spAnimatableProperties = serializedObject.FindProperty("m_AnimatableProperties");
@@ -127,6 +129,9 @@ namespace Coffee.UIExtensions
serializedObject.Update(); serializedObject.Update();
// Maskable
EditorGUILayout.PropertyField(_spMaskable);
// IgnoreCanvasScaler // IgnoreCanvasScaler
using (var ccs = new EditorGUI.ChangeCheckScope()) using (var ccs = new EditorGUI.ChangeCheckScope())
{ {

View File

@@ -38,6 +38,11 @@ namespace Coffee.UIExtensions
[Tooltip("Particles")] [SerializeField] [Tooltip("Particles")] [SerializeField]
private List<ParticleSystem> m_Particles = new List<ParticleSystem>(); private List<ParticleSystem> m_Particles = new List<ParticleSystem>();
#if !UNITY_2019_4_OR_NEWER
[SerializeField]
private bool m_Maskable = true;
#endif
private bool _shouldBeRemoved; private bool _shouldBeRemoved;
private DrivenRectTransformTracker _tracker; private DrivenRectTransformTracker _tracker;
private Mesh _bakedMesh; private Mesh _bakedMesh;
@@ -350,6 +355,9 @@ namespace Coffee.UIExtensions
/// </summary> /// </summary>
protected override void OnEnable() protected override void OnEnable()
{ {
#if !UNITY_2019_4_OR_NEWER
maskable = m_Maskable;
#endif
_cachedPosition = transform.localPosition; _cachedPosition = transform.localPosition;
activeMeshIndices.Clear(); activeMeshIndices.Clear();
@@ -440,6 +448,9 @@ namespace Coffee.UIExtensions
SetVerticesDirty(); SetVerticesDirty();
m_ShouldRecalculateStencil = true; m_ShouldRecalculateStencil = true;
RecalculateClipping(); RecalculateClipping();
#if !UNITY_2019_4_OR_NEWER
maskable = m_Maskable;
#endif
} }
void ISerializationCallbackReceiver.OnBeforeSerialize() void ISerializationCallbackReceiver.OnBeforeSerialize()

View File

@@ -211,9 +211,11 @@ namespace Coffee.UIExtensions
Profiler.EndSample(); Profiler.EndSample();
} }
#if UNITY_2018_3_OR_NEWER
// #102: Do not bake particle system to mesh when the alpha is zero. // #102: Do not bake particle system to mesh when the alpha is zero.
if (Mathf.Approximately(particle.canvasRenderer.GetInheritedAlpha(), 0)) if (Mathf.Approximately(particle.canvasRenderer.GetInheritedAlpha(), 0))
continue; continue;
#endif
// Bake main particles. // Bake main particles.
var r = currentPs.GetComponent<ParticleSystemRenderer>(); var r = currentPs.GetComponent<ParticleSystemRenderer>();

View File

@@ -2,7 +2,7 @@
"name": "com.coffee.ui-particle", "name": "com.coffee.ui-particle",
"displayName": "UI Particle", "displayName": "UI Particle",
"description": "This plugin provide a component to render particle effect for uGUI.\nThe particle rendering is maskable and sortable, without Camera, RenderTexture or Canvas.", "description": "This plugin provide a component to render particle effect for uGUI.\nThe particle rendering is maskable and sortable, without Camera, RenderTexture or Canvas.",
"version": "3.0.1", "version": "3.1.0",
"unity": "2018.2", "unity": "2018.2",
"license": "MIT", "license": "MIT",
"repository": { "repository": {