
์๋ ๊ธฐ์กด์ ๋ฐฉ๋ฒ๋๋ก๋ ์บ๋ฆญํฐ๋ฅผ ์์ง์์ ๊ตฌํํ ๋ ์ฐ๋ ๋ฐฉ๋ฒ์ด๋ค.

Input.GetAxisRaw()๋ฅผ ์ด์ฉํ์ฌ input์ ๋ฐ๊ณ moveSpeed ๊ฐ์ค์น๋ฅผ ์ ํด์ฃผ์ด ์์ง์ด๋ ๋ฐฉ๋ฒ
๋์๋ฆฌ 2.5D ํ๋ก์ ํธ ์์ ์ค 3Dํ๊ฒฝ์์ 2D์บ๋ฆญํฐ์ ์์ง์์ ์์ ๊ฐ์ด ๊ตฌํํ์์ ๋ ๋ฌธ์ (?)๊ฐ ์๊ฒผ๋ค.
InvalidOperationException: You are trying to read input using the UnityEngine.Input class but the current active input system is the new Input System package
์ฝ์์ ์ด๋ฐ ๋ฌธ๊ตฌ๊ฐ ๋จ๋ฉด์ ์๋ํ์ง ์๋ ๊ฒ์ธ๋ฐ ์๊ณ ๋ณด๋ ๋ด๊ฐ ์ฌ์ฉํ๋ ๋ฒ์ Unity6 3Dํ๋ก์ ํธ ํ๊ฒฝ์์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์๋ก์ด Input System์ด ์ค์น๋์ด์๊ณ ๊ธฐ์กด ๋ฐฉ๋ฒ์ ์ถ๊ฐ๋ฅผ ํด์ฃผ์ด ์ฌ์ฉํด์ผ ํ๋ค.(Unity6์ ์๋ก์ด input System์ด ๊ธฐ๋ณธ์ผ๋ก ์ค์น๋์ด์๋ค.)
์ฐพ์๋ณด๋ ์ฌ๋ฌ ์ฅ์ ๋ ์๊ณ ์์ผ๋ก ๋ฐ์ด์ฃผ๋ ค๋ ๋๋์ด์ด์ ์ด๋ฒ๊ธฐํ์ ์ด๊ฒ์ ๊ฒ ํด๋ณด๊ธฐ๋ก ํ๋ค.
| ํญ๋ชฉ | Input Manager (Legacy) | New Input System |
|---|---|---|
| ์ ๋ ฅ ๋ฐฉ์ | Input.GetAxis, Input.GetKey ๊ฐ์ ์ฆ์ ์
๋ ฅ ์ฝ๊ธฐ | Action ๊ธฐ๋ฐ(Move, Jump)์ผ๋ก ์ถ์ํ๋ ์ ๋ ฅ ๊ตฌ์กฐ |
| ์ง์ ๊ธฐ๊ธฐ | ํค๋ณด๋/๋ง์ฐ์ค ์ค์ฌ, ํจ๋ ์ง์์ ์ ํ์ | ํค๋ณด๋/๋ง์ฐ์ค/ํจ๋/๋ชจ๋ฐ์ผ/ํฐ์น/VR ๋ฑ ๊ด๋ฒ์ |
| ๋ฉํฐ ๋๋ฐ์ด์ค ์ฒ๋ฆฌ | ๋ณต์กํจ(์ง์ ๊ตฌํ ํ์) | ์๋ ๋๋ฐ์ด์ค ๊ฐ์ง ๋ฐ ์ ํ ์ง์ |
| ๋ฉํฐํ๋ ์ด์ด(ํ๋ ์ด์ด๋ณ ์ ๋ ฅ ๋ถ๋ฆฌ) | ๊ฑฐ์ ๋ถ๊ฐ๋ฅ์ ๊ฐ๊น์ | PlayerInput ์ปดํฌ๋ํธ๋ก ํ๋ ์ด์ด๋ณ ์๋ ๋ถ๋ฆฌ๊ฐ๋ฅ |
| ์ ๋ ฅ ์ด๋ฒคํธ ์ฒ๋ฆฌ | ํด๋ง ๋ฐฉ์๋ง ๊ฐ๋ฅ(Update์์ ๊ณ์ ์ฝ์) | ์ด๋ฒคํธ ๊ธฐ๋ฐ(started/performed/canceled) ๋๋ ํด๋ง ๋ ๋ค ๊ฐ๋ฅ |
| ์ํ ๊ธฐ๋ฐ ์ ๋ ฅ(ํ๋, ๋๋ธํญ ๋ฑ) | ์ง์ ๊ตฌํํด์ผ ํจ | Interactions(Press, Hold, Tap) ๊ธฐ๋ณธ ์ ๊ณต |
| ํ์ฅ์ฑ | ํ๊ณ๊ฐ ๋ง์ | ๋ชจ๋ํ/ํ์ฅ์ฑ ๋งค์ฐ ๋์ |
| ์ค์ ๋์ด๋ | ๋งค์ฐ ์ฌ์(์ฝ๋ ๋ช ์ค) | ์ด๊ธฐ ์ธํ ์ด ๋ณต์ก, ๋ฌ๋์ปค๋ธ ์์ |
| ๊ถ์ฅ ์ฌ์ฉ ์ฉ๋ | ๊ฐ๋จํ 2D, ์๊ท๋ชจ ๊ฒ์, 1์ธ ๊ฐ๋ฐ | ๋ฉํฐ ํ๋ซํผ, ํจ๋/๋ชจ๋ฐ์ผ ๋์ ๊ฒ์, ์ค~๋ํ ํ๋ก์ ํธ |
| Unity ๊ณต์ ์ ์ฅ | Legacy system, ๋จ์ ํ๋ก์ ํธ์์๋ง ์ฌ์ฉ ๊ถ์ฅ | Modern system, ์์ผ๋ก์ ํ์ค ๋ฐฉ์ |
ํ์คํ legacy๋ฐฉ๋ฒ์ด ๋ ์ง๊ด์ ์ด๊ธด ํ์ง๋ง ์๋ก์ด ๋ฐฉ๋ฒ์ ์ต์ํด ์ง๋๊ฒ ์ฅ๊ธฐ์ ์ผ๋ก ์ข์ ๊ฒ ๊ฐ๋ค. ์ข ์ฐพ์๋ณด๋ ๊น๊ฒ ๋ค์ด๊ฐ๋ฉด ๋ง์ ๊ณต๋ถ๊ฐ ํ์ํ ๊ฒ ๊ฐ์์ ์ด๋ฒ ํฌ์คํ ์ ๊ฐ๋จํ ์์ง์ ์ ๋๋ง ์์ฑํ ์์ ์ด๋ค.
2Dํ๋ก์ ํธ๋ก ์์ฑํ์ ๋ input system์ด ์์ ์ ์๋๋ฐ ์ด๋๋
Unity ์๋จ ๋ฉ๋ด Window -> Package Manager ->
Packages: Unity Registry -> Input System ๊ฒ์ ->
Install ๋ฒํผ ํด๋ฆญ ์์๋๋ก ์งํํ๋ฉด ๋๋ค
์ฌ์ง์ ๋์ค๋ ์บ๋ฆญํฐ๋ ํ์์ธ YHJ๋๊ป์ ์ ์ํ์ ์บ๋ฆญํฐ๋ค.

