diff --git a/Assets/Coffee/UIExtensions/UIParticle/Demo/Particle System (Spread).prefab b/Assets/Coffee/UIExtensions/UIParticle/Demo/Particle System (Spread).prefab
index a3e6842..99c3264 100644
--- a/Assets/Coffee/UIExtensions/UIParticle/Demo/Particle System (Spread).prefab
+++ b/Assets/Coffee/UIExtensions/UIParticle/Demo/Particle System (Spread).prefab
@@ -240,8 +240,8 @@ ParticleSystem:
startSize:
serializedVersion: 2
minMaxState: 3
- scalar: 0.3
- minScalar: 0.05
+ scalar: 0.5
+ minScalar: 0.2
maxCurve:
serializedVersion: 2
m_Curve:
@@ -1098,8 +1098,8 @@ ParticleSystem:
m_NumColorKeys: 2
m_NumAlphaKeys: 2
UVModule:
- enabled: 1
- mode: 0
+ enabled: 0
+ mode: 1
frameOverTime:
serializedVersion: 2
minMaxState: 1
@@ -1216,7 +1216,7 @@ ParticleSystem:
flipV: 0
randomRow: 1
sprites:
- - sprite: {fileID: 0}
+ - sprite: {fileID: 21300000, guid: 925f66fdcc9764b579413b7408c718f2, type: 3}
VelocityModule:
enabled: 0
x:
diff --git a/Assets/Coffee/UIExtensions/UIParticle/Demo/UIParticle_Demo.cs b/Assets/Coffee/UIExtensions/UIParticle/Demo/UIParticle_Demo.cs
index c3fb699..c153d0c 100644
--- a/Assets/Coffee/UIExtensions/UIParticle/Demo/UIParticle_Demo.cs
+++ b/Assets/Coffee/UIExtensions/UIParticle/Demo/UIParticle_Demo.cs
@@ -1,12 +1,43 @@
using UnityEngine;
+using UnityEngine.UI;
namespace Coffee.UIExtensions.Demo
{
public class UIParticle_Demo : MonoBehaviour
{
+ [SerializeField] Sprite m_Sprite;
+ [SerializeField] ParticleSystem[] m_ParticleSystems;
+ [SerializeField] Mask[] m_Masks;
+
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 m_Masks)
+ {
+ m.enabled = enabled;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/Assets/Coffee/UIExtensions/UIParticle/Demo/UIParticle_Demo.unity b/Assets/Coffee/UIExtensions/UIParticle/Demo/UIParticle_Demo.unity
index 9b9e240..e396e07 100644
--- a/Assets/Coffee/UIExtensions/UIParticle/Demo/UIParticle_Demo.unity
+++ b/Assets/Coffee/UIExtensions/UIParticle/Demo/UIParticle_Demo.unity
@@ -220,6 +220,11 @@ RectTransform:
m_AnchoredPosition: {x: 305, y: -93.333336}
m_SizeDelta: {x: 190, y: 186.66667}
m_Pivot: {x: 0.5, y: 0.5}
+--- !u!198 &40867143 stripped
+ParticleSystem:
+ m_CorrespondingSourceObject: {fileID: 198474937898253256, guid: 77533a9d6813e4163a176c4206b0aba2,
+ type: 2}
+ m_PrefabInternal: {fileID: 356871726}
--- !u!1 &68831704
GameObject:
m_ObjectHideFlags: 0
@@ -314,6 +319,76 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &141837617
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 141837618}
+ - component: {fileID: 141837620}
+ - component: {fileID: 141837619}
+ m_Layer: 5
+ m_Name: Background
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &141837618
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 141837617}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1650678472}
+ m_Father: {fileID: 919687610}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0.5}
+ m_AnchorMax: {x: 0, y: 0.5}
+ m_AnchoredPosition: {x: 63.7, y: 0}
+ m_SizeDelta: {x: 20, y: 20}
+ m_Pivot: {x: 0, y: 0.5}
+--- !u!114 &141837619
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 141837617}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ 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_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+--- !u!222 &141837620
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 141837617}
+ m_CullTransparentMesh: 0
--- !u!1 &147269786
GameObject:
m_ObjectHideFlags: 0
@@ -911,6 +986,11 @@ Canvas:
m_SortingLayerID: 0
m_SortingOrder: 3
m_TargetDisplay: 0
+--- !u!198 &453963074 stripped
+ParticleSystem:
+ m_CorrespondingSourceObject: {fileID: 198474937898253256, guid: 77533a9d6813e4163a176c4206b0aba2,
+ type: 2}
+ m_PrefabInternal: {fileID: 1135460004}
--- !u!1 &473819141
GameObject:
m_ObjectHideFlags: 0
@@ -922,7 +1002,7 @@ GameObject:
- component: {fileID: 473819144}
- component: {fileID: 473819143}
m_Layer: 5
- m_Name: Toggle
+ m_Name: Toggle (Mask)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -1009,52 +1089,8 @@ MonoBehaviour:
onValueChanged:
m_PersistentCalls:
m_Calls:
- - m_Target: {fileID: 1990444707}
- m_MethodName: set_enabled
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
- - m_Target: {fileID: 1796369711}
- m_MethodName: set_enabled
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
- - m_Target: {fileID: 829344119}
- m_MethodName: set_enabled
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
- - m_Target: {fileID: 203308589}
- m_MethodName: set_enabled
- m_Mode: 0
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
- - m_Target: {fileID: 1916732546}
- m_MethodName: set_enabled
+ - m_Target: {fileID: 993972853}
+ m_MethodName: EnableMask
m_Mode: 0
m_Arguments:
m_ObjectArgument: {fileID: 0}
@@ -1078,7 +1114,7 @@ GameObject:
- component: {fileID: 475799740}
- component: {fileID: 475799739}
m_Layer: 5
- m_Name: Slider
+ m_Name: Slider (Time scale)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -1413,6 +1449,11 @@ CanvasRenderer:
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 495893252}
m_CullTransparentMesh: 0
+--- !u!198 &495893256 stripped
+ParticleSystem:
+ m_CorrespondingSourceObject: {fileID: 198474937898253256, guid: 77533a9d6813e4163a176c4206b0aba2,
+ type: 2}
+ m_PrefabInternal: {fileID: 495893250}
--- !u!1 &517084413
GameObject:
m_ObjectHideFlags: 0
@@ -1777,6 +1818,11 @@ CanvasRenderer:
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 577827897}
m_CullTransparentMesh: 0
+--- !u!198 &683882518 stripped
+ParticleSystem:
+ m_CorrespondingSourceObject: {fileID: 198474937898253256, guid: 77533a9d6813e4163a176c4206b0aba2,
+ type: 2}
+ m_PrefabInternal: {fileID: 1995702774}
--- !u!1 &738945209
GameObject:
m_ObjectHideFlags: 0
@@ -2019,6 +2065,257 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 1
+--- !u!1 &873189076
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 873189077}
+ - component: {fileID: 873189079}
+ - component: {fileID: 873189078}
+ m_Layer: 5
+ m_Name: Background
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &873189077
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 873189076}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 926331316}
+ m_Father: {fileID: 1626066441}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0.5}
+ m_AnchorMax: {x: 0, y: 0.5}
+ m_AnchoredPosition: {x: 63.7, y: 0}
+ m_SizeDelta: {x: 20, y: 20}
+ m_Pivot: {x: 0, y: 0.5}
+--- !u!114 &873189078
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 873189076}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ 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_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+--- !u!222 &873189079
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 873189076}
+ m_CullTransparentMesh: 0
+--- !u!1 &919687609
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 919687610}
+ - component: {fileID: 919687612}
+ - component: {fileID: 919687611}
+ m_Layer: 5
+ m_Name: Toggle (Ribbon)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &919687610
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 919687609}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.9998866, y: 0.9998866, z: 0.9998866}
+ m_Children:
+ - {fileID: 141837618}
+ - {fileID: 1624949831}
+ m_Father: {fileID: 1810222380}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 1}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 107.09, y: -74}
+ m_SizeDelta: {x: 194.81, y: 21.3}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &919687611
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 919687609}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreLayout: 1
+ m_MinWidth: -1
+ m_MinHeight: -1
+ m_PreferredWidth: -1
+ m_PreferredHeight: -1
+ m_FlexibleWidth: -1
+ m_FlexibleHeight: -1
+ m_LayoutPriority: 1
+--- !u!114 &919687612
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 919687609}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 2109663825, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 141837619}
+ toggleTransition: 1
+ graphic: {fileID: 1650678473}
+ m_Group: {fileID: 0}
+ onValueChanged:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 993972853}
+ m_MethodName: EnableTrailRibbon
+ m_Mode: 0
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
+ m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ m_IsOn: 0
+--- !u!1 &926331315
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 926331316}
+ - component: {fileID: 926331318}
+ - component: {fileID: 926331317}
+ m_Layer: 5
+ m_Name: Checkmark
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &926331316
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 926331315}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 873189077}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 20, y: 20}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &926331317
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 926331315}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ 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_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+--- !u!222 &926331318
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 926331315}
+ m_CullTransparentMesh: 0
--- !u!1 &992843453
GameObject:
m_ObjectHideFlags: 0
@@ -2242,6 +2539,19 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: eba3b7ce20b7f470a891c84def6be7e4, type: 3}
m_Name:
m_EditorClassIdentifier:
+ m_Sprite: {fileID: 0}
+ m_ParticleSystems:
+ - {fileID: 40867143}
+ - {fileID: 2105248810}
+ - {fileID: 495893256}
+ - {fileID: 453963074}
+ - {fileID: 683882518}
+ m_Masks:
+ - {fileID: 829344119}
+ - {fileID: 1990444707}
+ - {fileID: 1796369711}
+ - {fileID: 203308589}
+ - {fileID: 1916732546}
--- !u!1 &1040694054
GameObject:
m_ObjectHideFlags: 0
@@ -2854,6 +3164,81 @@ CanvasRenderer:
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1269035766}
m_CullTransparentMesh: 0
+--- !u!1 &1351227236
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1351227237}
+ - component: {fileID: 1351227239}
+ - component: {fileID: 1351227238}
+ m_Layer: 5
+ m_Name: Label
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1351227237
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1351227236}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1626066441}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: -71.48999, y: 0.6500101}
+ m_SizeDelta: {x: -142.98, y: -1.3}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1351227238
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1351227236}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+ Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 18
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 1
+ m_MaxSize: 40
+ m_Alignment: 3
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 1
+ m_VerticalOverflow: 1
+ m_LineSpacing: 1
+ m_Text: Sprites
+--- !u!222 &1351227239
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1351227236}
+ m_CullTransparentMesh: 0
--- !u!1 &1410684353
GameObject:
m_ObjectHideFlags: 0
@@ -3386,6 +3771,262 @@ RectTransform:
m_CorrespondingSourceObject: {fileID: 224334368915820964, guid: 293537681b71040d0a9b03e13c0e4a20,
type: 2}
m_PrefabInternal: {fileID: 1622082339}
+--- !u!1 &1624949830
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1624949831}
+ - component: {fileID: 1624949833}
+ - component: {fileID: 1624949832}
+ m_Layer: 5
+ m_Name: Label
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1624949831
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1624949830}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 919687610}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: -71.48999, y: 0.6500101}
+ m_SizeDelta: {x: -142.98, y: -1.3}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1624949832
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1624949830}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+ Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 18
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 1
+ m_MaxSize: 40
+ m_Alignment: 3
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 1
+ m_VerticalOverflow: 1
+ m_LineSpacing: 1
+ m_Text: Ribbon
+--- !u!222 &1624949833
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1624949830}
+ m_CullTransparentMesh: 0
+--- !u!1 &1626066440
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1626066441}
+ - component: {fileID: 1626066443}
+ - component: {fileID: 1626066442}
+ m_Layer: 5
+ m_Name: Toggle (Sprites)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1626066441
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1626066440}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.9998866, y: 0.9998866, z: 0.9998866}
+ m_Children:
+ - {fileID: 873189077}
+ - {fileID: 1351227237}
+ m_Father: {fileID: 1810222380}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 1}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 107.09, y: -106}
+ m_SizeDelta: {x: 194.81, y: 21.3}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1626066442
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1626066440}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreLayout: 1
+ m_MinWidth: -1
+ m_MinHeight: -1
+ m_PreferredWidth: -1
+ m_PreferredHeight: -1
+ m_FlexibleWidth: -1
+ m_FlexibleHeight: -1
+ m_LayoutPriority: 1
+--- !u!114 &1626066443
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1626066440}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 2109663825, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 873189078}
+ toggleTransition: 1
+ graphic: {fileID: 926331317}
+ m_Group: {fileID: 0}
+ onValueChanged:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 993972853}
+ m_MethodName: EnableSprite
+ m_Mode: 0
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
+ m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
+ Culture=neutral, PublicKeyToken=null
+ m_IsOn: 0
+--- !u!1 &1650678471
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1650678472}
+ - component: {fileID: 1650678474}
+ - component: {fileID: 1650678473}
+ m_Layer: 5
+ m_Name: Checkmark
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1650678472
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1650678471}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 141837618}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 20, y: 20}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1650678473
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1650678471}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ 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_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+--- !u!222 &1650678474
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1650678471}
+ m_CullTransparentMesh: 0
--- !u!1001 &1700081082
Prefab:
m_ObjectHideFlags: 0
@@ -3492,6 +4133,10 @@ Prefab:
propertyPath: m_Enabled
value: 0
objectReference: {fileID: 0}
+ - target: {fileID: 1477837436527380, guid: 293537681b71040d0a9b03e13c0e4a20, type: 2}
+ propertyPath: m_IsActive
+ value: 1
+ objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 293537681b71040d0a9b03e13c0e4a20, type: 2}
m_IsPrefabAsset: 0
@@ -3804,6 +4449,7 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 1810222380}
+ - component: {fileID: 1810222381}
m_Layer: 5
m_Name: Control
m_TagString: Untagged
@@ -3823,6 +4469,8 @@ RectTransform:
m_Children:
- {fileID: 473819142}
- {fileID: 475799738}
+ - {fileID: 919687610}
+ - {fileID: 1626066441}
m_Father: {fileID: 1918337914}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -3831,6 +4479,28 @@ RectTransform:
m_AnchoredPosition: {x: 95, y: -93.333336}
m_SizeDelta: {x: 190, y: 186.66667}
m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1810222381
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1810222379}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1297475563, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_ChildAlignment: 0
+ m_Spacing: 0
+ m_ChildForceExpandWidth: 1
+ m_ChildForceExpandHeight: 0
+ m_ChildControlWidth: 0
+ m_ChildControlHeight: 0
--- !u!1 &1844207550
GameObject:
m_ObjectHideFlags: 0
@@ -4101,7 +4771,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 200, y: -93.333336}
+ m_AnchoredPosition: {x: 200, y: -93.33334}
m_SizeDelta: {x: 400, y: 186.66667}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1918337915
@@ -4611,6 +5281,31 @@ Prefab:
propertyPath: m_RenderMode
value: 0
objectReference: {fileID: 0}
+ - target: {fileID: 198474937898253256, guid: 77533a9d6813e4163a176c4206b0aba2,
+ type: 2}
+ propertyPath: UVModule.mode
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 198474937898253256, guid: 77533a9d6813e4163a176c4206b0aba2,
+ type: 2}
+ propertyPath: UVModule.sprites.Array.data[0].sprite
+ value:
+ objectReference: {fileID: 21300000, guid: 925f66fdcc9764b579413b7408c718f2,
+ type: 3}
+ - target: {fileID: 198474937898253256, guid: 77533a9d6813e4163a176c4206b0aba2,
+ type: 2}
+ propertyPath: UVModule.enabled
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1637072316030346, guid: 77533a9d6813e4163a176c4206b0aba2, type: 2}
+ propertyPath: m_IsActive
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 198474937898253256, guid: 77533a9d6813e4163a176c4206b0aba2,
+ type: 2}
+ propertyPath: TrailModule.mode
+ value: 0
+ objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 77533a9d6813e4163a176c4206b0aba2, type: 2}
m_IsPrefabAsset: 0
diff --git a/Assets/Coffee/UIExtensions/UIParticle/UIParticle.cs b/Assets/Coffee/UIExtensions/UIParticle/UIParticle.cs
index 19b3e0a..0bee710 100644
--- a/Assets/Coffee/UIExtensions/UIParticle/UIParticle.cs
+++ b/Assets/Coffee/UIExtensions/UIParticle/UIParticle.cs
@@ -37,8 +37,32 @@ namespace Coffee.UIExtensions
{
get
{
- var mat = _renderer ? _renderer.sharedMaterial : defaultGraphicMaterial;
- return mat && mat.HasProperty(s_IdMainTex) ? mat.mainTexture : s_WhiteTexture; ;
+ Texture tex = null;
+ if (!m_IsTrail)
+ {
+ Profiler.BeginSample("Check TextureSheetAnimation module");
+ var textureSheet = m_ParticleSystem.textureSheetAnimation;
+ if (textureSheet.enabled && textureSheet.mode == ParticleSystemAnimationMode.Sprites && 0 < textureSheet.spriteCount)
+ {
+ tex = textureSheet.GetSprite(0).texture;
+ }
+ Profiler.EndSample();
+ }
+ if (!tex && _renderer)
+ {
+ Profiler.BeginSample("Check material");
+ var mat = m_IsTrail
+ ? _renderer.trailMaterial
+ : Application.isPlaying
+ ? _renderer.material
+ : _renderer.sharedMaterial;
+ if (mat && mat.HasProperty(s_IdMainTex))
+ {
+ tex = mat.mainTexture;
+ }
+ Profiler.EndSample();
+ }
+ return tex ?? s_WhiteTexture;
}
}
@@ -56,10 +80,13 @@ namespace Coffee.UIExtensions
_mesh.MarkDynamic();
CheckTrail();
base.OnEnable();
+
+ Canvas.willRenderCanvases += UpdateMesh;
}
protected override void OnDisable()
{
+ Canvas.willRenderCanvases -= UpdateMesh;
DestroyImmediate(_mesh);
_mesh = null;
CheckTrail();
@@ -76,73 +103,81 @@ namespace Coffee.UIExtensions
Mesh _mesh;
ParticleSystemRenderer _renderer;
- void Update()
+ void UpdateMesh()
{
- Profiler.BeginSample("CheckTrail");
- CheckTrail();
- Profiler.EndSample();
-
- if (m_ParticleSystem)
+ try
{
- Profiler.BeginSample("Disable ParticleSystemRenderer");
- if (Application.isPlaying)
- {
- _renderer.enabled = false;
- }
+ Profiler.BeginSample("CheckTrail");
+ CheckTrail();
Profiler.EndSample();
- Profiler.BeginSample("Make Matrix");
- var cam = canvas.worldCamera ?? Camera.main;
- bool useTransform = false;
- Matrix4x4 matrix = default(Matrix4x4);
- switch (m_ParticleSystem.main.simulationSpace)
+ if (m_ParticleSystem)
{
- case ParticleSystemSimulationSpace.Local:
- matrix =
- Matrix4x4.Rotate(m_ParticleSystem.transform.rotation).inverse
- * Matrix4x4.Scale(m_ParticleSystem.transform.lossyScale).inverse;
- useTransform = true;
- break;
- case ParticleSystemSimulationSpace.World:
- matrix = m_ParticleSystem.transform.worldToLocalMatrix;
- break;
- case ParticleSystemSimulationSpace.Custom:
- break;
- }
- Profiler.EndSample();
-
- _mesh.Clear();
- if (0 < m_ParticleSystem.particleCount)
- {
- Profiler.BeginSample("Bake Mesh");
- if (m_IsTrail)
+ Profiler.BeginSample("Disable ParticleSystemRenderer");
+ if (Application.isPlaying)
{
- _renderer.BakeTrailsMesh(_mesh, cam, useTransform);
- }
- else
- {
- _renderer.BakeMesh(_mesh, cam, useTransform);
+ _renderer.enabled = false;
}
Profiler.EndSample();
- // Apply matrix.
- Profiler.BeginSample("Apply matrix to position");
- _mesh.GetVertices(s_Vertices);
- var count = s_Vertices.Count;
- for (int i = 0; i < count; i++)
+ Profiler.BeginSample("Make Matrix");
+ var cam = canvas.worldCamera ?? Camera.main;
+ bool useTransform = false;
+ Matrix4x4 matrix = default(Matrix4x4);
+ switch (m_ParticleSystem.main.simulationSpace)
{
- s_Vertices[i] = matrix.MultiplyPoint3x4(s_Vertices[i]);
+ case ParticleSystemSimulationSpace.Local:
+ matrix =
+ Matrix4x4.Rotate(m_ParticleSystem.transform.rotation).inverse
+ * Matrix4x4.Scale(m_ParticleSystem.transform.lossyScale).inverse;
+ useTransform = true;
+ break;
+ case ParticleSystemSimulationSpace.World:
+ matrix = m_ParticleSystem.transform.worldToLocalMatrix;
+ break;
+ case ParticleSystemSimulationSpace.Custom:
+ break;
}
- _mesh.SetVertices(s_Vertices);
- s_Vertices.Clear();
+ Profiler.EndSample();
+
+ _mesh.Clear();
+ if (0 < m_ParticleSystem.particleCount)
+ {
+ Profiler.BeginSample("Bake Mesh");
+ if (m_IsTrail)
+ {
+ _renderer.BakeTrailsMesh(_mesh, cam, useTransform);
+ }
+ else
+ {
+ _renderer.BakeMesh(_mesh, cam, useTransform);
+ }
+ Profiler.EndSample();
+
+ // Apply matrix.
+ Profiler.BeginSample("Apply matrix to position");
+ _mesh.GetVertices(s_Vertices);
+ var count = s_Vertices.Count;
+ for (int i = 0; i < count; i++)
+ {
+ s_Vertices[i] = matrix.MultiplyPoint3x4(s_Vertices[i]);
+ }
+ _mesh.SetVertices(s_Vertices);
+ s_Vertices.Clear();
+ Profiler.EndSample();
+ }
+
+
+ // Set mesh to CanvasRenderer.
+ Profiler.BeginSample("Set mesh and texture to CanvasRenderer");
+ canvasRenderer.SetMesh(_mesh);
+ canvasRenderer.SetTexture(mainTexture);
Profiler.EndSample();
}
-
-
- // Set mesh to CanvasRenderer.
- Profiler.BeginSample("Set mesh to CanvasRenderer");
- canvasRenderer.SetMesh(_mesh);
- Profiler.EndSample();
+ }
+ catch(System.Exception e)
+ {
+ Debug.LogException(e);
}
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f9eb89c..3d0e6a3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,19 @@
# Changelog
+## [v1.0.0](https://github.com/mob-sakai/ParticleEffectForUGUI/tree/v1.0.0) (2018-07-13)
+
+[Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/v0.1.0...v1.0.0)
+
+Let's use particle for your UI!
+UIParticle is use easy.
+The particle rendering is maskable and sortable, without Camera, RenderTexture or Canvas.
+
+
+**Implemented enhancements:**
+
+- Supports sprites [\#5](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/5)
+- Use Canvas.willRenderCanvases event instead of LateUpdate [\#4](https://github.com/mob-sakai/ParticleEffectForUGUI/issues/4)
+
## [v0.1.0](https://github.com/mob-sakai/ParticleEffectForUGUI/tree/v0.1.0) (2018-06-22)
[Full Changelog](https://github.com/mob-sakai/ParticleEffectForUGUI/compare/6b89c14a5144e290e55d041bc0ad03756a113ae0...v0.1.0)
diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt
index a635814..0498f4d 100644
--- a/ProjectSettings/ProjectVersion.txt
+++ b/ProjectSettings/ProjectVersion.txt
@@ -1 +1 @@
-m_EditorVersion: 2018.2.0b9
+m_EditorVersion: 2018.2.0f2
diff --git a/README.md b/README.md
index 1c0b706..7d8c10a 100644
--- a/README.md
+++ b/README.md
@@ -33,7 +33,7 @@ Compares this "Baking mesh" approach with the conventional approach:
|Approach|Good|Bad|Screenshot|
|-|-|-|-|
-|Baking mesh
**\(UIParticle\)**|Rendered as is.
Maskable.
Sortable.
Less objects.|**Requires Unity 2018.2+.**
Requires UI shaders.|
|
+|Baking mesh
**\(UIParticle\)**|Rendered as is.
Maskable.
Sortable.
Less objects.|**Requires Unity 2018.2+.**
Requires UI shaders to use Mask.|
|
|Do nothing|Rendered as is.|**Looks like a glitch.**
Not maskable.
Not sortable.|
|
|Convert particle to UIVertex
[\(UIParticleSystem\)](https://forum.unity.com/threads/free-script-particle-systems-in-ui-screen-space-overlay.406862/)|Maskable.
Sortable.
Less objects.|**Adjustment is difficult.**
Requires UI shaders.
Difficult to adjust scale.
Force hierarchy scalling.
Simulation results are incorrect.
Trail, rotation of transform, time scaling are not supported.|
|
|Use Canvas to sort|Rendered as is.
Sortable.|**You must to manage sorting orders.**
Not maskable.
More batches.|
|
@@ -55,15 +55,17 @@ Compares this "Baking mesh" approach with the conventional approach:
1. Download ParticleEffectForUGUI.unitypackage from [Releases](https://github.com/mob-sakai/ParticleEffectForUGUI/releases).
1. Import the package into your Unity project. Select `Import Package > Custom Package` from the `Assets` menu.
1. Add particle system to canvas.
-1. If you want to mask particles, set the "UI/UIAdditive" shader to material.
-1. Add `UIParticle` component to particle system from `Add Component` in inspector.
+1. (Option) If you want to mask particles, set a UI shader such as "UI/UIAdditive" to material for ParticleSystem.
+
+1. Add `UIParticle` component to particle system from `Add Component` in inspector.

+1. That's all. There are no properties you must set in the inspector!
1. Enjoy!
##### Requirement
-* Unity 2018.2+ (Tested in Unity 2018.2b9)
+* Unity 2018.2+ (Tested in Unity 2018.2.0f2)
* No other SDK are required
@@ -72,14 +74,6 @@ Compares this "Baking mesh" approach with the conventional approach:
## Development Note
-#### BakeMesh API has a issue!
-
-See [this issue](https://issuetracker.unity3d.com/issues/bakemesh-slash-baketrailsmesh-crashes-if-update-jobs-are-running).
-
-`UIParticle` avoids the issue, but the rendering result lags one frame.
-
-Please vote the issue to improve `UIParticle`!
-
diff --git a/package.json b/package.json
index c827bf8..553625a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ParticleEffectForUGUI",
- "version": "0.1.0",
+ "version": "1.0.0",
"repository": {
"type": "git",
"url": "git+https://github.com/mob-sakai/ParticleEffectForUGUI.git"
diff --git a/release.sh b/release.sh
index 334dfdc..8e8bce8 100755
--- a/release.sh
+++ b/release.sh
@@ -2,78 +2,4 @@
# NOTE: Set an environment variable `CHANGELOG_GITHUB_TOKEN` by running the following command at the prompt, or by adding it to your shell profile (e.g., ~/.bash_profile or ~/.zshrc):
# export CHANGELOG_GITHUB_TOKEN="«your-40-digit-github-token»"
-
-# Release the project with the following steps:
-# 1. Update the release version in package.json.
-# 2. Open unity project to check compile error.
-# 3. Update "CHANGELOG.md" using "github_changelog_generator-1.15.0.pre.rc".
-# 4. Check changelog and continue proccess.
-# 5. Export unitypackage.
-# 6. Commit package.json and CHANGELOG.md.
-# 7. Merge into master branch.
-# 8. Release using "gh-release-3.2.0". (with upload unitypackage)
-
-
-# input release version
-echo -e ">> Start Github Release:"
-PACKAGE_NAME=`node -pe 'require("./package.json").name'`
-echo -e ">> Package name: ${PACKAGE_NAME}"
-CURRENT_VERSION=`grep -o -e "\"version\".*$" package.json | sed -e "s/\"version\": \"\(.*\)\".*$/\1/"`
-read -p "[? release version (for current: ${CURRENT_VERSION}): " RELEASE_VERSION
-[ -z "${RELEASE_VERSION}" ] && exit
-
-
-# update version in package.json
-echo -e "\n>> Update version... package.json"
-git checkout -B release develop
-sed -i -e "s/\"version\": \(.*\)/\"version\": \"${RELEASE_VERSION}\",/g" package.json
-
-
-# check unity editor
-UNITY_VER=`sed -e "s/m_EditorVersion: \(.*\)/\1/g" ProjectSettings/ProjectVersion.txt`
-UNITY_EDITOR="/Applications/Unity/Hub/Editor/${UNITY_VER}/Unity.app/Contents/MacOS/Unity"
-echo -e "\n>> Check unity editor... ${UNITY_VER} (${UNITY_EDITOR})"
-"$UNITY_EDITOR" -quit -batchmode -projectPath "`pwd`" -buildOSX64Player "build.app"
-echo -e ">> OK"
-
-
-# generate change log
-CHANGELOG_GENERATOR_ARG=`grep -o -e ".*git\"$" package.json | sed -e "s/^.*\/\([^\/]*\)\/\([^\/]*\).git.*$/--user \1 --project \2/"`
-CHANGELOG_GENERATOR_ARG="--future-release v${RELEASE_VERSION} ${CHANGELOG_GENERATOR_ARG}"
-echo -e "\n>> Generate change log... ${CHANGELOG_GENERATOR_ARG}"
-github_changelog_generator ${CHANGELOG_GENERATOR_ARG}
-
-git diff -- CHANGELOG.md
-read -p "[? is the change log correct? (y/N):" yn
-case "$yn" in [yY]*) ;; *) exit ;; esac
-
-
-# export unitypackage
-PACKAGE_SRC=`node -pe 'require("./package.json").src'`
-echo -e "\n>> Export unitypackage... ${PACKAGE_SRC}"
-"$UNITY_EDITOR" -quit -batchmode -projectPath "`pwd`" -exportpackage "$PACKAGE_SRC" "$PACKAGE_NAME.unitypackage"
-echo -e ">> OK"
-
-# commit release files
-echo -e "\n>> Commit release files..."
-git add CHANGELOG.md -f
-git add package.json -f
-git commit -m "update change log"
-
-
-# merge and push
-echo -e "\n>> Merge and push..."
-git checkout master
-git merge --no-ff release -m "release $TAG"
-git branch -D release
-git push origin master
-git checkout develop
-git merge --ff master
-git push origin develop
-
-
-# upload unitypackage and release on Github
-gh-release --assets "$PACKAGE_NAME.unitypackage"
-
-
-echo -e "\n\n>> $PACKAGE_NAME v$RELEASE_VERSION has been successfully released!\n"
+bash <(curl -sL 'https://gist.github.com/mob-sakai/a883999a32dd8b1927639e46b3cd6801/raw/unity_release.sh')
\ No newline at end of file