유니티 입문 - TopDown (1)

2025. 5. 2. 23:28·스파르타코딩클럽_Unity개발과정


1. 파티클 시스템의 Color over Lifetime의 투명도

투명도... 없다???

 


아래쪽에 있는 위쪽을 가리키는 듯한 모양의 오각형을 클릭하면 해당 위치의 RGB 색상

 

위쪽에 있는 아래쪽을 가리키는 듯한 모양의 오각형을 클릭하면 해당 위치의 알파(투명도) 값

 

다른 색상 팔레트와는 다르게 이렇게 나뉘어져 있습니다.

 

 

2. 타일맵

2D 게임 개발에서 격자 기반 맵을 쉽게 생성하고 관리할 수 있는 기능

타일이라는 작은 조각들을 사용하여 맵을 효율적으로 구성


1) 생성 방법

Create >> 2D Object >> Tilemap >> 만들고자 하는 타일맵 형태에 맞게 선택
여기서는 평면으로 사각형 타일을 배치할 것이기에 Rectangular을 선택했습니다.

 

2) 타일 그리기

(1) 팔레트 메뉴 : 에디터 상단 메뉴 Window >> 2D >> Tile Palette

(2) 팔레트 생성 : Create New Palette로 경로, 이름을 정해서 팔레트 생성

 

(3) 사용할 스프라이트 등록

그림 그릴 때를 생각하면 됩니다. 팔레트에 사용할 물감을 짜두죠.

여기서는 물감이랑 똑같은 역할을 하는 최소 단위인 타일에 그려넣을 스프라이트들을 드래그 앤 드롭하여 등록해둡니다.

그러면 해당 스프라이트는 여러번 사용할 준비가 됩니다.

 

(4) 그리세요!

팔레트에서 격자에 배치할 스프라이트를 선택하고
씬 뷰에 마우스를 가져가면

격자에 해당 스프라이트가 배치될 때의 모양을 보여줍니다.

이때 좌클릭하면 배치!

드래그하여 해당 스프라이트를 여러 타일에 채워넣을 수도 있습니다.

 

 

3) 타일 팔레트 기능

왼쪽 버튼부터 오른쪽 순서로 설명하겠습니다

(1) 그리드 선택 (S) : 그리드, 영역을 선택하여 해당 위치의 정보를 인스펙터에서 보고 수정할 수 있습니다.

(2) 선택 영역 이동 (M) : 선택한 그리드를 이동할 수 있습니다.

(3) 브러쉬 (B) : 타일맵을 그릴 수 있습니다. 팔레트에 등록한 스프라이트를 클릭하면 자동으로 해당 버튼으로 변경됩니다.

 

브러쉬를 선택하고,

[ : 선택한 스프라이트 시계 방향으로 90도 회전,

] : 선택한 스프라이트 반시계 방향으로 90도 회전,

Shitf + ] : Y축 Flip,

Shift + [ : X축 Flip

 

(4) 사각형 브러쉬 (U) : 드래그하면 사각형 모양으로 타일맵을 그릴 수 있습니다.

 

(5) 스포이드 (I) : 스프라이트가 배치된 타일을 선택하면 해당 스프라이트를 선택한 브러쉬가 됩니다.

(6) 지우개 (D) : 배치된 타일을 지웁니다. 사용법은 브러쉬와 동일합니다.

(7) 영역 채우기 (G) : 연속된 영역을 선택한 스프라이트로 채웁니다. 그리드에 마우스를 가져다 대면 어떻게 채울지 미리 보여줍니다.


4) 콜라이더

맵을 만들다보면 지나갈 수 없어야 하는 지형들이 있습니다. 그 곳을 막아봅시다.

 

충돌 판정은? 콜라이더!

그리고 타일맵에 쓰는 콜라이더가 따로 있습니다.

 

Create >> 2D Object >> Tilemap >> Rectangular 로 생성한 타일맵 오브젝트에

TileMap Collider 2D 컴포넌트를 추가합니다.

 

팔레트에서 아무 스프라이트를 선택하고 지나갈 수 없는 영역에 그려줍니다.

해당 영역에 타일맵 콜라이더가 그려집니다.

맵 바깥으로 뚫고 나갈 수 없도록 콜라이더로 둘레를 그려주었습니다.

 

 

