Preview
- 비주얼 스튜디오 버전 선택 방법
- Sprite Renderer
- 애니메이션 만들기
- 프레임 맞추기
- Vector3
- GetComponent()
- 좌우 이동
- 이미지 플립(좌우)
- GetMouseButtonDown()
비주얼 스튜디오 버전 선택 방법
[Edit] - [Preferences] - [External Tools] - External Script Editor 사용할 버전으로 변경
*2019에서 2022로 변경해두기!
Sprite Renderer
- 스프라이트 렌더러(Sprite Renderer) 컴포넌트는 스프라이트 를 렌더링하고 스프라이트가 2D 및 3D 프로젝트의 씬에 시각적으로 표시되는 방식을 제어
| 프로퍼티 | 기능 |
| Sprite | 컴포넌트가 렌더링할 스프라이트 텍스처를 정의. 오른쪽의 작은 점을 클릭하면 Object Picker 창이 열리며, 이용 가능한 스프라이트 에셋 리스트에서 선택. |
| Color | 스프라이트의 버텍스 컬러를 정의하여 스프라이트의 이미지에 색조를 더하거나 다른 컬러를 적용. 컬러 피커에서 렌더링된 스프라이트 텍스처의 버텍스 컬러 설정 가능. |
| Flip | 선택한 축에 있는 스프라이트 텍스처를 플립. 게임 오브젝트의 Transform 포지션은 플립되지 않음. |
| Order In Layer | 정렬 레이어 내에서 스프라이트의 렌더 우선 순위를 설정. 숫자가 낮은 스프라이트가 먼저 렌더링되고 숫자가 높은 스프라이트가 그 아래에 오버랩. |
참고 : https://docs.unity3d.com/kr/2022.3/Manual/class-SpriteRenderer.html
애니메이션 만들기
[ 멈춰 있는 이미지와 팔다리 들고 있는 이미지 2개로 걷는 애니메이션 만들기 ]
- Animation을 만들고 Loop Time true로 체크, 적용할 오브젝트에 Drag
- 오브젝트에 Animator 컴포넌트 생성된 것 확인
- 애니메이션 창에 적당한 시간 간격으로 이미지 반복 배치하고 적용
- 두 이미지가 계속 반복적으로 바뀌며 걷는 것처럼 보임

프레임 맞추기
- 프레임 : 게임 업데이트 루프의 주기, 게임 로직이 한번 반복되면 1frame
- 일반적으로 1초에 게임 로직(렌더링 제외)이 계산되는 횟수
- PC 환경에 따라 프레임이 달라지므로 프레임 고정 필요
void Start()
{
Application.targetFrameRate = 60; // 1초에 업데이트가 60번만 되도록 고정
}
Vector3
- 3D 공간에서 위치와 방향을 정의
- x(수평), y(수직), z(깊이)
- 위치(position), 방향(direction), 크기(scale)와 관련된 유용한 메서드 제공
- 자주 사용하는 값들 정적 변수로 정의됨
ex) Vector3(1, 0, 0) => Vector3.right
참고 : https://docs.unity3d.com/kr/530/ScriptReference/Vector3.html
GetComponent()
public T GetComponent();
- 오브젝트의 컴포넌트를 가져오는 함수
- 스크립트를 가지고 있는 오브젝트가 가지고 있는 컴포넌트만 불러올 수 있음(같은 Inspector 아래에 있어야함)
좌우 이동
float direction = 0.05f; // 속도 조절
void Update()
{
// 특정 조건 만족하면 방향 전환
if (특정 조건)
{
direction = -0.05f;
}
// 오른쪽으로 이동
transform.position += Vector3.right * direction;
}
이미지 플립(좌우)
SpriteRenderer renderer; // 랜더러 변수 생성
void Start()
{
renderer = GetComponent<SpriteRenderer>(); // 렌더러 컴포넌트 가져오기
}
void Update()
{
// 특정 조건을 만족하면 이미지를 좌우 반전
if (특정 조건)
{
renderer.flipX = true;
}
}
좌우 이동 전환과 플립 쉽게 하기
direction *= -1; // 이동 방향의 절대값 변경
renderer.flipX = !renderer.flipX; // 플립 여부를 현재와 반대로 변경
GetMouseButtonDown()
public static bool GetMouseButtonDown(int button);
- 프레임 당 사용자가 마우스를 눌렀는지 확인하는 함수
- 인자로 클릭된 마우스 버튼의 종류 입력 받음
- 0 : 왼쪽, 1 : 오른쪽, 2 : 가운데
void Update()
{
if (Input.GetMouseButtonDown(0))
Debug.Log("Pressed left-click.");
if (Input.GetMouseButtonDown(1))
Debug.Log("Pressed right-click.");
if (Input.GetMouseButtonDown(2))
Debug.Log("Pressed middle-click.");
}'내일배움캠프 > TIL' 카테고리의 다른 글
| [내배캠][Unity6기][TIL] 1. 빗물받는 르탄이(7~9) (0) | 2024.09.04 |
|---|---|
| [내배캠][Unity6기][TIL] 1. 빗물받는 르탄이(5~6) (0) | 2024.09.03 |
| [내배캠][Unity_6기][TIL] C# 기초 문법 리뷰, 클래스와 객체, 추가 학습 (0) | 2024.08.31 |
| [내배캠][Unity_6기][TIL] C# 연산자, 제어문, 배열, 함수 (0) | 2024.08.30 |
| [내배캠][Unity_6기][TIL] C# 데이터 다루기 (0) | 2024.08.29 |