Git Product home page Git Product logo

animation-sequencer's Introduction

Animation Sequencer

GitHub license

GitHub issues GitHub pull requests GitHub last commit

GitHub followers Twitter Follow

I LOVE Tween, I love DOTween even more! But having to wait for a recompilation every time you tweak a single value on some animation it's frustrating! Even more complicated is properly have to visualize the entire animation in your head and having to wait until you reach your animation to see what you have done! That's why I created the Animation Sequencer, it is (cloned) HEAVILY INSPIRED from Space Ape amazing Creative Engineering: Balancing & Juicing with Animations presentation.

This is still in heavy development, please use it carefully

Example Example

Features

  • Allow you to create a complex sequence of Tweens/Actions and play on Editor Mode!
  • User Friendly interface with a lot of customization
  • Easy to extend with project specific actions
  • Chain sequences and control entire animated windows with a single interface
  • Searchable actions allowing fast interactions and updates
  • Can be used for any type of Objects, UI or anything you want!

Built in Steps

  • Tween Target
    • DOAnchoredPosition
    • DOMove
    • DOScale
    • DORotate
    • DOFade (Canvas Group)
    • DOFade (Graphic)
    • DOPath
    • DOShake (Position/Rotation/Scale)
    • DOPunch (Position/Rotation/Scale)
    • DOText (TextMeshPro Support)
    • DOFill
  • Play Particle System
  • Play Animation Sequencer

How to use?

  • Animation Sequencer rely on DOTween for now, so it a requirement that you have DOTween on your project with properly created asmdef for it (Created by the DOTween setup panel)
  • Add the Animation Sequencer to any GameObject and start your animation!
  • Using the + button under the Animation Steps you can add a new step
  • Select Tween Target
  • Use the Add Actions to add specific tweens to your target
  • Press play on the Preview bar to view it on Editor Time.
  • To play it by code, just call use animationSequencer.Play();

FAQ

I'm seeing a bunch of errors like `error CS1929: 'CanvasGroup' does not contain a definition for 'DOFade'` This means that you don't have the DOTween setup complete with Asmdef files, make sure you do it by the menu: `Tools/Demigiant/DOTween Utility Panel`
How can I create my custom actions? To create a custom action there's a few things you need to do, first your class needs to be `[Serializable]` in order to be properly displayed on inspector. Now you need to make sure whatever you are doing, you are connecting it with the Sequence, like the example bellow. Also notice that in this case I'm adding the Duration its getting the lenght from the clip
[Serializable]
 public class PlayLegacyAnimation : AnimationStepBase
 {
     public override string DisplayName => "Play Legacy Animation";

     [SerializeField]
     private Animation animation;

     public override void AddTweenToSequence(Sequence animationSequence)
     {
         animationSequence.AppendInterval(Delay);
         animationSequence.AppendCallback(
             () =>
             {
                 animation.Play();
             }
         );
         animationSequence.AppendInterval(animation.clip.length);
     }
 }
I have my own DOTween extensions, can I use that?

Absolutely! The same as the step, you can add any new DOTween action by extending DOTweenActionBase. In order to avoid any performance issues all the tweens are created on the PrepareToPlay method on Awake, and are paused.

[Serializable]
public sealed class ChangeMaterialStrengthDOTweenAction : DOTweenActionBase
{
    public override string DisplayName => "Change Material Strength";
        
    public override Type TargetComponentType => typeof(Renderer);

    [SerializeField, Range(0,1)]
    private float materialStrength = 1;

     public override bool CreateTween(GameObject target, float duration, int loops, LoopType loopType)
     {
        Renderer renderer = target.GetComponent<Renderer>();
        if (renderer == null)
            return false;

        TweenerCore<float, float, FloatOptions> materialTween = renderer.sharedMaterial.DOFloat(materialStrength, "Strength", duration);
        
        SetTween(materialTween, loops, loopType);
        return true;
    }
}

custom-tween-action

Using custom animation curve as easing