3. Animator.StringToHash(string animName)

Animator의 Set, Get 으로 시작하는 변수를 설정하거나 가져오는 메서드들은

함수 오버로딩을 이용해 다른 매개변수로도 호출할 수 있게끔 해두었습니다.

 

string Name >> 파라미터 이름

int id >> 파라미터 id

 

애니메이터 탭에 들어가 보면 애니메이션 전환 조건을 설정하기 위한 파라미터들을 등록할 수 있습니다.

 

여기서 등록한 파라미터의 이름 확인이 가능한데,

해당 파라미터들의 이름에 대응하는 정수형 id도 있습니다.

 

문자열을 비교보다 정수를 비교하는 쪽이 성능, 속도면에서 더 좋습니다.

 

애니메이션 전환은 특히나 게임 도중 자주 호출할 내용인데

id를 사용하는 방법을 취하면 더 많은 리소스를 절감할 수 있을 것입니다.

하지만 파라미터들의 id는 바로 확인할 수 없기에

파라미터 이름을 통해 애니메이터 내부에서 사용하는 id를 가져오는 메서드를 만들어 두었습니다.

 

using UnityEngine;

public class AnimationHandler : MonoBehaviour
{
    // 문자열 비교보다 숫자 비교가 빠르다!
    // 그래서 애니메이션 파라미터 이름을 해당 애니메이션에서 쓰는 파라미터들의 id로 변경 >> StringToHash
    static readonly int IsMoving = Animator.StringToHash("isMove");
    static readonly int IsDamage = Animator.StringToHash("isDamage");

    protected Animator animator;

    protected virtual void Awake() => animator = GetComponentInChildren<Animator>();

    public void Move(Vector2 dir) => animator.SetBool(IsMoving, dir.magnitude > .5f);
    public void Damage() => animator.SetBool(IsDamage, true);
    public void InvincibilityEnd() => animator.SetBool(IsDamage, false);
}

이름을 id로 바꿔서 1번 기억해놓은 이후부터는

애니메이터 파라미터에 대한 Set, Get 함수의 매개변수 이름을 쓰는 부분에 구한 id를 넣어주면 똑같이 사용할 수 있습니다.

 

 

저작자표시 비영리 동일조건 (새창열림)

'스파르타코딩클럽_Unity개발과정' 카테고리의 다른 글

4주차 개인 과제 트러블 슈팅 내용  (1) 2025.05.07
유니티 입문 - TopDown (2)  (0) 2025.05.05
유니티 입문 강의 - The Stack  (1) 2025.05.01
유니티 기본 강의 - FlappyPlane  (0) 2025.04.29
3주차 팀 프로젝트(텍스트 턴제 RPG) - 발표일  (0) 2025.04.28
'스파르타코딩클럽_Unity개발과정' 카테고리의 다른 글
  • 4주차 개인 과제 트러블 슈팅 내용
  • 유니티 입문 - TopDown (2)
  • 유니티 입문 강의 - The Stack
  • 유니티 기본 강의 - FlappyPlane
ybbro
ybbro
대부분의 포스팅은 pc에서 작성되었습니다. 모바일에서 볼 때 설명이 잘리면 데스크탑 모드를 사용해보길 바랍니다.
  • ybbro
    어떻게든 굴리는 게임 공방
    ybbro
  • 전체
    오늘
    어제
    • 전체 N
      • 스파르타코딩클럽_Unity개발과정 N
      • Unity 2D
        • 카드게임
        • 플랫포머 게임
        • 뱀서라이크
      • Unity 3D
        • 닷지
        • 유니티 짱
        • 디펜스 게임
      • Unity 에러 노트
      • 기능 구현 방법 정리
      • 셰이더 그래프
        • 2D
        • 3D
      • 프로그래머스
      • 자료구조
      • 기타
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    잔상
    UI
    unity
    갤럭시 S24
    룰렛
    hello
    무료스킨
    스파인
    삭제
    세이브
    다크모드
    직렬화
    앱이 휴대전화와 호환되지 않아 설치되지 않았습니다
    텍스트매시프로
    유니티
    64비트
    유니티 애니메이터 파라미터 초기화
    대시
    sprite mask
    마스크
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
ybbro
유니티 입문 - TopDown (1)
상단으로

티스토리툴바