Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 라즈베리파이
- 스카이트래커
- 킥스타터
- 자율비행
- 온라인
- 천체사진
- 미니적도의
- inputsystem
- 이브뉴스24
- 유니티
- 데포르메
- 게임제작
- 이브
- 리눅스
- 미타니
- C언어
- 포크스푼
- This is EVE
- 유루캠
- 번역
- 언성스토리
- 드론
- 점상
- 오브젝트이동
- centos
- DX라이브러리
- 이브온라인
- 오픈스택
- UI
- coroutine
Archives
- Today
- Total
게임개발 예제모음
이동방향에 따른 스프라이트 애니메이션 전환 (with InputSystem) 본문
2025.06.03 - [유니티 메모장] - InputSystem (RigidBody) 이동 예제
InputSystem (RigidBody) 이동 예제
2025.06.03 - [유니티 메모장] - 인풋시스템을 통한 오브젝트 이동 (ActionMap) 인풋시스템을 통한 오브젝트 이동 (ActionMap)○ 오브젝트에 Player Input 컴포넌트 추가○ Action에서 액션맵편집 (확인) 필요○
capsuleer.tistory.com
○ 위 포스트에 이어서 스프라이트 애니메이션 추가
○ 애니메이션 컨트롤러 및 각 방향에따른 스프라이트 애니메이션 작성은 완료된 상태로 상정한다
○ Animator 윈도우에서 설정
* 인풋시스템에서 입력받은 값을 전달하기위한 float파라메터 생성
* 블렌드트리 생성 (빈공간 우클릭 > Create State > From New Blend Tree)
* 생성된 블렌드트리를 기본 상태로 설정
* 생선된 블렌트트리 더블클릭하여 세부 설정
① Blend Type : 2D Simple Directional
② 방향에따른 애니메이션 지정을 위한 모션 추가
※ 어느 방향도 지정하지 않는 상태를 위한 모션까지 총 5개
③ X (양수 : 오른쪽, 음수 : 왼쪽), Y(양수 : 위, 음수 : 아래) 각 방향에 따른 애니메이션 어태치
○ 스크립트 설정
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerController : MonoBehaviour
{
[SerializeField] float moveSpeed = 3f;
Vector2 moveVector;
Rigidbody2D myRigidbody2d;
Animator myAnimator; //컴포넌트 캐싱
void Start()
{
myRigidbody2d = GetComponent<Rigidbody2D>();
myAnimator = GetComponent<Animator>(); //컴포넌트 캐싱
}
void FixedUpdate()
{
Vector2 forceVector = moveVector * moveSpeed * Time.fixedDeltaTime;
myRigidbody2d.linearVelocity = forceVector;
}
void LateUpdate() //프레임이 끝나는 부분에서 애니메이션 설정
{
if (moveVector != Vector2.zero)
//입력값이 0이 아닐경우에만 애니메이션 전환
//해당 조건이 없으면 움직임을 멈췄을 경우 기본자세로 북귀함
{
myAnimator.SetFloat("DirectionX", moveVector.x);
myAnimator.SetFloat("DirectionY", moveVector.y);
//Animator윈도우에서 설정한 파라메터 문자열을 그대로 입력
}
}
void OnFieldMove(InputValue value)
{
moveVector = value.Get<Vector2>();
}
}
'유니티 메모장' 카테고리의 다른 글
Random' is an ambiguous reference between UnityEngine Random and System Random 에러 (0) | 2025.06.03 |
---|---|
씬로드 중 이미 로드되어있는 오브젝트를 제거 (0) | 2025.06.03 |
InputSystem (RigidBody) 이동 예제 (0) | 2025.06.03 |
인풋시스템을 통한 오브젝트 이동 (ActionMap) (0) | 2025.06.03 |
키입력(InputAction) 직렬화 및 오브젝트 이동 (0) | 2025.06.03 |