You can use the Custom ease to define an AnimationCurve for the Tween.

custom-ease

What are the differences between the initialization settings
  • None Don't do anything on the AnimationSequencer Awake method
  • PrepareToPlayOnAwake This will make sure the Tweens that are from are prepared to play at the intial value on Awake.
  • PlayOnAwake Will play the tween on Awake.*

System Requirements

Unity 2018.4.0 or later versions

How to install

Add from OpenUPM | via scoped registry, recommended

This package is available on OpenUPM: https://openupm.com/packages/com.brunomikoski.animationsequencer

To add it the package to your project:

  • open Edit/Project Settings/Package Manager
  • add a new Scoped Registry:
    Name: OpenUPM
    URL:  https://package.openupm.com/
    Scope(s): com.brunomikoski
              com.demigiant
    
  • click Save
  • open Package Manager
  • click +
  • select Add from Git URL
  • paste com.brunomikoski.animationsequencer
  • click Add
Add from GitHub | not recommended, no updates :(

You can also add it directly from GitHub on Unity 2019.4+. Note that you won't be able to receive updates through Package Manager this way, you'll have to update manually.

  • open Package Manager
  • click +
  • select Add from Git URL
  • paste https://github.com/brunomikoski/Animation-Sequencer.git
  • click Add

animation-sequencer's People

Contributors

brunomikoski avatar brunomikoskib avatar irakli avatar johndesley avatar nindim avatar qwe321 avatar vanifatovvlad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

animation-sequencer's Issues

DisallowMultipleComponent

Hey, first of all, let me tell yout that this is a great tool, very easy to setup and get it working!

I see that the AnimationSequenceController component has [DisallowMultipleComponent]. Would it be possible to remove this? The use case I am trying to achieve is a popup that has different entry and exit transitions, so I would like to add two different AnimationSequenceController components, one for each transition.

I can of course work around this by adding an empty parent to the popup and add the additional AnimationSequenceController to that parent, but it is not ideal, since I would need to do this for each extra AnimationSequenceController.

I understand that multiple AnimationSequenceController playing at the same time would be problematic, but if only one of them is active there should be no problem.

Scripts are not recognized in WebGL, animation sequencer >=0.3.9 and dotween 1.2.705

I have a project with DOTween 1.2.705 and Animation Sequencer 0.5.1. Today i changed to WebGL target platform and a lot of errors appear like:

Assets\Scripts\View\EnemyView.cs(20,34): error CS0246: The type or namespace name 'AnimationSequencerController' could not be found (are you missing a using directive or an assembly reference?)

When I downgrade Animation Sequencer to 0.3.8, the errors go away. Versions >= 0.3.9 still throw errors.

I have another project with Animation Sequencer 0.4.0 and dotween 1.2.690 and errors are not thrown when targeting webgl.

Since Animation Sequencer 0.3.9 introduces the #if DOTWEEN_ENABLED I suspect that is an error with new versions of DOTween not enabling this directive when targeting webgl.

I've not opened this issue in the dotween repo because im not sure of this. So i need confirmation.

FlowType Join works as Append

I added few steps in sequence with FlowType Join. All steps have action Scale to Size.
When I hitted preview Play, steps animated one after another, not simultaneously.
And I also did not find a way to add a time interval to the sequence (like sequence.AppendInterval(5f))

DOTween Install

I installed the OpenUPM version of DOTween: https://openupm.com/packages/com.demigiant.dotween/ and it doesn't appear to be compatible.

It might be worth clarifying how you recommend installing DOTween. Also - if the order is important then those steps would be useful in the "Installation" section of the readme. I usually skip reading everything else and start there but the reference to DOTween is further up the page.

[0.2.4] Preview feature is broken

Unity: 2020.3.4f1
Tested package version: 0.2.4

I already used this package version 0.1.6 and I upgraded to 0.2.4 lately.
The preview feature of version 0.2.4 is broken.
The origin value is not restored when the preview ends.

Initial value not recovered in editor mode

When playing AnimationSequencerController in Editor mode, the result value of AnimationSteps with Duration of 0 is fixed, so it is not restored to the initial value after playback is finished.

Expacted

before

after

Unexpacted

before

after

Rewind and PlayBackward not working

Hi,
I use this package for a long time and its work correctly in my case.
Recently i upgrade from my old version 0.2.4 to 0.2.7 and even 0.2.8 and in new release Rewind function or PlayBackward not working at all.

Progress Bar "Animatable"

Would be nice to be able to animate the progress bar via mechanim system, that way we can integrate tweens animations in the Timeline for example. This would be super powerful.

Join behaves as Append

Hello,

You recently changed, in ee79e77f3ce49d1ac14475b02c88f36210388ba6, the SetDelay to AppendInterval.
I understand what you were trying to achieve with the fix, but there is a bug.

For example:

  • Append { duration: 1, delay: 2 }
  • Join {duration: 1, delay: 0}

When calling the Join method the lastTweenInsertTimewill be 3 (duration + delay of the append).
This means that the Join will start after the Append instead of at the same time (+ delay).
Due to this the Join behaves as an Append.

For the time being I will locally revert this commit in my fork until this problem is solved.

Package not compiling with 2020.3

Version 0.3.9 is not compiling on Unity 2020.3
Version 0.3.8 is working properly.
Tested with Unity version 2020.3.35f1

Errors:
Library\PackageCache\[email protected]\Scripts\Editor\Core\AnimationSequencerControllerCustomEditor.cs(50,13): error CS0234: The type or namespace name 'PrefabStage' does not exist in the namespace 'UnityEditor.SceneManagement' (are you missing an assembly reference?)

Library\PackageCache\[email protected]\Scripts\Editor\Core\AnimationSequencerControllerCustomEditor.cs(68,13): error CS0234: The type or namespace name 'PrefabStage' does not exist in the namespace 'UnityEditor.SceneManagement' (are you missing an assembly reference?)

namespace AnimationSequencerController could not be found after upgrading animation sequencer

it was woking perfectly untill i upgraded to latest version now i have error when i try to access to animationsequencercontroller to handle my sequences! even thought that i already added using BrunoMikoski.AnimationSequencer;

Assets\WeaponInventoryInspector.cs(9,9): error CS0246: The type or namespace name 'AnimationSequencerController' could not be found (are you missing a using directive or an assembly reference?)

Issue with extending the package

Hi there, I'm trying to add some additional functionalities to the package locally, but because some of the methods are internal, that's not possible.

AnimationSequenceEditorGUIUtility.PauseButtonGUIContent

I also tried another way, by extending the Animation Sequencer Custom Editor, but that class is sealed as well.

Target not updating

Hello,

In AnchoredPositionMoveDOTweenActionBase.GenerateTween_Internal there is a null check on a rectTransform. Initially this is valid, but this is problematic when refreshing the target.

Simply by removing the null check the rectTransform will be up to date. Casting isn't that expensive so for runtime this should've no impact.

Problem compiling build

Library/PackageCache/[email protected]/Scripts/Runtime/Core/DOTweenActions/DOTweenActionBase.cs(2,10): error CS0234: The type or namespace name 'DOTweenEditor' does not exist in the namespace 'DG' (are you missing an assembly reference?)

DOTween v.1.2.420 [release build]
Unity v. 2020.1.7f1

Unity 2022.2 target object reference bug

221222_serializeReference.mp4

Top: Normal (unity 2022.1.18f1)
Bottom: Bug (unity 2022.2.1f1)

Bug point: in 42 seconds

Hello. Thank you for your inspirational plug-in.

However, as the Unity version has been changed to 2022.2, there seems to be a problem with the reference when making Prefab.
It is not clear whether the behavior of the [SerializeReference] has changed or is a bug.

Test version: Animation-Sequencer-0.5.1

Tested Normal Operation Version: 2022.1.18f1
Bugged version: 2022.2.1f1

Reproduction method

  • Create two or three or more Tweens in the sequencer.
  • Make Prefab of this object.
  • The reference gets tangled at that moment.
    (The object's reference points to 'Asset' instead of an instance of the prefab. Animation does not work because it is not an instantiated object.)

It will be solved by downgrading to 2022.1.

[REQUEST] Various Features

Hi,

Before finding this Plugin I actually started using https://github.com/Luomu/UIAnimSequencer and ended up extending & changing it quite heavily to fit our needs (the first thing I did was move it to DOTween for instance).

It looks as though your version of this tool is far better organised and more easily extensible so at some point I would like to switch my project to this plugin if it can gain feature parity.

DOTween Sequences
Looking at the source, you don't seem to be using DOTween's Sequence object. This surprised me as it maps 1:1 with SpaceApe's implementation and under the hood I think they are likely using it. It would remove a lot of the need for manually moving through steps and actions as you just set it all up on the Sequence up front, it then handles all the scheduling, delays etc. You then only need to worry about playback of the Sequence from that point onward and you can start doing interesting things like playing the Sequence backwards and scrubbing to arbitrary points in time across the entire Sequence.

Preview Enhancements
image
My current implementation supports:

  • Simulated frame step (forwards and backwards).
  • Play/Pause.
  • Stop - This is to end the preview when you have paused or scrubbed.
  • Speed slider to control the preview speed, this is super useful for analysing glitches/pops and the like.
  • Progress slider - This allows you to scrub the entire Sequence forwards and backwards at will.

While the preview is active the user is told not to save the scene, the UIAnimSequence component is also prevented from being edited:
image

Unscaled Time
Tick box that decides whether the Sequence plays back using scaled or unscaled time. Essential for UI animation when the rest of the game is paused.

Play Backwards
This is very useful as sometimes you just want the intro and outro of an object to be the same (but reversed). Otherwise you need to recreate the same animation backwards in a separate Sequencer.

Disable After...
image
This automatically disables the object after playback completes. It's essentially like having an "Invoke Callback Step" that can be moved around depending on the playback direction. When adding backwards playback this is fairly essential.

Start/Finish Callbacks
image
As with "Disable After..." these are needed if backward playback is supported.

Default Values
I think it would be very useful to expose various defaults in a ScriptableObject or the like so all of the defaults can be tweaked per project.

For the ease I have set this to "In Out Quad" as it most close matches the Easy Ease used in various software such as After Effects It also seems to be the one most motion graphics artists start with.

Wait for...
My game has the concept of a FadeManager that fades the screen up and down, I usually do not want my UI animations to start during the fade. As I have control of the source for my Sequencer I just added a link to this system.

image

For a more generic system like yours perhaps there is a way to register some prerequisite conditions before the animation can start... I'm not sure of the most flexible way to handle this though if I'm honest.

Thanks a lot for open sourcing this project anyway, it's very, very interesting even as it is but the above features would really make it a no brainer for us to use!

All the best,

Niall

Doesn't Compile in Unity 2018.4

Hi,

I tried to import this in Unity 2018.4.23 but it is using SerializedReference which to my knowledge was only added in 2019.3.

Thanks,

Niall

Animation Sequencer does not see DOTween

After install I get errors in Editor:
Library\PackageCache\[email protected]\Scripts\Runtime\Core\DOTweenActions\AnchoredPositionMoveDOTweenActionBase.cs(32,89): error CS1061: 'RectTransform' does not contain a definition for 'DOAnchorPos' and no accessible extension method 'DOAnchorPos' accepting a first argument of type 'RectTransform' could be found (are you missing a using directive or an assembly reference?)

Library\PackageCache\[email protected]\Scripts\Runtime\Core\DOTweenActions\ColorGraphicDOTWeen.cs(33,68): error CS1929: 'Graphic' does not contain a definition for 'DOColor' and the best extension method overload 'ShortcutExtensions.DOColor(Camera, Color, float)' requires a receiver of type 'Camera'

Library\PackageCache\[email protected]\Scripts\Runtime\Core\DOTweenActions\FadeCanvasGroupDOTweenAction.cs(33,67): error CS1929: 'CanvasGroup' does not contain a definition for 'DOFade' and the best extension method overload 'ShortcutExtensions.DOFade(Material, float, float)' requires a receiver of type 'Material'

Library\PackageCache\[email protected]\Scripts\Runtime\Core\DOTweenActions\FadeGraphicDOTweenAction.cs(33,68): error CS1929: 'Graphic' does not contain a definition for 'DOFade' and the best extension method overload 'ShortcutExtensions.DOFade(Material, float, float)' requires a receiver of type 'Material'

Library\PackageCache\[email protected]\Scripts\Runtime\Core\DOTweenActions\FillImageDOTweenAction.cs(33,67): error CS1061: 'Image' does not contain a definition for 'DOFillAmount' and no accessible extension method 'DOFillAmount' accepting a first argument of type 'Image' could be found (are you missing a using directive or an assembly reference?)

I went to Packages>Animation Sequencer>Scripts>Runtime.
Checked BrunoMikoski.AnimationSequencer.asmdef
and there was no link to DOTween.Modules assembly

image

Implementation of a dynamic nested sequence step

I want to propose adding a step for automatically getting all nested sequencers from the parent animation controller, and then playing all those nested sequencers automatically. This way, it would make animating dynamic contents (e.g. unknown amount of buttons and text from a popup) very easy. From my knowledge, no such step currently exists.

I originally want to implement it myself and then submit a pull request, but I am having trouble getting the step working for more than 2 layers of nested animation sequencers. Below is the script for reference:

	[Serializable]
	public sealed class PlayNestedSequenceAnimationStep : AnimationStepBase
	{
		public override string DisplayName => "Play Nested Sequence";

		[SerializeField] private float delayPerSequence = 0f;
		[SerializeField] private FlowType flowTypeForNestedSequences = FlowType.Join;

		[SerializeField] private Transform parent;

		private IEnumerable<AnimationSequencerController> GetChildSequencers(Transform parent)
		{
			//Recursively get all child sequencers that don't have a parent sequencer
			foreach (Transform child in parent)
			{
				AnimationSequencerController childSequencer = child.GetComponent<AnimationSequencerController>();

				childSequencer.SetAutoplayMode(AnimationSequencerController.AutoplayType.Nothing);
#if UNITY_EDITOR
				UnityEditor.EditorUtility.SetDirty(childSequencer);
#endif
				if (childSequencer != null)
				{
					yield return childSequencer;
				}
				else
				{
					foreach (AnimationSequencerController childSequencer2 in GetChildSequencers(child))
					{
						yield return childSequencer2;
					}
				}
			}
		}

		public override void AddTweenToSequence(Sequence animationSequence)
		{
			Sequence sequence = DOTween.Sequence();
			sequence.SetDelay(Delay);

			float totalDelay = 0;
			foreach (var nestedSequencer in GetChildSequencers(parent))
			{
				var nestedSequence = nestedSequencer.GenerateSequence();
				if (flowTypeForNestedSequences == FlowType.Join)
				{
					nestedSequence.SetDelay(totalDelay);
					totalDelay += delayPerSequence;
					sequence.Join(nestedSequence);
				}
				else
				{
					sequence.Append(nestedSequence);
					sequence.AppendInterval(delayPerSequence);
				}
			}

			if (FlowType == FlowType.Join)
				animationSequence.Join(sequence);
			else
				animationSequence.Append(sequence);
		}

		public override void ResetToInitialState()
		{
			foreach (var nestedSequencer in GetChildSequencers(parent))
			{
				nestedSequencer.ResetToInitialState();
			}
		}

		public override string GetDisplayNameForEditor(int index)
		{
			if (parent == null)
			{
				return $"{index}. [Parent Not Set] Play Nested Sequence";
			}

			var nestedCount = GetChildSequencers(parent).Count();
			return $"{index}. Play {nestedCount} Nested Sequences";
		}
	}

To make this system even more useful, I also propose the changes below

  • A tag system for marking different types of animations, such as "Animate In", "Loop", and "Aniamte Out", and add tag filtering for the dynamic sequencer step

If you think this feature is useful, I could write the code and submit a pull request. (Though I would need some help on solving the above issues)

*PS this asset is amazing, thanks for making it!

Steps foldout closes when playing animation

Hey there! Firstly, a fantastic repository! Saving me a ton of time and working flawlessly.

One thing that I noticed is that when I preview the animation in the editor it collapses the Steps foldout. It's a bit tedious.

I make a small tweak to a step, I preview it, need to make another small adjustment but I have to reopen the steps foldout. It really hurts iteration speed.

I was wondering if there was a way to have the steps foldout remain open?

Play sequence backwards.

What's the best way to revert the sequence in code? I currently have a pretty weird setup:
` public override void StartTransition(int direction, Callback callback, RectTransform targetTransform)
{
this.direction = direction;
sequencerController = targetTransform.GetComponent();

        targetTransform.gameObject.SetActive(true);
        if (direction == 1)
        {
            SetForwardBackward(0);
            sequencerController.GenerateSequence();
            sequencerController.Play();
            sequencerController.PlayingSequence.SetAutoKill(false);
        }
        else
        {
            SetForwardBackward(1);
            sequencerController.Kill();
            sequencerController.Play();
            sequencerController.PlayingSequence.Goto(1 * sequencerController.PlayingSequence.Duration());
            sequencerController.PlayingSequence.Play();
        }
    }

    private void SetForwardBackward(int enumint)
    {
        var enumtype = typeof(AnimationSequencerController).Assembly.GetType("BrunoMikoski.AnimationSequencer.AnimationSequencerController+PlayType");
        var newenum = Enum.ToObject(enumtype, enumint);
        var prop = typeof(AnimationSequencerController).GetField("playType", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
        prop.SetValue(sequencerController, newenum);
    }`

It works but there's probably a better way isn't there?

Possible to Break Original layout

Hi,

I have noticed that if I configure the AnimationSequencer in certain ways I can break the original Editor UI layout.

For the record, I don't expect the setups below to yield correct animation results during Preview/Runtime, they are definitely misconfigured. I just don't expect my original layout to be broken post-preview as a result of my mistake.

Example 1 - "Move to Anchored Position" in From Direction and a "Shake Position".
image
image

Result: With this particular combination the position of the Tween Target is left at the start of the "Move to Anchored Position".
image

Example 2 - "Rotate to Euler Angles" and "Shake Rotation"
image
image

Result: A seemingly random rotation is left on the RectTransform.
image

Both issues occur when they are combined as Actions within a single step or as separate Actions that are Joined.

I doubt this is limited to just the actions I have listed above, I expect driving any variable with more than s single step/action at once will cause issues.

Thanks a lot,

Niall

serializedObject is 'null' during the last EditorUpdate before OnDisable

It seems like there is one additional EditorUpdate prior to OnDisable being called where the serializedObject is 'null' (Not actually null - but it doesn't point to any Unity Object)

Reproduce:

  1. Open prefab up in prefab stage.
  2. Select game object which has the AnimationSequencerControler component. Needs to be visible in inspector.
  3. Close prefab stage
  4. Observe Null Reference. progressSP is null, was unable to FindProperty on the serializedObject. Debugging further shows that serializedObject has no context/does not point to any targets. I am not sure what is the best/correct way to 'catch' this case.

Unrelated:
Do you know of any good resources for developing packages locally? I have forked Animation-Sequencer and was planning to make some contributions where I could, but I've never developed packages locally. I am not sure what the best workflow is. (How to make changes to the package, test in a dummy (or actual) project in editor, iterate, etc)

Cheers

Conflict with Pixelcrusher Dialoguesystem [ArgumentException]

I'd love to use this as it makes setting up these chained events a brief. If you ask me, this should be adopted by Dotween as a feature..

However. It seems to conflict with a tool I've already built a lot on which returns thiis error only when Animation-Sequencer is installed.

If you don't own this tool, I can try to help you debug in a weeks time when a deadline is met.

[code]ArgumentException: method arguments are incompatible
System.Delegate.CreateDelegate (System.Type type, System.Object firstArgument, System.Reflection.MethodInfo method, System.Boolean throwOnBindFailure, System.Boolean allowClosed) (at :0)
System.Delegate.CreateDelegate (System.Type type, System.Object firstArgument, System.Reflection.MethodInfo method) (at :0)
UnityEngine.Events.InvokableCall..ctor (System.Object target, System.Reflection.MethodInfo theFunction) (at /Users/bokken/buildslave/unity/build/Runtime/Export/UnityEvent/UnityEvent.cs:163)
UnityEngine.Events.PersistentCall.GetRuntimeCall (UnityEngine.Events.UnityEventBase theEvent) (at /Users/bokken/buildslave/unity/build/Runtime/Export/UnityEvent/UnityEvent.cs:480)
UnityEngine.Events.PersistentCallGroup.Initialize (UnityEngine.Events.InvokableCallList invokableList, UnityEngine.Events.UnityEventBase unityEventBase) (at /Users/bokken/buildslave/unity/build/Runtime/Export/UnityEvent/UnityEvent.cs:655)
UnityEngine.Events.UnityEventBase.RebuildPersistentCallsIfNeeded () (at /Users/bokken/buildslave/unity/build/Runtime/Export/UnityEvent/UnityEvent.cs:822)
UnityEngine.Events.UnityEventBase.PrepareInvoke () (at /Users/bokken/buildslave/unity/build/Runtime/Export/UnityEvent/UnityEvent.cs:858)
UnityEngine.Events.UnityEvent.Invoke () (at /Users/bokken/buildslave/unity/build/Runtime/Export/UnityEvent/UnityEvent/UnityEvent_0.cs:53)
PixelCrushers.DialogueSystem.UnityUITypewriterEffect.Stop () (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI/Utility/UnityUITypewriterEffect.cs:688)
PixelCrushers.DialogueSystem.StandardUIContinueButtonFastForward.OnFastForward () (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI/Standard/Effects/StandardUIContinueButtonFastForward.cs:68)
UnityEngine.Events.InvokableCall.Invoke () (at /Users/bokken/buildslave/unity/build/Runtime/Export/UnityEvent/UnityEvent.cs:180)
UnityEngine.Events.UnityEvent.Invoke () (at /Users/bokken/buildslave/unity/build/Runtime/Export/UnityEvent/UnityEvent/UnityEvent_0.cs:58)
UnityEngine.UI.Button.Press () (at /Applications/Unity/Hub/Editor/2020.1.7f1/Unity.app/Contents/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/Button.cs:68)
UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at /Applications/Unity/Hub/Editor/2020.1.7f1/Unity.app/Contents/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/UI/Core/Button.cs:110)
UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at /Applications/Unity/Hub/Editor/2020.1.7f1/Unity.app/Contents/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/ExecuteEvents.cs:50)
UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at /Applications/Unity/Hub/Editor/2020.1.7f1/Unity.app/Contents/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/ExecuteEvents.cs:261)
UnityEngine.EventSystems.EventSystem:Update() (at /Applications/Unity/Hub/Editor/2020.1.7f1/Unity.app/Contents/Resources/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/EventSystem.cs:376)
[/code]

Canvas Fade no longer works at runtime in 0.5.0

Hi there!

Just updated to 0.5.0, canvas fade is no longer functional at runtime. I can downgrade and verify it works in 0.4.0!

Steps
image

0.4.0

2022-09-23-13-09-35.mp4

0.5.0

2022-09-23-13-10-58.mp4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.