0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Unity】InputSystemを使った移動

Posted at

雑ですがよろしくお願いします...

今回はTransformを使います

環境

Unity6

InputActionの作成

左クリック > Create > InputActions
image.png
それぞれ+を押し設定する
image.png

MoveのActionProperties
image.png

WASDの作り方

Moveの右にある+を押すとUP~とあるのでそれ押す
自動で4個作られるのでそれぞれにPathを設定
image.png

Saveを忘れずに

コード

スクリプト名は何でもいいです
今回はPlayerBehaviorという名前で作った

using UnityEngine;
using UnityEngine.InputSystem;
using static UnityEngine.Rendering.DebugUI;
using UnityEngine.Windows;
using UnityEngine.UIElements;

public class PlayerBehavior : MonoBehaviour
{
    public float moveSpeed = 10f;
    public float deadZone = 0.2f;

    private Vector2 moveInput;

    private void FixedUpdate()
    {
        // 前方
        if (moveInput.y > deadZone || moveInput.y < -deadZone)
        {
            transform.Translate(Vector3.forward * moveInput.y * Time.deltaTime);
        }
        // 左右
        if (moveInput.x > deadZone || moveInput.x < -deadZone)
        {
            transform.Translate(Vector3.right * moveInput.x * Time.deltaTime);
        }
    }

    public void OnMove(InputAction.CallbackContext context)
    {
        moveInput = context.ReadValue<Vector2>();
    }
}

適当にオブジェクトを出して作成したスクリプトをAddする
ついでにPlayerInputもAddする
image.png

Player Inputの設定

image.png
Actionsに先ほど作成したInputを設定
BehaviorをInvokeに(InputAction.CallbackContext context使ってるときはこれ)
Noneの所に、スクリプトをアタッチしたオブジェクトを入れNoFunctionのところをOnMoveにする

OnMoveがない場合→スクリプトでOnMove関数のアクセス修飾子(publicとかprivateのやつ)がpublicになっているか確認

無題の動画 ‐ Clipchampで作成.gif

再生して確認

おわり

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?