Notice
Recent Posts
Recent Comments
Link
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

김산나

[멋쟁이사자처럼부트캠프 유니티 게임 개발 7기] 2026년 1월 30일 회고록 - Input System, Particle System 본문

Unity Engine

[멋쟁이사자처럼부트캠프 유니티 게임 개발 7기] 2026년 1월 30일 회고록 - Input System, Particle System

김산나 2026. 1. 31. 00:34

2026_01_30 강의 요약본

 

 

1. Input System

 

오늘은 새로운 Input System에 대해 배웠다.

기존에는 그냥 쌩 코드로 플레이어를 움직였는데, 좀 모듈식?ㅠㅠ 으로 분리되었다.

그래서 쫌쫌따리 세팅을 해주어야 함.

(물론 프로젝트 새로 만들면 프리셋 하나 만들어줌)

 

생성한 인풋 액션 아이콘

 

 

열면 이런 창이 뜬다.

대충 원리를 보자면, 키를 지정하고 그에 맞는 로직을 연결해 주는구조.

 

 

솔직히 코딩이 더 쉬운 거 같다

이러면 코딩 안 해도 되는 거 아님? 100% 맞는 말은 아니기 때문...

 

 

아무튼 플레이어 오브젝트에 Player Input을 달아주자.

그리고 Defalt Map - Player / Behavior - Invoke Unity Events 선택.

 

오브젝트에 RigidBody를 붙인다.

 

<코드>

using UnityEngine;
using UnityEngine.InputSystem;	<<-- 이거 있어야 작동

    private Vector2 moveInput;
    private Rigidbody rb;
    
        void Start()
    {
        rb = GetComponent<Rigidbody>();
    }
    
    // PlayerInput 호출
    public void OnMove(InputAction.CallbackContext context)
    {
       moveInput = context.ReadValue<Vector2>();
    }
    
    
    // 물리 업데이트
    void FixedUpdate()	<<-- Rigid Body는 이걸 쓴다.
    {
       Vector3 move = new Vector3(moveInput.x, 0f, moveInput.y);
       rb.MovePosition(rb.position + move * speed * Time.fixedDeltaTime);
       // rb.linearVelocity에 넣는 방식도 됨
    }

 

기본 이동 코드이다.

 

이 코드를 붙이고

플레이어 인풋을 세팅한다.

 

정상 작동한다.

 

 

+ 다른 방법

 

 

C#클래스 생성, Apply하면 

이런 게 생성된다.

이걸 생성하면 이제 코드로 불러올 수 있다.

private PlayerInputActions inputActions;
private Vector2 moveInput;
private Rigidbody rb;
	
    private void Awake()
    {
        inputActions = new PlayerInputActions();
    }
    
    private void OnEnable()
    {
        inputActions.Player.Enable();
    }
    
        void FixedUpdate()
    {
       moveInput = inputActions.Player.Move.ReadValue<Vector2>();

       Vector3 move = new Vector3(moveInput.x, 0f, moveInput.y);
       rb.MovePosition(rb.position + move * speed * Time.fixedDeltaTime);
    }

 

위 코드를 이렇게 수정해도 사용할 수 있다.

 

    public void Update()
    {
        moveInput = inputActions.Player.Move.ReadValue<Vector2>();

        Vector3 move = new Vector3(moveInput.x, 0f, moveInput.y);

        transform.Translate(move * speed * Time.deltaTime);
        
        // 또는 transform.position += move * speed * Time.deltaTime;
     }

 

이렇게도 OK

 

이동 코드를 지우고 이렇게 코드를 넣으면

float moveX = moveInput.x * rotateSpeed * Time.deltaTime;
transform.Rotate(0f, moveX, 0f);

 

 

회전한다.

 

   float moveX;
   
    public void Update()
    {        
    if (moveInput.x != 0)
        moveX += moveInput.x * rotateSpeed * Time.deltaTime;
        transform.rotation = Quaternion.Euler(0f, moveX, 0f);
    }

 

이전에 배운 Quaternion을 사용하여 돌릴 수도 있다.

 

+ 따라가기

 

이번에는 따라가기를 만들어 보자.

 

 

public GameObject target;

public void Update()
    {
    	//타겟 방향으로
        transform.position = Vector3.MoveTowards(transform.position, target.transform.position, speed * Time.deltaTime);

        
    	//방향 파악
        Vector3 dir = target.transform.position - transform.position;

    	//타겟 바라보기
        Quaternion targetRotation = Quaternion.LookRotation(dir);
        transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, rotateSpeed * Time.deltaTime);
        
        }

 

타겟 오브젝트를 선언하고

Update함수에 이 코드를 작성,

 

 

타겟 오브젝트를 넣어주면

 

이렇게 된다.

 

 


 

2. Particle System

 

대부분의 VFX는 이 시스템을 이용한다.

 

먼저 Material이 있어야 한다.

 

이미지 세팅

Shader를 Alpha Blended로 세팅한다.

그럼 PNG형식 이미지가 잘 들어간 것을 볼 수 있다

Material은 Renderer에 있는 Material에 넣으면 된다.

 

속성강의

 

Start Speed 시작 속도(빨리 세팅할수록 멀리나감)

Start LifeTime  지속시간

Gravity Modifier 중력 크기

Rate over Time 파티클 생성량

발사대 설정.

Angle이 발사대의 콘 넓이

Pos, Rot, Scale 말 그대로 위치 각도 크기 조정

 

파티클 컬러 설정

상단 화살표들이 알파값, 하단이 색상 조정용이다.

 

 

파티클 주기 내 사이즈 변화

참고로 커브는 아래 숨겨져 있다. 평소엔 바닥에 딱 붙어있음.

 

 

렌더러 설정

Render Mode를 Billboard로 설정하면 어딜 보든 정면을 보여주는 거로 앎.

스트레치는 길쭉하게 등등,

 

https://notyu.tistory.com/59

 

유니티 파티클 시스템 (Particle System)- 속성

1. 유니티 파티클 시스템유니티 파티클 시스템은 작고 간단한 이미지나 메쉬를 대량으로 표현하는 데 사용하도록 만들어진 시스템이다. 파티클은 움직이도록 제어할 수도 있으며, 크기, 방향,

notyu.tistory.com

 

자세한 건 이분 내용 참고.

 

 

대충 이것저것 추가해서 이런 걸 만들었다.

 

 

===========================================================

 

새로운 인풋 시스템을 배웠다 !

파티클 시스템을 배웠다 !