ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 )

     

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

Designed by Tistory.