Skip to content

Commit 8ae04f0

Browse files
committed
QOL
+Particle settings with help of optional drawer +Fixed missing reference in Slider
1 parent 067611e commit 8ae04f0

14 files changed

Lines changed: 142 additions & 89 deletions

File tree

Assets/TimeRewinder/ExampleScene/Import/source/DinosaurAnim.controller

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ AnimatorStateTransition:
1717
m_Mute: 0
1818
m_IsExit: 0
1919
serializedVersion: 3
20-
m_TransitionDuration: 0.25
20+
m_TransitionDuration: 0
2121
m_TransitionOffset: 0
2222
m_ExitTime: 0.75
2323
m_HasExitTime: 0
@@ -124,7 +124,7 @@ AnimatorStateTransition:
124124
m_Mute: 0
125125
m_IsExit: 0
126126
serializedVersion: 3
127-
m_TransitionDuration: 0.25
127+
m_TransitionDuration: 0
128128
m_TransitionOffset: 0
129129
m_ExitTime: 0.75
130130
m_HasExitTime: 0
@@ -301,7 +301,7 @@ AnimatorStateTransition:
301301
m_Mute: 0
302302
m_IsExit: 0
303303
serializedVersion: 3
304-
m_TransitionDuration: 0.5
304+
m_TransitionDuration: 0
305305
m_TransitionOffset: 0
306306
m_ExitTime: 0.75
307307
m_HasExitTime: 0
@@ -375,7 +375,7 @@ AnimatorStateTransition:
375375
m_Mute: 0
376376
m_IsExit: 0
377377
serializedVersion: 3
378-
m_TransitionDuration: 0.25
378+
m_TransitionDuration: 0
379379
m_TransitionOffset: 0
380380
m_ExitTime: 0.75
381381
m_HasExitTime: 0

Assets/TimeRewinder/ExampleScene/TimeRewindExample 1.unity

