diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..88829ed --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,27 @@ +name: release + +on: + push: + branches: + - preview + - master + - v*.x + tags-ignore: + - "**" + +jobs: + release: + runs-on: ubuntu-latest + if: "! contains(github.event.head_commit.message, '[skip ci]') && ! contains(github.event.head_commit.message, '[ci skip]')" + 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 + env: + GITHUB_TOKEN: ${{ github.token }} + + - run: cat package.json + + - run: ls diff --git a/.github/workflows/unity-test.yml b/.github/workflows/unity-test.yml new file mode 100644 index 0000000..2c06ceb --- /dev/null +++ b/.github/workflows/unity-test.yml @@ -0,0 +1,137 @@ +# Secrets +# ULF_REPO: Git repository url contains ulf files. https://mob-sakai:{{token}}@github.com/mob-sakai/ulfs.git +name: unity-test + +on: + push: + branches: + - develop + tags: + - "!*" + pull_request: + types: + - opened + - synchronize + +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 --debug --branches develop + env: + GITHUB_TOKEN: ${{ github.token }} + + - run: cat package.json + + - run: ls + + unity-test: + strategy: + fail-fast: false + matrix: + unity: + [ + "2018.4.25f1", + "2019.4.10f1", + "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 + container: + # Use Unity image from https://hub.docker.com/r/gableroux/unity3d/tags + image: gableroux/unity3d:${{ matrix.unity }} + + steps: + # Activate Unity Editor + - name: Activate Unity Editor + id: activation + run: | + # Clone ulfs. + apt-get update + apt-get install software-properties-common -y + apt-add-repository ppa:git-core/ppa -y + apt-get update + apt-get install git -y + git clone --depth 1 ${ULF_REPO} .ulfs + + # 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 + - name: Upload unity activation file + uses: actions/upload-artifact@v2 + if: failure() + with: + name: Unity_v${{ matrix.unity }}.alf + path: ./*.alf + + # Setup testspace + - uses: testspace-com/setup-testspace@v1 + with: + domain: ${{ github.repository_owner }} + + # Checkout sandbox project + - uses: actions/checkout@v2 + with: + ref: "sandbox" + submodules: "true" + fetch-depth: "1" + + # Update package submodule + - name: "Update package submodule" + working-directory: Packages/dev + run: git checkout ${{ github.head_ref }} + + # Run playmode tests + - name: "Run playmode tests" + if: always() && steps.activation.conclusion == 'success' + run: | + # Install codecoverage + if [ -z "`echo ${{ matrix.unity }} | grep 2018.`" ]; then + npm i -g openupm-cli + openupm add com.unity.testtools.codecoverage + fi + + $RUN_UNITY -runTests -testPlatform playmode -enableCodeCoverage || exit 0 + + # Run editmode tests + - name: "Run editmode tests" + if: always() && steps.activation.conclusion == 'success' + run: | + $RUN_UNITY -runTests -testPlatform editmode -enableCodeCoverage || exit 0 + + # Push test results + - name: Push test results + if: always() && steps.activation.conclusion == 'success' + run: testspace "[${{ matrix.unity }}]TestResults-*.xml" "[Code Coverage]CodeCoverage/**/TestCoverageResults_*.xml" diff --git a/README.md b/README.md index e659cdf..f7b31a5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -ParticleEffectForUGUI +Particle Effect For UGUI (UI Particle) === This plugin provide a component to render particle effect for uGUI in Unity 2018.2 or later. @@ -6,11 +6,12 @@ The particle rendering is maskable and sortable, without Camera, RenderTexture o [![](https://img.shields.io/npm/v/com.coffee.ui-particle?label=openupm®istry_uri=https://package.openupm.com)](https://openupm.com/packages/com.coffee.ui-particle/) [![](https://img.shields.io/github/v/release/mob-sakai/ParticleEffectForUGUI?include_prereleases)](https://github.com/mob-sakai/ParticleEffectForUGUI/releases) -[![](https://img.shields.io/github/release-date/mob-sakai/ParticleEffectForUGUI.svg)](https://github.com/mob-sakai/ParticleEffectForUGUI/releases) -![](https://img.shields.io/badge/unity-2018.2%20or%20later-green.svg) -[![](https://img.shields.io/github/license/mob-sakai/ParticleEffectForUGUI.svg)](https://github.com/mob-sakai/ParticleEffectForUGUI/blob/upm/LICENSE.txt) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-orange.svg)](http://makeapullrequest.com) -[![](https://img.shields.io/twitter/follow/mob_sakai.svg?label=Follow&style=social)](https://twitter.com/intent/follow?screen_name=mob_sakai) +[![](https://img.shields.io/github/release-date/mob-sakai/ParticleEffectForUGUI.svg)](https://github.com/mob-sakai/ParticleEffectForUGUI/releases) [![](https://img.shields.io/github/license/mob-sakai/ParticleEffectForUGUI.svg)](https://github.com/mob-sakai/ParticleEffectForUGUI/blob/master/LICENSE.txt) +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-orange.svg)](http://makeapullrequest.com) +![](https://img.shields.io/badge/Unity%202018.2+-supported-blue.svg) +![](https://img.shields.io/badge/Unity%202019.x-supported-blue.svg) +![](https://img.shields.io/badge/Unity%202020.x-supported-blue.svg) +![](https://img.shields.io/badge/Universal%20Rendering%20Pipeline-supported-blue.svg) << [Description](#Description) | [Demo](#demo) | [Installation](#installation) | [Usage](#usage) | [Development Note](#development-note) | [Change log](https://github.com/mob-sakai/ParticleEffectForUGUI/blob/upm/CHANGELOG.md) >> @@ -48,7 +49,7 @@ Compares this "Baking mesh" approach with the conventional approach: * Change alpha with CanvasGroup * No heavy allocation every frame * Support overlay, camera space and world space -* Support changing material property with AnimationClip (AnimatableProperty) +* Support changing material property with AnimationClip (AnimatableProperty) ![](https://user-images.githubusercontent.com/12690315/53286323-2d94a980-37b0-11e9-8afb-c4a207805ff2.gif) @@ -75,9 +76,12 @@ Compares this "Baking mesh" approach with the conventional approach: ### Requirement -* Unity 2018.2 or later +![](https://img.shields.io/badge/Unity%202018.2+-supported-blue.svg) +![](https://img.shields.io/badge/Unity%202019.x-supported-blue.svg) +![](https://img.shields.io/badge/Unity%202020.x-supported-blue.svg) +![](https://img.shields.io/badge/Universal%20Rendering%20Pipeline-supported-blue.svg) -### Using OpenUPM +### Using OpenUPM (Recomended) This package is available on [OpenUPM](https://openupm.com). You can install it via [openupm-cli](https://github.com/openupm/openupm-cli). @@ -87,15 +91,12 @@ openupm add com.coffee.ui-particle ### Using Git -Find the manifest.json file in the Packages folder of your project and edit it to look like this: -```js -{ - "dependencies": { - "com.coffee.ui-particle": "https://github.com/mob-sakai/ParticleEffectForUGUI.git", - ... - }, -} -``` +Find the manifest.json file in the Packages folder of your project and add a line to `dependencies` field. + +* Major version: +`"com.coffee.ui-particle": "https://github.com/mob-sakai/ParticleEffectForUGUI.git"` +* Preview version: +`"com.coffee.ui-particle": "https://github.com/mob-sakai/ParticleEffectForUGUI.git#preview"` To update the package, change suffix `#{version}` to the target version. @@ -132,6 +133,11 @@ Unity 2018.2 supports embedded packages. 2. The demo project is imported into `Assets/Samples/UI Particle/{version}/Demo` 3. Open `UIParticle_Demo` scene and play it +### About `Cartoon FX & War Fx Demo` + +* It requires free assets ([Cartoon FX Free][CFX] & [War FX][WFX]) + * by [Jean Moreno (JMO)][JMO] +



@@ -251,8 +257,7 @@ With your support, I can spend more time on development. :) ## Author -[mob-sakai](https://github.com/mob-sakai) -[![](https://img.shields.io/twitter/follow/mob_sakai.svg?label=Follow&style=social)](https://twitter.com/intent/follow?screen_name=mob_sakai) +* ![](https://user-images.githubusercontent.com/12690315/96986908-434a0b80-155d-11eb-8275-85138ab90afa.png) [mob-sakai](https://github.com/mob-sakai) [![](https://img.shields.io/twitter/follow/mob_sakai.svg?label=Follow&style=social)](https://twitter.com/intent/follow?screen_name=mob_sakai) ![GitHub followers](https://img.shields.io/github/followers/mob-sakai?style=social)