# MoveTo Action

This **Node** has different versions for [**Scenes**](https://docs.incari.com/incari-studio/objects-and-types/project-objects/scene) and [**Scene2Ds**](https://docs.incari.com/incari-studio/objects-and-types/project-objects/scene2d). Find in the tabs below the documentation for both versions.

{% tabs %}
{% tab title="Scene" %}
**Overview**

![The MoveTo Action Node.](https://1553081948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FU990HLHWA30dTfELtDUK%2Fuploads%2Fgit-blob-4fc000926fdad1af32acb8c9928606c570aac217%2Fmovetoactionnode20241.png?alt=media)

The **MoveTo Action Node** continuously modifies the `Position` of a [**Scene Object**](https://docs.incari.com/incari-studio/objects-and-types/scene-objects) to the values specified in `To` for a given period of time, thus creating an **Animation**.

Furthermore, visit the [**Actions Nodes**](https://docs.incari.com/incari-studio/toolbox/actions) page for a general introduction to these **Nodes**, and [**Position**](https://docs.incari.com/incari-studio/objects-and-types/attributes/common-attributes/transformation#position) for more detail about the `Position` **Attribute**.

[**Scope**](https://docs.incari.com/incari-studio/overview#scopes): **Scene**, **Function**, **Prefab**.

**Attributes**

![The MoveTo Action Node Attributes.](https://1553081948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FU990HLHWA30dTfELtDUK%2Fuploads%2Fgit-blob-2e9469f1930e67613fb0f90a3896a4a2532bc67b%2Fmovetoactionatts20241.png?alt=media)

| Attribute        | Type          | Description                                                                                                                                                                                                                                                                                                                                 |
| ---------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `To`             | **Vector3**   | The desired `Position` along the X, Y, Z axes, if none is received in the `To` **Input Socket**.                                                                                                                                                                                                                                            |
| `Duration (sec)` | **Float**     | The total time of the **Action**, if none is received in the `Duration` **Input Socket**.                                                                                                                                                                                                                                                   |
| `Interpolation`  | **Drop-down** | The `Interpolation` method to use for calculating the intermediate values of the `Position`. It can be [*Linear*](https://en.wikipedia.org/wiki/Linear_interpolation), [*Sine Ease In*](https://easings.net/#easeInSine), [*Sine Ease In Out*](https://easings.net/#easeInOutSine), or [*Sine Ease Out*](https://easings.net/#easeOutSine). |

**Inputs**

| Input         | Type           | Description                                                                                                                                                                                        |
| ------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Instance ID` | **InstanceID** | The assigned [**Instance ID**](https://docs.incari.com/incari-studio/toolbox/actions/..#instance-id) of the **Action**. If nothing is received, it automatically assigns 0 as the **Instance ID**. |
| (►) `Start`   | **Pulse**      | A standard **Input Pulse**, to trigger the execution of the **Node**.                                                                                                                              |
| `Object ID`   | **ObjectID**   | The ID of the target **Object**.                                                                                                                                                                   |
| `Duration`    | **Float**      | The total time (in seconds).                                                                                                                                                                       |
| `To`          | **Vector3**    | The desired final `Position` along the X, Y, Z axes.                                                                                                                                               |

**Outputs**

| Output        | Type           | Description                                                                                                             |
| ------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `Instance ID` | **InstanceID** | The assigned [**Instance ID**](https://docs.incari.com/incari-studio/toolbox/actions/..#instance-id) of the **Action**. |
| `OnStart` (►) | **Pulse**      | Flows to the next **Node** following **MoveTo Action** when the **Action** starts.                                      |
| `OnEnd` (►)   | **Pulse**      | Flows to the next **Node** following **MoveTo Action** when the **Action** stops.                                       |
| {% endtab %}  |                |                                                                                                                         |

{% tab title="Scene2D" %}
**Overview**

![The MoveTo Action Node.](https://1553081948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FU990HLHWA30dTfELtDUK%2Fuploads%2Fgit-blob-6e49afa7dfd708df62469f8f32df3a6bbcd471ba%2Fmovetoaction2dnode20241.png?alt=media)

The **MoveTo Action Node** continuously modifies the `Position` of an [**Scene2D Object**](https://docs.incari.com/incari-studio/objects-and-types/scene2d-objects) to the values specified in `To` for a given period of time, thus creating an **Animation**.

Furthermore, visit the [**Actions Nodes**](https://docs.incari.com/incari-studio/toolbox/actions) page for a general introduction to these **Nodes**, and [**Position**](https://docs.incari.com/incari-studio/objects-and-types/attributes/common-attributes/transformation#position) for more detail about the `Position` **Attribute**.

[**Scope**](https://docs.incari.com/incari-studio/overview#scopes): **Scene**, **Function**, **Prefab**.

**Attributes**

![The MoveTo Action Node Attributes.](https://1553081948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FU990HLHWA30dTfELtDUK%2Fuploads%2Fgit-blob-483a2b9f2d00899f917e35808e99e7b0a9a7300d%2Fmovetoaction2datts20241.png?alt=media)

| Attribute        | Type          | Description                                                                                                                                                                                                                                                                                                                                 |
| ---------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `To`             | **Vector2**   | The desired `Position` along the X and Y axes, if none is received in the `To` **Input Socket**.                                                                                                                                                                                                                                            |
| `Duration (sec)` | **Float**     | The total time of the **Action**, if none is received in the `Duration` **Input Socket**.                                                                                                                                                                                                                                                   |
| `Interpolation`  | **Drop-down** | The `Interpolation` method to use for calculating the intermediate values of the `Position`. It can be [*Linear*](https://en.wikipedia.org/wiki/Linear_interpolation), [*Sine Ease In*](https://easings.net/#easeInSine), [*Sine Ease In Out*](https://easings.net/#easeInOutSine), or [*Sine Ease Out*](https://easings.net/#easeOutSine). |

**Inputs**

| Input         | Type           | Description                                                                                                                                                                                        |
| ------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Instance ID` | **InstanceID** | The assigned [**Instance ID**](https://docs.incari.com/incari-studio/toolbox/actions/..#instance-id) of the **Action**. If nothing is received, it automatically assigns 0 as the **Instance ID**. |
| (►) `Start`   | **Pulse**      | A standard **Input Pulse**, to trigger the execution of the **Node**.                                                                                                                              |
| `Object ID`   | **ObjectID**   | The ID of the target **Object**.                                                                                                                                                                   |
| `Duration`    | **Float**      | The total time (in seconds).                                                                                                                                                                       |
| `To`          | **Vector2**    | The desired final `Position` along the X and Y axes.                                                                                                                                               |

**Outputs**

| Output        | Type           | Description                                                                                                             |
| ------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `Instance ID` | **InstanceID** | The assigned [**Instance ID**](https://docs.incari.com/incari-studio/toolbox/actions/..#instance-id) of the **Action**. |
| `OnStart` (►) | **Pulse**      | Flows to the next **Node** following **MoveTo Action** when the **Action** starts.                                      |
| `OnEnd` (►)   | **Pulse**      | Flows to the next **Node** following **MoveTo Action** when the **Action** stops.                                       |
| {% endtab %}  |                |                                                                                                                         |
| {% endtabs %} |                |                                                                                                                         |

## Example

This section shows a simple example of how to use the **MoveTo Action** **Node** and the effect it has on an **Scene Object**. This concept can be applied as well to a **Scene2D Object**.

We start by [configuring the **Scene**](#scene-configuration), then [build the **Logic**](#logic), and finally show the [result](#final-result).

### Scene Configuration

We consider a [**Scene**](https://docs.incari.com/incari-studio/objects-and-types/project-objects/scene) with two [**Objects**](https://docs.incari.com/incari-studio/objects-and-types/scene-objects): a red arc over a black background, both of which can be easily created in the [**Scene Outliner**](https://docs.incari.com/incari-studio/modules/scene-outliner). Then, we set the `Size` **Attribute** of the arc to $$(150, 150, 1)$$. See this configuration in the following image:

![Scene configuration.](https://1553081948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FU990HLHWA30dTfELtDUK%2Fuploads%2Fgit-blob-28ecac2f71f6f0fc0dc9bc621f4029aef491677e%2FExampleMoveBy_1.png?alt=media)

### Logic

We then need to configure the **Logic**. This is done in the [**Logic Editor**](https://docs.incari.com/incari-studio/modules/logic-editor).

We use the **MoveBy Action** **Node** with the following **Attributes**:

* `To`: $$(150, 150, 0)$$
* `Duration (sec)`: $$3$$
* `Interpolation`: `Linear`

And we connect to it the [**Object Node**](https://docs.incari.com/incari-studio/objects-and-types/scene-objects#objects-in-the-logic) of the red arc and a **Pulse** to the `Start` **Input Socket**. Thus, having the following **Logic** configuration:

![Logic configuration.](https://1553081948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FU990HLHWA30dTfELtDUK%2Fuploads%2Fgit-blob-37c710c96927bc198ac5e94af3a7596906842ada%2FExampleMoveTo_2.png?alt=media)

### Final result

Finally, the effect of the **ScaleTo Action** **Node** when triggered is the following:

![Final result.](https://1553081948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FU990HLHWA30dTfELtDUK%2Fuploads%2Fgit-blob-f1c9861767461261f4abf791a6c9a3f18df60d32%2FExampleMoveTo_3.gif?alt=media)

## See Also

* [**MoveBy Action**](https://docs.incari.com/incari-studio/toolbox/actions/movebyaction)

## External Links

* [*Position (geometry)*](https://en.wikipedia.org/wiki/Position_\(geometry\)) on Wikipedia.
