Warnings and Common Issues - rmfandyplayz/UnityUIAnimationTools GitHub Wiki

Inspector warnings

The Inspector checks every step against what it will actually animate, so a broken step shows up while you're making it, not later in the game. A step that won't do anything gets a ⚠ at the end of its header, its header fades, and a warning appears under its target.

Warning Means Fix
'Box' has no Canvas Group (or Graphic, RectTransform, UI Material Instance) The step type needs a component the target doesn't have Add the component, or point the step at a different object
Target Path "Iconn" matches nothing A typo, or the object was renamed or moved Fix the path. See Targets
Shader 'UI/Default' has no property '_Nope' The material's shader has no property with that name Check the name in the shader, underscore included
No Clip A Play Sound step with no sound Pick a clip
No Property picked A Custom Property step still on None Pick a property
'Score' has no TextMeshProUGUI A Custom Property step's component isn't on the target Point it at the right object, or pick the property again
TextMeshProUGUI.text is a string, but this step was set up for a float The property changed type in code since it was picked Pick it again

Everything below the warning is greyed out until it's fixed, since those fields only matter once the step can work. The fields that fix it stay editable.

In the game, a broken step is skipped with one warning in the Console, when the player starts. It never throws errors every frame, and it never animates some other object instead.

In an Animation Set, most checks need a real object, so set Preview On first. Under a player's Shared Animations, the set's steps are checked against that player.

Under the hood
  • The check follows playback's own rules exactly: the slot, then the Target Path (.. included), then the player's own object.
  • A sound whose Target Path misses is warned about but not greyed out, since it still plays, on the shared audio source.
  • Console warnings all read "who: WHAT WENT WRONG. details", naming the player, the animation and the step. Click one to find the object.

Common Problems

A new animation or step arrives with odd values

Unity's + button fills a new list entry with zeros rather than the tool's defaults. The tool patches this straight away, filling in anything still at zero, and never touching a value you've set. Two consequences:

  • Loops 0 is treated as 1. Loops means "how many times": 1 = once, 2 = twice, -1 = forever.
  • A Duration of 0 is bumped to 0.25. For something effectively instant, use 0.01, or a Set Active step.

My animation drifts a little further each time I play it

A step using Current, or with no From, carries on from wherever the value is. Use To: Baseline to land on the same place every time. See From and To.

Something flashes before it animates

A delayed step with a From only jumps to its From when its turn comes if Apply From Values Immediately is off. Turn it back on. See From and To.

Two steps on the same object fight

Two steps changing the same thing on the same object at the same time overwrite each other: two Scale steps, or a Punch Scale during a Scale. Resizing has a subtler version: don't mix whole-box and edge steps.

Animating inside a Layout Group

A Layout Group positions and sizes its children itself, and will fight position and size steps on them. Animate a child inside each item instead, or use scale, rotation and fades, which layout groups leave alone.

A shader animation does nothing

A stencil Mask above the element stops material animations from showing. Use RectMask2D. See Material and Shader Properties.

On Complete didn't fire

On Complete only runs when an animation finishes on its own. Being interrupted, stopped, or having its object turned off doesn't count. (Being interrupted by an animation set to COMPLETE REPORT does.) From code, use the onEnd version of Play to hear about every ending. See Code API.

Changes to an Animation Set don't show up while the game is running

Each player copies its set when it starts. Changes made after that reach it next time you enter play mode. See Animation Sets.

A mirrored step does nothing

It had no From, so the mirror had to guess its end. See Mirroring.

Destroying an object reports Disabled

Unity turns an object off before destroying it, and there's no way to tell in advance. See Code API.

A Custom Property works in the Editor but not in a build

IL2CPP builds with Managed Stripping above Minimal can remove a property's setter if nothing but this tool uses it. Preserve it with a link.xml. See Custom Property.

Components went missing after installing or copying the tool

If objects lost their UI Animation Player or Animation Sets lost their script, check for two copies of the tool: an old folder in Assets/ beside the package. Delete the folder. If you copied the folder by hand, its .meta files didn't come along, or came from a different copy of the tool. Script GUIDs have to match. See Installation.

Seven errors in UIAnimationStep.cs after installing

Errors like 'RectTransform' does not contain a definition for 'DOAnchorPos' mean DOTween's Setup DOTween… or Create ASMDEF hasn't been clicked in this project. See Installation.

If you change the code

Enum values are written out as explicit numbers, and those numbers are the contract. Unity saves an enum as its number, not its name. Reordering the lines in UIAnimationStepType is safe, but changing a number, or reusing an old one, silently turns every step already saved with it into a different type, with no error. New step types take the next free number.

This happened once: alphabetising the enum while its numbers were still implicit turned 16 Scale steps into Graphic Alpha steps and faded a menu to invisible. If animations suddenly "change type" or vanish, check the enum's history before blaming the asset. The fix is to remap the stored numbers, never to reorder the enum back.

Change the code in the tool's repo, not inside a project. A project gets a read-only copy from GitHub, and Unity puts it back whenever it reinstalls. Every new file and folder needs its .meta committed too: Unity ignores anything in a package that has no .meta, with no error.

⚠️ **GitHub.com Fallback** ⚠️