[TIL] Unity - day 7

뭉크의 개발·2023년 7월 27일
0

Unity - Pre-Camp

목록 보기
3/9
post-thumbnail

🐧 들어가기 앞서

3주차 숙제를 완료하기!


🐧 오늘 배운 것

4, 5주차 강의 수강!

🃏 4주차

카드 뒤집기 게임 제작!

게임을 승리하는 조건을 가진 로직을 제작한다.

  • 구현 순서
  1. 기본 씬 구성하기 - 배경, 타이머, 리소스 받아두기
  2. 시간 보내기
  3. 카드 깔기
  4. 카드 뒤집기 애니메이션 만들기
  5. 같은 카드를 뒤집었을 때 없애기

🎉 5주차

카드 뒤집기 게임 +

  1. 시작화면 만들기
  2. 스플래시 이미지 만들기
  3. 소리& 배경음악 넣기
  4. 빌드하기
  5. 광고 붙이기

🐧 기억할 것

🃏 4주차

Image Size 조절 방법

  1. Main Camera - Size 조절

  2. Image - Pixels Per Unit 조절

Pixels Per Unit 클 수록, 화면에는 작게 표현!

Pixels Per Unit 작을수록, 화면에 크게 표현!

Canvas - Render Mode

World Space 설정 시, UI 레벨을 GameObject와 레벨 동일화

Rect Tranform - Width, Height, Scale x,y

화면의 이미지는

Width X Scale x
Height X Scale y

조절 가능!

Time 설정

gameManager.cs

public Text timeTxt;
    float time;
    
void Update()
    {
        time += Time.deltaTime;
        timeTxt.text = time.ToString("N2");
    }
}

오브젝트 생성 경로 설정

gameManager.cs

GameObject newCard = Instantiate(card); //Instantiate 된 card를 수정할 수 있게 오브젝트화
            //newCard를 cards로 이동.
            newCard.transform.parent = GameObject.Find("cards").transform; 

카드 4x4 배열화

1.4f는 생성 위치

i = 1~16
x는 i/4,

(0,1,2,3), (0+4,1+4,2+4,3+4), (0+8,1+8,2+8,3+8) (0+12,1+12,2+12,3+12)

y는 i%4

1,2,3,4
gameManager.cs

 newCard.transform.position = new Vector3((i%4) * 1.4f , (i/4) * 1.4f , 0);

리스트 정렬 - OrderBy

gamaManager.cs

int[] rtans = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 };
        rtans = rtans.OrderBy(item => Random.Range(-1.0f, 1.0f)).ToArray();
        //item을 랜덤한 순서로 정렬.

이미지 꺼내기.

Images폴더가 아닌,

Resources 폴더를 생성한 뒤

이미지 or 파일을 코드로 지정해 작업.

//rtanName은 rtan에 i추가,
string rtanName = "rtan" + rtans[i].ToString();

//newCard의 front에서 sprite 이미지를 rtanName으로 변경
newCard.transform.Find("front").GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>(rtanName); 


🎉 5주차

Splash Images

게임 시작 전, 로고를 삽입할 수 있다!

Edit -> Projects Settings -> Player -> Splash Image

Images - Mesh Type

Tight - 여백 다 날림.
로고는 보통 Full Rect!

audio

clip은 mp3파일,
source는 오디오를 사용하는 오브젝트

  • audioManager.cs
public AudioClip bgmusic;
public AudioSource audioSource;
    
void Start()
    {
        //계속 음악 실행
        audioSource.clip = bgmusic;
        audioSource.Play();
    }

Android Build

세로 모드 고정

Edit -> Project Settings -> Player -> Android settings -> Resolution and Presentation -> LandScape Right, Left 체크 해제!


🐧 Homeworks

🐈🐕‍3주차

  • pirateCat 제작하기.
  1. cat.cs
    void Update()
    {
        if (energy < full)
        {
            if(type == 0)
            {
                transform.position += new Vector3(0.0f, -0.05f, 0.0f);
            }
            else if(type == 1)
            {
                transform.position += new Vector3(0.0f, -0.03f, 0.0f);
            }
            else if(type == 2)
            {
                transform.position += new Vector3(0.0f, -0.1f, 0.0f);
            }
  1. gameManager.cs 레벨 조정
public GameObject pirateCat;

void makeCat()
    {
        Instantiate(normalCat);
        if (level == 1)
        {
            float p = Random.Range(0, 10);
            if (p < 2) Instantiate(normalCat);
        }
        else if (level == 2)
        {
            float p = Random.Range(0, 10);
            if (p < 5) Instantiate(normalCat);
        }
        else if (level == 3)
        {
            float p = Random.Range(0, 10);
            if(p < 6) Instantiate(normalCat);
            Instantiate(fatCat);
        }
        else if (level >= 4)
        {
            float p = Random.Range(0, 10);
            if (p < 5) Instantiate(normalCat);

            Instantiate(fatCat);
            Instantiate(pirateCat);
        }
    }

🃏 4주차

30초가 지나면, 게임을 끝내는 과제다.

gameManager.cs

void Update()
    {
        time += Time.deltaTime;
        timeTxt.text = time.ToString("N2");

        if(time > 30.0f)
        {
            endTxt.SetActive(true);
            Time.timeScale = 0.0f;
        }
    }



0개의 댓글