Lines changed: 20 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -269,15 +269,12 @@ MonoBehaviour:
269269
trackVelocity: 0
270270
trackAnimator: 0
271271
trackAudio: 1
272-
trackParticles: 1
273-
particleSettings:
274-
particleLimiter: 10
275-
particleResetTo: 3
276-
particlesData:
277-
- particleSystem: {fileID: 364920339}
278-
particleSystemEnabler: {fileID: 364920336}
279-
- particleSystem: {fileID: 274326564}
280-
particleSystemEnabler: {fileID: 364920336}
272+
trackParticles:
273+
enabled: 0
274+
value:
275+
particleLimiter: 0
276+
particleResetTo: 0
277+
particlesData: []
281278
--- !u!23 &13430125
282279
MeshRenderer:
283280
m_ObjectHideFlags: 0
@@ -668,11 +665,12 @@ MonoBehaviour:
668665
trackVelocity: 0
669666
trackAnimator: 1
670667
trackAudio: 1
671-
trackParticles: 0
672-
particleSettings:
673-
particleLimiter: 0
674-
particleResetTo: 0
675-
particlesData: []
668+
trackParticles:
669+
enabled: 0
670+
value:
671+
particleLimiter: 0
672+
particleResetTo: 0
673+
particlesData: []
676674
--- !u!82 &184878771
677675
AudioSource:
678676
m_ObjectHideFlags: 0
@@ -977,18 +975,6 @@ PrefabInstance:
977975
m_Modification:
978976
m_TransformParent: {fileID: 0}
979977
m_Modifications:
980-
- target: {fileID: 4065960114815223673, guid: 0fb06aceffb6a294c8971e56e984b534, type: 3}
981-
propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target
982-
value:
983-
objectReference: {fileID: 1442316409}
984-
- target: {fileID: 4065960114815223673, guid: 0fb06aceffb6a294c8971e56e984b534, type: 3}
985-
propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
986-
value: OnSliderUpdate
987-
objectReference: {fileID: 0}
988-
- target: {fileID: 4065960114815223673, guid: 0fb06aceffb6a294c8971e56e984b534, type: 3}
989-
propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
990-
value: RewindBySlider, Assembly-CSharp
991-
objectReference: {fileID: 0}
992978
- target: {fileID: 4065960115090877166, guid: 0fb06aceffb6a294c8971e56e984b534, type: 3}
993979
propertyPath: m_AnchorMax.y
994980
value: 0
@@ -1047,11 +1033,6 @@ PrefabInstance:
10471033
objectReference: {fileID: 0}
10481034
m_RemovedComponents: []
10491035
m_SourcePrefab: {fileID: 100100000, guid: 0fb06aceffb6a294c8971e56e984b534, type: 3}
1050-
--- !u!198 &274326564 stripped
1051-
ParticleSystem:
1052-
m_CorrespondingSourceObject: {fileID: 198000014052238036, guid: 3123da49cb81147489b444f2749aba47, type: 3}
1053-
m_PrefabInstance: {fileID: 165187786}
1054-
m_PrefabAsset: {fileID: 0}
10551036
--- !u!1 &356099824
10561037
GameObject:
10571038
m_ObjectHideFlags: 0
@@ -1118,16 +1099,6 @@ Transform:
11181099
m_Father: {fileID: 0}
11191100
m_RootOrder: 7
11201101
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
1121-
--- !u!1 &364920336 stripped
1122-
GameObject:
1123-
m_CorrespondingSourceObject: {fileID: 1000011667291308, guid: 3123da49cb81147489b444f2749aba47, type: 3}
1124-
m_PrefabInstance: {fileID: 165187786}
1125-
m_PrefabAsset: {fileID: 0}
1126-
--- !u!198 &364920339 stripped
1127-
ParticleSystem:
1128-
m_CorrespondingSourceObject: {fileID: 198000014016860652, guid: 3123da49cb81147489b444f2749aba47, type: 3}
1129-
m_PrefabInstance: {fileID: 165187786}
1130-
m_PrefabAsset: {fileID: 0}
11311102
--- !u!1 &474125695
11321103
GameObject:
11331104
m_ObjectHideFlags: 0
@@ -2167,11 +2138,14 @@ MonoBehaviour:
21672138
trackVelocity: 1
21682139
trackAnimator: 0
21692140
trackAudio: 0
2170-
trackParticles: 0
2171-
particleSettings:
2172-
particleLimiter: 0
2173-
particleResetTo: 0
2174-
particlesData: []
2141+
trackParticles:
2142+
enabled: 0
2143+
value:
2144+
particleLimiter: 0
2145+
particleResetTo: 0
2146+
particlesData:
2147+
- particleSystem: {fileID: 0}
2148+
particleSystemEnabler: {fileID: 0}
21752149
--- !u!1 &941752917
21762150
GameObject:
21772151
m_ObjectHideFlags: 0
@@ -2952,17 +2926,6 @@ Canvas:
29522926
m_SortingLayerID: 0
29532927
m_SortingOrder: 0
29542928
m_TargetDisplay: 0
2955-
--- !u!114 &1442316409 stripped
2956-
MonoBehaviour:
2957-
m_CorrespondingSourceObject: {fileID: 1923849193941672073, guid: 0fb06aceffb6a294c8971e56e984b534, type: 3}
2958-
m_PrefabInstance: {fileID: 231545902}
2959-
m_PrefabAsset: {fileID: 0}
2960-
m_GameObject: {fileID: 0}
2961-
m_Enabled: 1
2962-
m_EditorHideFlags: 0
2963-
m_Script: {fileID: 11500000, guid: 08a37ff3489bdf648b78d4d67f513a20, type: 3}
2964-
m_Name:
2965-
m_EditorClassIdentifier:
29662929
--- !u!1 &1447404618
29672930
GameObject:
29682931
m_ObjectHideFlags: 0

Assets/TimeRewinder/ExampleScene/TimeRewindExample 2.unity

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3062,11 +3062,12 @@ MonoBehaviour:
30623062
trackVelocity: 0
30633063
trackAnimator: 1
30643064
trackAudio: 0
3065-
trackParticles: 0
3066-
particleSettings:
3067-
particleLimiter: 0
3068-
particleResetTo: 0
3069-
particlesData: []
3065+
trackParticles:
3066+
enabled: 0
3067+
value:
3068+
particleLimiter: 0
3069+
particleResetTo: 0
3070+
particlesData: []
30703071
--- !u!4 &4475510621848781043 stripped
30713072
Transform:
30723073
m_CorrespondingSourceObject: {fileID: 2777300740448002485, guid: 4180b94305dcbca47bb67cfb0c911992, type: 3}

Assets/TimeRewinder/TimeRewinderImplementation/Prefabs/ClockSlider.prefab

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,8 @@ MonoBehaviour:
130130
m_OnValueChanged:
131131
m_PersistentCalls:
132132
m_Calls:
133-
- m_Target: {fileID: 0}
134-
m_TargetAssemblyTypeName: SliderScript, Assembly-CSharp
133+
- m_Target: {fileID: 1923849193941672073}
134+
m_TargetAssemblyTypeName: RewindBySlider, Assembly-CSharp
135135
m_MethodName: OnSliderUpdate
136136
m_Mode: 0
137137
m_Arguments:
@@ -144,7 +144,7 @@ MonoBehaviour:
144144
m_CallState: 2
145145
--- !u!95 &4065960114815223558
146146
Animator:
147-
serializedVersion: 3
147+
serializedVersion: 5
148148
m_ObjectHideFlags: 0
149149
m_CorrespondingSourceObject: {fileID: 0}
150150
m_PrefabInstance: {fileID: 0}
@@ -157,10 +157,11 @@ Animator:
157157
m_UpdateMode: 1
158158
m_ApplyRootMotion: 0
159159
m_LinearVelocityBlending: 0
160+
m_StabilizeFeet: 0
160161
m_WarningMessage:
161162
m_HasTransformHierarchy: 1
162163
m_AllowConstantClipSamplingOptimization: 1
163-
m_KeepAnimatorControllerStateOnDisable: 0
164+
m_KeepAnimatorStateOnDisable: 0
164165
--- !u!82 &4065960114815223556
165166
AudioSource:
166167
m_ObjectHideFlags: 0

