---
description: In this section we will learn how to link layers.
---

# Linking

## Overview

The linking process is used to smoothly blend in our desired Animator Profile in runtime.&#x20;

Let's take at the linking functionality in the source code:

```csharp
public void UnlinkAnimatorProfile() { ... }
public void LinkAnimatorProfile(GameObject itemEntity) { ... }
public void LinkAnimatorProfile(FPSAnimatorProfile newProfile) { ... }
```

The system has a way to link a Game Object, if it contains the Animator Profile. This is only possible if your Game Object has an **FPSEntityComponent**:

<figure><img src="https://784345943-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxcUmJ78NSw1bSUlSO9oP%2Fuploads%2F6Z2p5ZBgXpbsLJ9R9bLF%2Fimage.png?alt=media&#x26;token=de54dc55-4763-4de7-9011-d47a9f18cb3a" alt="" width="350"><figcaption></figcaption></figure>

Then, in your controller code, you can just pass the weapon Game Object to the **LinkAnimatorProfile** method, and it will work as expected.

The **UnlinkAnimatorProfile** is used to blend out the currently active profile, which might be useful when you do not want to use the system at all.

## Code example

Let's see how we can apply the linking in practice. Here's a code snippet from the demo:

{% code title="Weapon.cs" %}
```csharp
public override void OnEquip(GameObject parent)
{
    ...
    _fpsAnimator.LinkAnimatorProfile(gameObject);
    ...
}
```
{% endcode %}

In the demo project, weapons control the equipment logic, and because our weapon has an **FPS Animator Entity** component, we can just pass the gameObject as a parameter.

It is also possible to link individual layers:

{% code title="Weapon.cs" overflow="wrap" %}
```csharp
public override void OnUnEquip()
{
    _fpsAnimator.LinkAnimatorLayer(unEquipMotion);
}
```
{% endcode %}

In this example, we play a procedural unequip animation by dynamically linking an **`unEquipMotion`**.

***

In the next section, we will learn how to integrate animation framework components with a third-party controller.
