오늘은 약간 감기기운이 있는 관계로 무리하게 진도를 빼려고 하지않고 천천히 해나가기로 했다.
1. 기본 씬 구성
벌써 4번째 2d 프로젝트를 진행하는 것이기에 unity 내에서의 씬 구성 작업은 이젠 매우 익숙하게 할수있었다.
ui와 ui텍스트를 배치하고 카드 프리팹을 만들었다.
2. 시간 시스템
이 역시 여러번 해보았기 때문에 익숙하지만 복습을 위해 자세하게 시간을 구현하고 ui에 반영하는 방법을 설명해보겠다.
우선 게임의 전체적인 흐름은 GameManager를 통해 관리하는것이 관례이기 때문에 GameManager를 생성하고 스크립트를 생성한다.
오브젝트에 스크립트를 컴포넌트(Component)로서 넣어주고 스크립트로 넘어간다
시간을 구현하기 위해서 시간을 정의하는 함수를 선언하고, ui택스트를 불러와준다
using UnityEngine.UI; 를 추가해서 유니티 ui에접근을 가능캐 하고, 오브젝트에 반영하기 위해 'public' 문을 사용해 선언, 그리고 실수형인 float을 통해 time 함수를 선언한다.
그리고 void Update 문(프레임별로 반영하는 기능)에 시간이 흐르는 기능을 추가하고(time += Time.deltaTime; - 시간이 우리가 보통 생각하는 방식으로 흐르게한다) time 함수를 문자열로 변환해서(time.ToString("N2") - 선언해놓은 time을 float형에서 문자열인 String으로 변환한다는 뜻, 뒤에 붙은 N2는 소숫점 2자리까지 표기한다는 뜻이다.)timeTxt에 값을 부여해주면 끝
현시점 GameManager 스크립트 전문
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GameManager : MonoBehaviour
{
public Text timeTxt;
float time = 0f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
time += Time.deltaTime;
timeTxt.text = time.ToString("N2");
}
}
3. 카드 배치하기
이번에는 이전강의에서 자주 쓰던 invokeRepeating 을 쓰지않고 반복문을 사용해서 배치하겠다고 한다
for문인데, 설명하자면 다음과 같다 :
int i = 0; 으로 초기값을 선언하고 -> i가 16보다 작은지 확인한뒤 -> i에 1을 더한다
를 반복한다는 것이다. 즉 i가 16을 넘게되는 총 16번 반복한다는 뜻
그래서 16장을 생성하는것까진 좋다. 근데 이렇게만 하면 같은 장소에 카드가 16장 겹쳐서 생셩된다.
어떻게 코딩으로 16장을 4X4배열로 잘 배치시킬까??
아니 뭐..... 대충 알겠다...??! 위에서 말했듯 오늘은 컨디션이 별로 안좋기에 일단 방법론적으로만 알고 넘어가겠다.
회복한뒤에 제대로 이해하도록 하자
아무튼 아무튼 그래서 카드가 16장이 잘 배치되도록 해주었다
4. 랜덤 이미지
여기부터 내가 배우고싶었던 중요한 개념과 문장들이 등장한다.. 일단은 강의보고 따라해보고 배운 내용은 다음시간에 천천히 돌아보면서 정리해야겠다.
'게임개발 > Unity' 카테고리의 다른 글
24-08-27 마무리 및 Unity 주변기능 알아보기 上 (0) | 2024.08.27 |
---|---|
24-08-26 [르탄이 카드 뒤집기 게임 下] (7) | 2024.08.26 |
24-08-22 [고양이 밥주기 게임 下 ] (0) | 2024.08.22 |
24-08-21 [고양이 밥주기 게임 上] (1) | 2024.08.21 |
24-08-20 [풍선을 지켜라] (0) | 2024.08.20 |