드래곤 플라이트 모작 개발일지 12(메테오 날아오기 전에, 경고 애니메이션 및 보스 출현 경고 만들기)
메테오 경고 애니메이션
여태까지, 메테오는 별도의 경고 없이, 화면밖의 랜덤 위치에서 생성되어 날아오고 있었습니다.
그래서 메테오를 대비하는 것이 힘들었습니다.
그래서 메테오가 날아오는 경로를 미리 알려주는 애니메이션을 만들어 보려고 합니다.
먼저 필요한 리소스들을 준비합니다.
이렇게 위의 3개의 리소스를 활용하여, 애니메이션을 만들었습니다.
그리고 메테오가 날아오는 경고소리도 있기에, 그 소리에 맞추어서 애니메이션을 만들었습니다.
총 1초 분량의 소리입니다. 그래서 소리에 맞추어서 애니메이션도 1초로 맞추어 만들어 주었습니다.
그리고 살짝의 편법을 사용했습니다. 이러면 별도의 코드를 수정할 필요가 적어져 선택했습니다.
그래서 이 애니메이션을 미리 만들어둔 메테오 프리팹에 연결하였습니다.
그리고 경고 애니메이션의 애니메이션 이벤트를 등록하고
애니메이션이 끝나면, 대리자가 호출이 되어, meteoMove를 true로 만들고, 메테오 경고 오브젝트를 비활성화하고
메테오가 발사됩니다.
보스 출현 경고 애니메이션
이 애니메이션은 UI 상에서의 애니메이션입니다.
먼저 양 옆의 경고 라인을 움직이기 위해, 전에 만들어둔 배경 스크롤링 스크립트를 응용하여,
라인을 움직이게 만들었습니다.
AlertLineScrolling
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AlertLineScrolling : MonoBehaviour
{
private enum eType
{
Left,Right
}
[SerializeField] private eType type;
[SerializeField] private float scrollSpeed = 0.5f;
[SerializeField] private float endPosY; //전환되는 좌표
Vector3 startPos;
// Start is called before the first frame update
void Start()
{
this.startPos = this.GetComponent<RectTransform>().anchoredPosition;
}
// Update is called once per frame
void Update()
{
RectTransform rectTransform = GetComponent<RectTransform>();
if(this.type == eType.Left)
{
rectTransform.anchoredPosition = new Vector2(rectTransform.anchoredPosition.x,
rectTransform.anchoredPosition.y + scrollSpeed);
}
else if(this.type == eType.Right)
{
rectTransform.anchoredPosition = new Vector2(rectTransform.anchoredPosition.x,
rectTransform.anchoredPosition.y - scrollSpeed);
}
this.SelfComeback(rectTransform);
}
private void SelfComeback(RectTransform rect)
{
if(this.type == eType.Right)
{
if (rect.anchoredPosition.y < endPosY)
{
rect.anchoredPosition = this.startPos;
}
}
else if(this.type == eType.Left)
{
if (rect.anchoredPosition.y > endPosY)
{
rect.anchoredPosition = this.startPos;
}
}
}
}
UI상에서 움직여야 하기에, RectTransform을 사용합니다.
이렇게 옆의 라인을 움직이게 하는 것은 구현했습니다.
이제 텍스트들과 보스 실루엣을 구현해보겠습니다.
이 2가지 리소스를 통해 만들었습니다.
그리고 이 애니메이션에도 애니메이션 이벤트를 등록하고
게임 메인에서
토벌 점수가 3만점이 넘어가면, 지금 만든 경고 애니메이션이 나오고, 애니메이션이 끝나면
보스를 소환합니다. 아래는 이 결과입니다.
이렇게 경고 애니메이션들을 구현완료했습니다.