# ISelfTransition

> Interface for a self transition in a StateMachine.

## Definition

* **Type:** Interface
* **Namespace:** [Unity.GraphToolkit.Editor](/engine/6000.7/script-reference/unity/graphtoolkit/editor.md)
* **Assembly:** UnityEditor

```csharp
public interface ISelfTransition : ITransition
```

## Remarks

A self transition is a [ITransition](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition.md) that is anchored on a single [IState](/engine/6000.7/script-reference/unity/graphtoolkit/editor/istate.md) rather than connecting two states, so its [ITransition.FromState](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/fromstate.md) and [ITransition.ToState](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/tostate.md) are the same state. Use this interface to distinguish a self transition from a state-to-state transition, for example `if (transition is ISelfTransition selfTransition)`. This interface is implemented by Unity and is not intended to be implemented by user code.

## Inheritance

**Inherited Members:**

* [ITransition.GetRules()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/getrules.md)
* [ITransition.GetRule(int)](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/getrule.md)
* [ITransition.AddRule()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/addrule.md#addrule\(\))
* [ITransition.AddRule(ITransitionRule)](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/addrule.md#addrule\(itransitionrule\))
* [ITransition.RemoveRule(ITransitionRule)](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/removerule.md)
* [ITransition.ID()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/id.md)
* [ITransition.FromState()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/fromstate.md)
* [ITransition.ToState()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/tostate.md)
* [ITransition.Icon()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/icon.md)
* [ITransition.FillColor()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/fillcolor.md)
* [ITransition.LineColor()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/linecolor.md)
* [ITransition.WidthOverride()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/widthoverride.md)
* [ITransition.Opacity()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/opacity.md)
* [ITransition.IsDashed()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/isdashed.md)
* [ITransition.RuleCount()](/engine/6000.7/script-reference/unity/graphtoolkit/editor/itransition/rulecount.md)
