Documentation index for AI agents (llms.txt) A Markdown version of every page is available: request the page's source under /docs/, follow the "alternate" link in this page's head, or start from /llms.txt.
Visual Script logo Manual

Character Controller Simple Move#

Physics 3D / Collider / Character Controller / Character Controller Simple Move

Description#

Moves the character with speed

Note

Velocity along the y-axis is ignored

Note

Speed is in units per second

Note

Gravity is automatically applied

Note

It is recommended that you make only one call per frame

Parameters#

Name Description
Character Controller The Character Controller component on a Game Object

Code#

using System;
using UnityEngine;
using VisualScript.Icons;

namespace VisualScript.Runtime
{
    [Title("Character Controller Simple Move")]
    [Image(typeof(IconCapsuleSolid), ColorTheme.Type.Lime, typeof(BadgeArrowRight))]

    [Description("Moves the character with speed")]
    [Category("Physics 3D/Collider/Character Controller/Simple Move")]

    [Parameter("Character Controller", "The Character Controller component on a Game Object")]

    [Note("Velocity along the y-axis is ignored")]
    [Note("Speed is in units per second")]
    [Note("Gravity is automatically applied")]
    [Note("It is recommended that you make only one call per frame")]

    [Serializable]
    public class InstructionCoreCharacterControllerSimpleMove : Instruction
    {
        [SerializeField] private GetGameObject m_CharacterController =
        new GetGameObject(
            new TypeGameObjectComponentCharacterController()
        );

        [SerializeField] private GetVector3 m_Speed = new GetVector3();

        protected override string GetTitle(GameObject source) => $"{this.m_CharacterController} Simple Move {this.m_Speed}";

        protected override Awaitable Run(Args args)
        {
            CharacterController controller = this.m_CharacterController.Get<CharacterController>(args);
            if (controller == null) return Done;

            Vector3 speed = this.m_Speed.Get(args);
            controller.SimpleMove(speed);

            return Done;
        }
    }
}
Visual Script logoVisual Script © Catsoft Works 2026. All rights reserved.