(Window -> Package Management -> Package Manager)

(Unity Registry -> Input System ๊ฒ์ -> Install)
์๋ฃ ๋์๋ค๋ฉด ์ด์ ์ค๋ธ์ ํธ ํ๋๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ Rigidbody 2D์ ์๋ก์ด C#์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค๊ณ ์ปดํฌ๋ํธ๋ก ๋ฃ์ด์ค๋ค.

์ดํ ์คํฌ๋ฆฝํธ๋ ์๋ ๊ฒ
using UnityEngine;
using UnityEngine.InputSystem;
public class Newmove : MonoBehaviour
{
public float speed = 4f;
public InputAction moveAction;
private Rigidbody2D rb;
private Vector2 input;
void Awake()
{
rb = GetComponent<Rigidbody2D>();
}
//์ค๋ธ์ ํธ ํ์ฑํ/๋นํ์ฑํ ์์ ์ ์ก์
๋ ํ์ฑํ/๋นํ์ฑํ
void OnEnable()
{
moveAction.Enable();
}
void OnDisable()
{
moveAction.Disable();
}
void Update()
{
// Move ์ก์
์ Vector2๋ก ์ฝ์ (x=์ข์ฐ, y=์ํ)
input = moveAction.ReadValue<Vector2>();
// ๋๊ฐ์ ์ด๋ ์๋ ๋ณด์
if (input.sqrMagnitude > 1f)
input.Normalize();
}
void FixedUpdate()
{
rb.linearVelocity = input * speed;
}
}
์ฌ๊ธฐ ๊ณผ์ ๊น์ง ํ๋ค๋ฉด ์ด์ ์ธ์คํํฐ ์ฐฝ์์ ํค์ธํ ์ ํด์ค๋ค
Move Action์์ ์ค์ ํฑ๋๋ฐํด๋ฅผ ๋๋ฌ์ฃผ๊ณ Control Type์ Vector 2๋ก ์ค์ ํด์ค๋ค.
์ํ๋ ์นธ์ ๋๋ธํด๋ฆญํ๋ค ๊ฒ์์ฐฝ์ ์ํ๋ ํค๋ฅผ ์ค์ ํด์ค๋ค(ํจ๋ ๋ฐ ๋ค๋ฅธ ๋๋ฐ์ด์ค ๊ฐ๋ฅ)
์คํฌ๋ฆฐ ์ท์ผ๋ก ์ด๋ํ๋๊ฒ ์ข ์ด์ํ๋ฐ ๋ค์ ํฌ์คํ ์์ ์ ๋๋ฉ์ด์ ์ถ๊ฐํด์ผ์ง...
3D์์๋ ๊ธฐ์กด ์ฝ๋์ ์กฐ๊ธ๋ง ์์ ํด์ฃผ๋ฉด ๋๋ค.
using UnityEngine;
using UnityEngine.InputSystem;
public class chmove : MonoBehaviour
{
public float moveSpeed = 4f;
Rigidbody rb;
Vector3 input;
public InputAction moveAction;
void Awake()
{
rb = GetComponent<Rigidbody>();
}
void OnEnable() => moveAction.Enable();
void OnDisable() => moveAction.Disable();
void Update()
{
// Vector3๋ก ์
๋ ฅ ์ฝ๊ธฐ
Vector3 raw = moveAction.ReadValue<Vector3>();
// x = ์ข์ฐ, z = ์๋ค
input = new Vector3(raw.x, 0f, raw.z);
// ๋๊ฐ์ ์๋ ๋ณด์
if (input.sqrMagnitude > 1f)
input.Normalize();
}
void FixedUpdate()
{
rb.velocity = input * moveSpeed;
}
}
Move Action Control Type์ Vector3๋ก ๋ฐ๊พธ๊ณ ํค์
ํ
์ ํด์ฃผ๋ฉด ๋๋ค
3D์ด๋ฏ๋ก ๋ณดํต ์๋ค๋ฅผ ๊ตฌํํ๋๊ฑด Forward์ Backward๋ก Z๊ฐ ๋ณ๊ฒฝ

์ ๋๋ฉ์ด์ ์์ ๋ YHJ๋์ด ์ ์ํ์ จ๋ค
์ ๋ํฐ ์ ์ฉ ๊ณผ์ ์ ๋ค์ ํฌ์คํ ์...