Assets/TimeRewinder/TimeRewinderImplementation/Scripts/ImplementedObjects/GenericRewind.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@ public class GenericRewind : RewindAbstract
77
[SerializeField] bool trackVelocity;
88
[SerializeField] bool trackAnimator;
99
[SerializeField] bool trackAudio;
10-
[SerializeField] bool trackParticles;
1110

12-
[Tooltip("Fill particle settings only if you check Track Particles")]
13-
[SerializeField] ParticlesSetting particleSettings;
11+
[Tooltip("Enable checkbox on right side to track particles")]
12+
[SerializeField] OptionalParticleSettings trackParticles;
1413

1514
protected override void Rewind(float seconds)
1615
{
@@ -21,7 +20,7 @@ protected override void Rewind(float seconds)
2120
RestoreVelocity(seconds);
2221
if (trackAnimator)
2322
RestoreAnimator(seconds);
24-
if (trackParticles)
23+
if (trackParticles.Enabled)
2524
RestoreParticles(seconds);
2625
if(trackAudio)
2726
RestoreAudio(seconds);
@@ -35,14 +34,14 @@ protected override void Track()
3534
TrackVelocity();
3635
if (trackAnimator)
3736
TrackAnimator();
38-
if (trackParticles)
37+
if (trackParticles.Enabled)
3938
TrackParticles();
4039
if (trackAudio)
4140
TrackAudio();
4241
}
4342
private void Start()
4443
{
45-
InitializeParticles(particleSettings);
44+
InitializeParticles(trackParticles.Value);
4645
}
4746

4847
}

Assets/TimeRewinder/TimeRewinderImplementation/Scripts/Utils.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System;
2+
using UnityEngine;
3+
using static RewindAbstract;
4+
5+
[Serializable]
6+
public struct OptionalParticleSettings
7+
{
8+
[SerializeField] private bool enabled;
9+
[SerializeField] private ParticlesSetting value;
10+
11+
public bool Enabled => enabled;
12+
public ParticlesSetting Value => value;
13+
14+
public OptionalParticleSettings(ParticlesSetting initialValue)
15+
{
16+
enabled = true;
17+
value = initialValue;
18+
}
19+
}

Assets/TimeRewinder/TimeRewinderImplementation/Scripts/Utils/OptionalParticleSettings.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
using UnityEditor;
2+
using UnityEngine;
3+
4+
namespace Editor
5+
{
6+
[CustomPropertyDrawer(typeof(OptionalParticleSettings))]
7+
public class OptionalPropertyDrawer : PropertyDrawer
8+
{
9+
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
10+
{
11+
var valueProperty = property.FindPropertyRelative("value");
12+
return EditorGUI.GetPropertyHeight(valueProperty);
13+
}
14+
15+
public override void OnGUI(
16+
Rect position,
17+
SerializedProperty property,
18+
GUIContent label
19+
)
20+
{
21+
var valueProperty = property.FindPropertyRelative("value");
22+
var enabledProperty = property.FindPropertyRelative("enabled");
23+
24+
EditorGUI.BeginProperty(position, label, property);
25+
position.width -= 24;
26+
EditorGUI.BeginDisabledGroup(!enabledProperty.boolValue);
27+
EditorGUI.PropertyField(position, valueProperty, label, true);
28+
EditorGUI.EndDisabledGroup();
29+
30+
int indent = EditorGUI.indentLevel;
31+
EditorGUI.indentLevel = 0;
32+
position.x += position.width + 24;
33+
position.width = position.height = EditorGUI.GetPropertyHeight(enabledProperty);
34+
position.x -= position.width;
35+
EditorGUI.PropertyField(position, enabledProperty, GUIContent.none);
36+
EditorGUI.indentLevel = indent;
37+
EditorGUI.EndProperty();
38+
}
39+
}
40+
}

Assets/TimeRewinder/TimeRewinderImplementation/Scripts/Utils/OptionalPropertyDrawer.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)