스프라이트 이미지 슬라이스
- png 이미지의 Sprite Mode를 Multiple로 변경하고 적용
- Sprite Editor에서 Slice -> Grid by Cell Size후 적용
- 이미지 자식으로 Slice되어 들어감
Animator Blend Tree
- Idle과 Run간의 전환을 BlendTree를 통해 구현
- 애니메이터에서 블랜드 트리를 생성하고 Motion에 Idle과 Run 애니메이션 할당
- 스크립트를 통해 변수 값을 변경하여 애니메이션 전환 (Idle 0, Run 1)
Input System
- New Input System : 하나의 코드로 여러 플랫폼의 입력 환경을 지원
- Package Manager에서 Input System 설치
- Project Setting > Player > Active Input Handling을 Both로 설정하면 기존 Input Manager와 같이 사용됨
- Input Actions Asset을 추가하고 Edit Action을 클릭해 Editor창을 열어준다.
- Add Control Scheme에서 PC에서 사용할 Schema를 키보드로 생성
- Action Maps에 Player로 생성
- Actions Move로 이름 변경하고 하위에 NoBinding은 삭제
- Action Properties의 Acton Type을 Value, Control Type을 Vector2로 설정
- Up/Down/Left/Right 추가 후 각각 키 할당
- 적용할 오브젝트에 Player Input 컴포넌트 추가
- Actions에 만든 Input Asset 바인딩
- Default Scheme을 PC Default Map을 Player Behaviour를 Invoke C Sharp Events로 설정하고 스크립트에서 제어
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public class CharController : MonoBehaviour
{
private static readonly int Speed1 = Animator.StringToHash("Speed"); //애니메이터의 Speed 변수
[SerializeField] private float Speed = 5.0f;
private Vector3 cameraOffset;
Vector3 velocity = Vector3.zero;
InputAction Move_Input;
private Animator _animator;
private SpriteRenderer _spriteRenderer;
void Start()
{
_animator = GetComponent<Animator>();
_spriteRenderer = GetComponent<SpriteRenderer>();
UnityEngine.InputSystem.PlayerInput Input = GetComponent<UnityEngine.InputSystem.PlayerInput>();
Move_Input = Input.actions["Move"];
}
void Update()
{
Vector2 moveValue = Move_Input.ReadValue<Vector2>();
if (moveValue.x != 0)
{
_spriteRenderer.flipX = moveValue.x < 0; // 좌우 반전
}
_animator.SetFloat(Speed1, Mathf.Abs(moveValue.x)); // Speed 변수 변경
transform.position += new Vector3(moveValue.x * Speed, 0, 0) * Time.deltaTime;
}
}
Tile Palette
- 타일 에셋 다운로드 또는 직접 작업한 그림을 유니티에 드래그 앤 드롭
- 유니티 Hierarchy뷰 공간에 우클릭 2D Object - Tilemap - Rectangular 선택하면 자동으로 Grid와 tilemap(자식) 생성
- tilemap자식 오브젝트 선택 후 Ctrl + D 복사해서 각각 이름 변경 및 order in layer 수치 설정
- 유니티 상단 Window - 2D - Tile Palette 선택 팔레트 창 나옴
- 팔레트창에서 create new palette 눌러서 팔레트 이름 및 폴더 선택
- 팔레트 빈 공간에 Project뷰에 있는 타일 스프라이드 드래그 앤 드롭
- 팔레트에서 타일 클릭 후 맵 제작
- TIle Collider 추가하고 Used By Composite 활성화
'TIL' 카테고리의 다른 글
[멋쟁이사자처럼 부트캠프 TIL 회고] 유니티 게임개발 3기 20일차 2D게임 제작(3) (0) | 2024.12.17 |
---|---|
[멋쟁이사자처럼 부트캠프 TIL 회고] 유니티 게임개발 3기 19일차 2D게임 제작(2) (1) | 2024.12.16 |
[멋쟁이사자처럼 부트캠프 TIL 회고] 유니티 게임개발 3기 17일차 유니티 활용 (0) | 2024.12.12 |
[멋쟁이사자처럼 부트캠프 TIL 회고] 유니티 게임개발 3기 16일차 알고리즘(정렬) (0) | 2024.12.11 |
[멋쟁이사자처럼 부트캠프 TIL 회고] 유니티 게임개발 3기 15일차 자료구조(Tree) (0) | 2024.12.10 |