Balloon Die생성
Animatinos폴더 아래의 Balloon_Idle 더블 클릭
Balloon게임 오브젝트 클릭
[Animation창이 안뜨는 경우]
Window > Animation > Animation 클릭하면 창이 뜬다.
Animation창에서 Animation 이라고 되어있는 글씨 밑에 Balloon_Idle를 클릭하고, Create New Clip을 눌러준다.
Animations폴더 선택후 이름을 Balloon_Die로 하여 생성한다.
이렇게 하면 새로운 Balloon_Die 애니메이션 창으로 연결된다.
녹화버튼을 누르고 프레임을 20정도로 옮겨준 후 아래와 같이 설정한다.
[Color] (255,0,0,125)
[Scale] x:2, Y:2
그리고 Balloon_Die의 inspector에서 Loop Time을 꺼준다.
Ballon Animator편집
Animations폴더 > Balloon더블클릭하면 아래와 같이 Animator이 켜진다.
* 이동시킬 때는 Alt를 누른 상태에서 왼쪽 마우스버튼으로 움직이면 된다.
확인해보면 Ballon_Idle이 기본적으로 실행되고 있다.
Balloon_Die로도 이동해야 하기때문에 Balloon_Idle에서 우클릭 > Make Transition > Balloon_Die에 연결해준다.
Animator의 Parameters를 클릭한 후 +버튼을 눌러준 후 Bool을 클릭, 이름을 isDie로 바꿔준다.
Balloon_Idle에서 Ballon_Die사이의 화살표를 클릭하고 Conditions의 +버튼을 눌러 isDie가 true일 때 화살표가 실행될 수 있도록 설정한다.
Has Exit Time 체크를 해제해준다. (언제든지 다음 애니메이션으로 넘어가겠다는 뜻)
Setting의 Transition Duration값을 0으로 바꿔준다.
이제 GameOver가 됐을때 Balloon_Die 애니메이션으로 이동할 수 있게끔, Gameover가 됐을 때 애니메이션을 실행해보자.
GameOver애니메이션 실행
애니메이션을 바꿔주기 위해서는 Animator에 접근을 해야한다.
-> Balloon오브젝트 Inspector의 Animator을 가져와야 한다.
GameManager Script
public Animator anim;
GameOver함수에 아래의 코드를 추가한다.
anim.SetBool("isDie", true); //키값, 내가 주고싶은 자료값
📌 트리거를 해주는 것=값을 바꿔주는 것=Transtion이 동작하게끔 해주는 기능 ->setBool
유니티로 돌아와서 GameManager오브젝트의 Anim에 Balloon오브젝트를 넣어준다.
애니메이션을 작동하는데 걸리는 시간
하지만 위코드만 작성시에 애니메이션이 작동하지 않는다. 그 이유는,
public void GameOver()
{
anim.SetBool("isDie", true); //키값, 내가 주고싶은 자료값
Time.timeScale = 0.0f;
}
GameOver()함수가 호출하고 isDie값을 true로 바꿔준 뒤 타임을 바로 0으로 만들어 버렸기 때문이다.
그래서 시간이 아예 멈춰버려 Animation도 시간이 흐르지 않는 것이다.
따라서 timeScale를 0으로 만들어주는 로직을 살짝 딜레이 시켜야 한다. -> 딜레이 함수 Invoke사용
time을 0으로 만드는 코드를 함수로 빼주고
void TimeStop()
{
Time.timeScale = 0.0f;
}
Invoke함수를 추가하여 시간 멈춤에 딜레이를 준다.
public void GameOver()
{
anim.SetBool("isDie", true);
Invoke("TimeStop", 0.05f);
}
그러면 애니메이션이 실행되고 0.5초 있다가 timeScale이 0으로 바뀐다.
이렇게 하면 장애물이 풍선에 부딪혔을 때 풍선이 터지는 듯한 애니메이션을 줄 수 있다.
결과 화면
'GameDevelop > Unity기초쌓기' 카테고리의 다른 글
[FlappyPlane] Unity 좌표계 이해하기 - 로컬좌표 vs 월드좌표 (0) | 2025.05.01 |
---|---|
[Unity] 화면밖 네모들 Destroy (0) | 2025.04.06 |
[Unity] 최고점수구현 - 데이터보관 PlayerPrefs (0) | 2025.04.06 |
[Unity] 게임종료 로직 (0) | 2025.04.06 |
[Unity] 게임 종료 판넬 만들기 (1) | 2025.04.06 |