반응형
[15회차 수업내용]
1. 고양이 애니메이션 적용하기
2. 게임 사운드 적용하기
3. UI 만들기
1.1 고양이 애니메이션 (걷기/점프) 실습 단계
ㄱ. 애니메이션 클립 만들기
- 기존 ‘Cat’ 오브젝트 선택 → Animation 창 열기
- [Create New Clip…] → 새로운 애니메이션 클립 생성 (예: Cat Jump)
- 점프 스프라이트 여러 개 드래그 → Animation 창에 추가
- Loop 해제 → 점프는 반복 애니메이션 아님
ㄴ. Animator 설정
- Parameters에 다음 추가
- Trigger → Jump
- Bool → isGround
- 상태 연결
- Any State → Cat Jump 연결 // Condition: Jump Trigger
- Cat Jump → Cat Walk 연결
- Has Exit Time 끄기 (애니메이션 지연 방지)
- Condition: isGround == true
*Has Exit Time이란 :
현재 애니메이션 끝까지 재생 후 전환
컷신, 자연스러운 동작 등 애니 끝나야 할 때 사용
+ 사용 코드
using System;
using UnityEngine;
public class CatController : MonoBehaviour
{
private Rigidbody2D catRb;
private Animator catAnim;
public float jumpPower = 10f;
public bool isGround = false;
public int jumpCount = 0;
void Start()
{
catRb = GetComponent<Rigidbody2D>();
catAnim = GetComponent<Animator>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space) && jumpCount < 2)
{
catAnim.SetTrigger("Jump"); // 애니메이터에 트리거 전달 → 점프 애니메이션 실행
catAnim.SetBool("isGround", false); // 땅에 붙어있지 않음을 Animator에 전달
catRb.AddForceY(jumpPower, ForceMode2D.Impulse); // 위쪽으로 힘 주기 (순간적으로 점프)
jumpCount++; // 1씩 증가
}
}
private void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.CompareTag("Ground"))
{
catAnim.SetBool("isGround", true);
jumpCount = 0;
isGround = true;
}
}
private void OnCollisionExit2D(Collision2D other)
{
if (other.gameObject.CompareTag("Ground"))
{
isGround = false;
}
}
}
2.1 실습
방법1) hierarchy에서 - Audio -Audio Source
방법2)SoundControler로 제어
using UnityEngine;
namespace Cat
{
public class SoundManager : MonoBehaviour
{
public AudioSource audioSource;
public AudioClip bgmClip;
public AudioClip jumpClip;
void Start()
{
SetBGMSound();
}
public void SetBGMSound()
{
audioSource.clip = bgmClip; // 오디오 소스에 사운드 파일 설정
audioSource.playOnAwake = true; // 시작할 때 자동 재생
audioSource.loop = true; // 반복 기능
audioSource.volume = 0.1f; // 소리 음량
audioSource.Play(); // 시작
}
public void OnJumpSound()
{
audioSource.PlayOneShot(jumpClip); // 이벤트 사운드
}
}
}
- 네임스페이스: Cat이라는 공간 안에 정의 → 다른 스크립트와 이름 충돌 방지 (SoundManager라는건 겹칠 수 있으므로)
- audioSource : 소리 재생기(스피커 역할) → 소리를 ‘틀어주는 역할’ / 소리를 들으려면 반드시 필요함. ->유니티상에서 public Audio Source에 컴포넌트로 추가한 audiosource 끌어서 넣어줘야 함
3. 고양이 인트로 화면 (UI) 구성하기
3.1 Canvas란
Unity UI의 루트(최상위) 역할을 담당하는 UI 전용 공간
→ 모든 UI 요소는 반드시 Canvas 안에 있어야 화면에 표시됨 (자동으로 생성됨)
| Screen Space - Overlay | - 화면 위에 항상 표시- 가장 일반적- 카메라 무관 | 메뉴, HUD, 점수판 UI |
| Screen Space - Camera | - 특정 카메라 기준으로 표시- 카메라 효과 적용 가능 (원근감 등) | 3D UI 효과, 화면 왜곡 UI |
| World Space | - 3D 공간 속 오브젝트처럼 배치- 위치, 크기, 회전 가능 | 3D 월드 안의 UI, 간판, NPC 이름표 등 |
3.2 panel
: 이미지랑 같은 역할
- UI 요소들을 그룹화하고 배경을 제공하는 용도의 사각형 이미지 오브젝트
- UI 정렬, 배경 효과, 반투명 처리 등을 위해 사용
| RectTransform | 위치, 크기, 기준점(Anchor) 설정 |

반응형