Compare commits

...

5 Commits
2.0.0 ... 2.1.1

Author SHA1 Message Date
mob-sakai
b73a8adb4d update documents for v2.1.1 2019-02-15 22:21:57 +09:00
mob-sakai
9749e3e01c fix #39; UIParticle.Scale - Rendering Order Issue 2019-02-15 21:50:12 +09:00
mob-sakai
8c674cba2e update documents for v2.1.0 2019-02-07 10:44:25 +09:00
mob-sakai
87bdefce2b fix #37; When moving the transform in world simulation mode, particles don't behave as expected 2019-02-06 20:51:35 +09:00
mob-sakai
59fc95f1ea Update demo 2019-01-17 22:10:07 +09:00
5 changed files with 90 additions and 47 deletions

View File

@@ -1,20 +1,39 @@
# Changelog # Changelog
## [2.0.0](https://github.com/mob-sakai/ParticleEffectForUGUI/tree/2.0.0) (2019-01-17) ## [v2.1.1](https://github.com/mob-sakai/ParticleEffectForUGUI/tree/v2.1.1) (2019-02-15)
[Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/v1.3.3...2.0.0) [Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/v2.1.0...v2.1.1)
**Install UIParticle with Unity Package Manager!** **Fixed bugs:**
Find the manifest.json file in the Packages folder of your project and edit it to look like this: - UIParticle.Scale - Rendering Order Issue [\#39](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/39)
```js
{ ## [v2.1.0](https://github.com/mob-sakai/ParticleEffectForUGUI/tree/v2.1.0) (2019-02-07)
"dependencies": {
"com.coffee.ui-particle": "https://github.com/mob-sakai/ParticleEffectForUGUI.git#2.0.0", [Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/v2.0.0...v2.1.0)
...
}, World simulation bug is fixed.
} ![](https://user-images.githubusercontent.com/12690315/52386223-71a56000-2ac8-11e9-9cdb-93175d24febe.gif)
```
**Fixed bugs:**
- When moving the transform in world simulation mode, particles don't behave as expected [\#37](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/37)
## [v2.0.0](https://github.com/mob-sakai/ParticleEffectForUGUI/tree/v2.0.0) (2019-01-17)
[Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/v1.3.3...v2.0.0)
**Install UIParticle with Unity Package Manager!**
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#2.0.0",
...
},
}
```
To update the package, change `#2.0.0` to the target version. To update the package, change `#2.0.0` to the target version.
**Implemented enhancements:** **Implemented enhancements:**
@@ -55,7 +74,7 @@ To update the package, change `#2.0.0` to the target version.
[Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/v1.2.1...v1.3.0) [Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/v1.2.1...v1.3.0)
With Gizmo you can control the scaled Shape. With Gizmo you can control the scaled Shape.
![](https://user-images.githubusercontent.com/12690315/50343861-f31e4e80-056b-11e9-8f60-8bd0a8ff7adb.gif) ![](https://user-images.githubusercontent.com/12690315/50343861-f31e4e80-056b-11e9-8f60-8bd0a8ff7adb.gif)
**Fixed bugs:** **Fixed bugs:**
@@ -75,18 +94,18 @@ With Gizmo you can control the scaled Shape.
[Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/v1.1.0...v1.2.0) [Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/v1.1.0...v1.2.0)
New scaling system solves the particle effect scaling problem in most cases. New scaling system solves the particle effect scaling problem in most cases.
* All ParticleSystem.ScalingModes are supported * All ParticleSystem.ScalingModes are supported
* All Canvas.RenderModes are supported * All Canvas.RenderModes are supported
* They look almost the same in all modes * They look almost the same in all modes
New scaling system scales particle effect well even if you change the following parameters: New scaling system scales particle effect well even if you change the following parameters:
* Camera.FieldOfView * Camera.FieldOfView
* CanvasScaler.MatchWidthOrHeight * CanvasScaler.MatchWidthOrHeight
* Canvas.PlaneDistance * Canvas.PlaneDistance
![](https://user-images.githubusercontent.com/12690315/49866926-6c22f500-fe4c-11e8-8393-d5a546e9e2d3.gif) ![](https://user-images.githubusercontent.com/12690315/49866926-6c22f500-fe4c-11e8-8393-d5a546e9e2d3.gif)
**NOTE: If upgrading from v1.1.0, readjust the UIParticle.Scale property.** **NOTE: If upgrading from v1.1.0, readjust the UIParticle.Scale property.**
**Implemented enhancements:** **Implemented enhancements:**
@@ -103,11 +122,11 @@ New scaling system scales particle effect well even if you change the following
[Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/v1.0.0...v1.1.0) [Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/v1.0.0...v1.1.0)
Easily to use, easily to set up. Easily to use, easily to set up.
* Adjust the Scale property to change the size of the effect. * Adjust the Scale property to change the size of the effect.
![](https://user-images.githubusercontent.com/12690315/49148937-19c1de80-f34c-11e8-87fc-138192777540.gif) ![](https://user-images.githubusercontent.com/12690315/49148937-19c1de80-f34c-11e8-87fc-138192777540.gif)
* If your effect consists of multiple ParticleSystems, you can quickly set up UIParticles by clicking "Fix". * If your effect consists of multiple ParticleSystems, you can quickly set up UIParticles by clicking "Fix".
![](https://user-images.githubusercontent.com/12690315/49148942-1c243880-f34c-11e8-9cf5-d871d65c4dbe.png) ![](https://user-images.githubusercontent.com/12690315/49148942-1c243880-f34c-11e8-9cf5-d871d65c4dbe.png)
**Implemented enhancements:** **Implemented enhancements:**
@@ -123,9 +142,9 @@ Easily to use, easily to set up.
[Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/v0.1.0...v1.0.0) [Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/v0.1.0...v1.0.0)
Let's use particle for your UI! Let's use particle for your UI!
UIParticle is use easy. UIParticle is use easy.
The particle rendering is maskable and sortable, without Camera, RenderTexture or Canvas. The particle rendering is maskable and sortable, without Camera, RenderTexture or Canvas.
![](https://user-images.githubusercontent.com/12690315/41771577-8da4b968-7650-11e8-9524-cd162c422d9d.gif) ![](https://user-images.githubusercontent.com/12690315/41771577-8da4b968-7650-11e8-9524-cd162c422d9d.gif)
**Implemented enhancements:** **Implemented enhancements:**
@@ -137,9 +156,9 @@ The particle rendering is maskable and sortable, without Camera, RenderTexture o
[Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/6b89c14a5144e290e55d041bc0ad03756a113ae0...v0.1.0) [Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/6b89c14a5144e290e55d041bc0ad03756a113ae0...v0.1.0)
![](https://user-images.githubusercontent.com/12690315/41771577-8da4b968-7650-11e8-9524-cd162c422d9d.gif) ![](https://user-images.githubusercontent.com/12690315/41771577-8da4b968-7650-11e8-9524-cd162c422d9d.gif)
This plugin uses new APIs `MeshBake/MashTrailBake` (added with Unity 2018.2) to render particles by CanvasRenderer. This plugin uses new APIs `MeshBake/MashTrailBake` (added with Unity 2018.2) to render particles by CanvasRenderer.
You can mask and sort particles for uGUI without Camera, RenderTexture, Canvas. You can mask and sort particles for uGUI without Camera, RenderTexture, Canvas.
**Implemented enhancements:** **Implemented enhancements:**
@@ -148,4 +167,4 @@ You can mask and sort particles for uGUI without Camera, RenderTexture, Canvas.
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*

View File

@@ -74,12 +74,12 @@ Find the manifest.json file in the Packages folder of your project and edit it t
```js ```js
{ {
"dependencies": { "dependencies": {
"com.coffee.ui-particle": "https://github.com/mob-sakai/ParticleEffectForUGUI.git#2.0.0", "com.coffee.ui-particle": "https://github.com/mob-sakai/ParticleEffectForUGUI.git#2.1.0",
... ...
}, },
} }
``` ```
To update the package, change `#2.0.0` to the target version. To update the package, change `#{version}` to the target version.
#### Using .unitypackage file (for Unity 2018.2+) #### Using .unitypackage file (for Unity 2018.2+)

View File

@@ -236,6 +236,8 @@ namespace Coffee.UIExtensions
UIParticle _parent; UIParticle _parent;
List<UIParticle> _children = new List<UIParticle> (); List<UIParticle> _children = new List<UIParticle> ();
Matrix4x4 scaleaMatrix = default (Matrix4x4); Matrix4x4 scaleaMatrix = default (Matrix4x4);
Vector3 _worldPos;
static ParticleSystem.Particle [] s_Particles = new ParticleSystem.Particle [4096];
/// <summary> /// <summary>
/// Update meshes. /// Update meshes.
@@ -264,7 +266,7 @@ namespace Coffee.UIExtensions
if (m_ParticleSystem && canvas) if (m_ParticleSystem && canvas)
{ {
if (canvas.renderMode != RenderMode.ScreenSpaceOverlay) // I do not know why, but it worked fine when setting `transform.localPosition.z` to `0.01`. (#34, #39)
{ {
Vector3 pos = rectTransform.localPosition; Vector3 pos = rectTransform.localPosition;
if (Mathf.Abs (pos.z) < 0.01f) if (Mathf.Abs (pos.z) < 0.01f)
@@ -284,21 +286,43 @@ namespace Coffee.UIExtensions
Profiler.BeginSample ("Make Matrix"); Profiler.BeginSample ("Make Matrix");
scaleaMatrix = m_ParticleSystem.main.scalingMode == ParticleSystemScalingMode.Hierarchy scaleaMatrix = m_ParticleSystem.main.scalingMode == ParticleSystemScalingMode.Hierarchy
? Matrix4x4.Scale (scale * Vector3.one) ? Matrix4x4.Scale (scale * Vector3.one)
: Matrix4x4.Scale (scale * rootCanvas.transform.localScale); : Matrix4x4.Scale (scale * rootCanvas.transform.localScale);
Matrix4x4 matrix = default (Matrix4x4); Matrix4x4 matrix = default (Matrix4x4);
switch (m_ParticleSystem.main.simulationSpace) switch (m_ParticleSystem.main.simulationSpace)
{ {
case ParticleSystemSimulationSpace.Local: case ParticleSystemSimulationSpace.Local:
matrix = matrix =
scaleaMatrix scaleaMatrix
* Matrix4x4.Rotate (m_ParticleSystem.transform.rotation).inverse * Matrix4x4.Rotate (rectTransform.rotation).inverse
* Matrix4x4.Scale (m_ParticleSystem.transform.lossyScale).inverse; * Matrix4x4.Scale (rectTransform.lossyScale).inverse;
break; break;
case ParticleSystemSimulationSpace.World: case ParticleSystemSimulationSpace.World:
matrix = matrix =
scaleaMatrix scaleaMatrix
* m_ParticleSystem.transform.worldToLocalMatrix; * rectTransform.worldToLocalMatrix;
Vector3 newPos = rectTransform.position;
Vector3 delta = (newPos - _worldPos);
_worldPos = newPos;
if (canvas.renderMode != RenderMode.WorldSpace && !Mathf.Approximately (scale, 0) && 0 < delta.sqrMagnitude)
{
delta *= (1 - 1 / scale);
int count = m_ParticleSystem.particleCount;
if (s_Particles.Length < count)
{
s_Particles = new ParticleSystem.Particle [s_Particles.Length * 2];
}
m_ParticleSystem.GetParticles (s_Particles);
for (int i = 0; i < count; i++)
{
var p = s_Particles [i];
p.position = p.position + delta;
s_Particles [i] = p;
}
m_ParticleSystem.SetParticles (s_Particles, count);
}
break; break;
case ParticleSystemSimulationSpace.Custom: case ParticleSystemSimulationSpace.Custom:
break; break;

Binary file not shown.

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": "2.0.0", "version": "2.1.1",
"unity": "2018.2", "unity": "2018.2",
"license": "MIT", "license": "MIT",
"repository": { "repository": {