카드 그림을 맞추는 게임을 만들어 보겠습니다
이게임은 고도의 집중력과 기억력이 요구되는 게임입니다
먼저 인터넷에서 게임에 쓰일 배경 이미지를 모읍니다
무료 배경 이미지를 인터넷에 들어가면 많이 찾을 수 있을 것입니다
먼저 Project 뷰에서 Resources 폴더를 만듭니다
인터넷에서 다운 배경 이미지 파일을 이름을 imgBack0~5까지 순번 되로 이름을 적습니다
이름 스팰링 하나 틀리면 안 되니 주의하여야 합니다
빈 오프젝트를 생성하고 이름을 BackManager 라 하고 메인 카메라와 라이트를 자식으로 둡니다
그리고 GameObject -> 3D Object -> Plane을 하나 생성합니다
Plan의 이름을 Background1으로 하고 backManager 자식으로 둡니다
project 뷰에서 Materials 폴더를 만들고 Material을 생성합니다
Material의 이름을 back 1으로 합니다
Background1을 선택하고 스케일을 2.3 ,1, 1.2로 하고 back 1 메터리얼을 드래그하여 붙입니다
그리고 Shader 속성을 Lefacy Shaders -> Transparent -> Diffuse를 선택하고 Resources 폴더에 있는 배경 이미지를 갖다 붙입니다
Background1 오브젝트를 선택하여 Ctrl_D 키를 누르고 복사된 오브젝트를 이름을 Background2 라하고 Position y 값을 -0.5를 줍니다
Project 뷰에서 Scrips 폴더를 만들고 BackManager 스크립트를 생성합니다
BackManager 스크립트 작성
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BackManager : MonoBehaviour
{
//배경 이미지
Transform back1;
Transform back2;
//오버랩 지연 시간
int delayTime = 3;
//현재의 시간
float currentTime = 0;
//이미지 갯수
int imgCnt = 6;
//현재 이미지 번호
int imgNum = 1;
void Start()
{
//배경찾기
back1 = transform.Find("Background1");
back2 = transform.Find("Background2");
}
// Update is called once per frame
void Update()
{
//지연시간 처리
currentTime += Time.deltaTime;
if (currentTime >= delayTime)
{
currentTime = 0;
//이미지 오버랩
StartCoroutine(OverlapImage());
}
}
IEnumerator OverlapImage()
{
//이미지 알파값 설정
//이미지의 두명도는 0~1의 값이다 0은 완전 투명 , 1은 완전불투명
for (float alpha = 1; alpha >= 0; alpha -= 0.05f)
{
//배경이미지를 점점 투명하게 만든다
back1.GetComponent<Renderer>().material.color = new Vector4(1, 1, 1, alpha);
//배경이미지를 점점 불투명하게 만든다
back2.GetComponent<Renderer>().material.color = new Vector4(1, 1, 1, 1 - alpha);
//화면 갱신까지 대기
yield return new WaitForFixedUpdate();
}
//배경 바꾸기
Transform tmp = back1;
back1 = back2;
back2 = tmp;
//다음 이미지 준비
//Mathf.Repeat() 0~<한계값-1> 을 반복으로 처리하는 함수
imgNum = (int)Mathf.Repeat(++imgNum, imgCnt);
//배경2에 새로운 이미지 할당
back2.GetComponent<Renderer>().material.mainTexture = Resources.Load("imgBack" + imgNum) as Texture2D;
currentTime = 0;
}
}
BackManager 스크립트를 BackManager 오브젝트에 붙입니다
게임을 실행하면 아래 동영상과 같이 Resoceses 폴더에 들어 있는 이미지 imgBack0 ~1 순번대로 변환되는 것을 보실 수 있습니다
백그라운드 그림 이미지를 자연스럽게 바꾸는 방법을 살펴보았습니다
'게임 만들기 강좌 > 유니티 기억력 테스트 게임 만들기' 카테고리의 다른 글
유니티 게임 만들기 기억테스트 게임 만들기 6_(최종) 게임 타이틀 만들기, 게임 타임 시간 만들기, 스테이지 넘기기 등 (1) | 2020.01.28 |
---|---|
유니티 게임 만들기 기억테스트 게임 만들기 5 _게임의 상태 표시 및 스테이지 를 판정하는 AI 기능 추가 하기 및 두뇌 게임 만들기 (0) | 2020.01.26 |
유니티 게임 만들기 기억테스트 게임 만들기 4 카드 touch 처리 및 카드 섞기 (0) | 2020.01.23 |
유니티 게임 만들기 기억테스트 게임 만들기 3 카드 맵 만들기 (0) | 2020.01.23 |
유니티 게임 만들기 기억테스트 게임 만들기 2 큐브 만들고 애니메이션 주기 (0) | 2020.01.21 |