개발일지/스파르타 코딩클럽 유니티 강의

6일차 풍선 & 마우스 만들기

치치베베 2024. 3. 26. 15:17

6일차 풍선 게임 만들기.

1주차의 복습과 함께 새로운 개념도 많이 배워서

좋은 강의라고 생각한다.

 

오늘 배운 내용

  • 애니메이션 더하기
  • 마우스에 움직임 더하기
  • 네모 만들기
  • 네모 떨어지게하기, 충돌효과 주기
  • 풍선과 마우스에도 충돌효과 주기
  • gameManager 만들기
  • gameManager를 이용해서 네모 랜덤으로 나타내기
  • 네모 prefab 만들기
  • gameManager.cs 에서 네모 만들기 (찍어내기)
  • 타이머 올라가게 하기

 

새롭게 알게 된 내용

레코드를 이용해서 애니메이션 제작하기

지금까지 애니메이션은 항상 Asset에서 이미지들로 제작했었는데

레코드를 이용한 제작은 처음 해봤다

저 버튼을 누르고 원하는 시간대에서 오브젝트의 원하는 모양을 만들어두면

기억해서 애니메이션이 제작되는 방식.

 

오브젝트가 마우스를 따라가게 하기

이것도 이번에 처음 배운 부분

void Update()
{
    Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
    transform.position = new Vector3(mousePos.x, mousePos.y, 0);
}

mouse의 좌표계를 카메라 좌표계로 바꾸고, shield의 위치에 넣어준다.

*ScreenToworldPoint

 

오늘 발생한 문제

 

중요하게 생각하는 부분

역시나 게임을 관장하는 gameManager의 중요성과 역할 리마인드하기

 

1주차에도 했던 것들 복습

 

랜덤한 위치에서 생성하기

void Start()
{
    float x = Random.Range(-3.0f, 3.0f);
    float y = Random.Range(3.0f, 5.0f);

    transform.position = new Vector3(x, y, 0);
}

랜덤한 사이즈로 생성하기

void Start()
{
    float x = Random.Range(-3.0f, 3.0f);
    float y = Random.Range(3.0f, 5.0f);

    transform.position = new Vector3(x, y, 0);

    float size = Random.Range(0.5f, 1.5f);
    transform.localScale = new Vector3(size, size, 1);
}

 

반복 실행하게 하기

void Start()
{
    InvokeRepeating("makeSquare", 0.0f, 0.5f);
}

InvokeRepeating( 이 함수를 , n초 뒤에 , n초마다 ); 반복해라

네모 복제하기

public GameObject square;

void makeSquare()
{
    Instantiate(square);
}

**public GameObject square; 로 네모 받아오는것 중요

 

UI text 받고 시간 올리기

using UnityEngine.UI;

public Text timeTxt;

float alive = 0f;

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

using UnityEngine.UI;
public Text timeTxt;

로 gameManager가 UI 받아올 수 있게 하기

*alive는 숫자열이기 때문에 ToString으로 문자열로 변경해준다.

*ToString("N2")는 소수점 둘째자리까지 표기 (ex. 0.00 )

 

** 코드 전체가 아닌 구조를 기억할 것 ( 검색해서 바로 찾을 수 있게 )