ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 10일차 고양이 밥주기 게임
    개발일지/스파르타 코딩클럽 유니티 강의 2024. 4. 1. 16:17

    드디어 3주차를 시작했다.

    4월 15일 본 캠프 시작 전까지 끝내려면

    조금 더 속도를 내야할 것 같다

     

    오늘 배운 내용

    • 기본 세팅하기 & 배경 만들기
    • 이미지 에셋에 넣기
    • 오브젝트 배치하기
    • 시작씬 구성하기
    • 씬 넘어가기
    • 밥 만들어두기
    • 밥 복사해서 쏘기
    • 밥 없어지게 하기
    • 강아지 마우스 위치로 움직이게 하기

    새롭게 알게 된 내용

     

    오늘 발생한 문제

    강아지가 계속 움직인다

     void Update()
        {
            Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            float x = mousePos.x;
            if (x > 8.5f)
            {
              x = 8.5f;
            }
            if (x < -8.5f)
            {
              x = -8.5f;
            }
            transform.position = new Vector3(x, transform.position.y, 0);
        }

    강아지가 화면 밖으로 나가는 걸 방지하기 위해 코드를 짰는데

    제대로 작동하지 않았다.

    살펴본 결과 맨 아랫줄

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

    여기서 x가 mousePos.x로 되어있었다.

     

    중요하게 생각하는 부분

     

    씬 넘어가기

    씬을 넘기는 방법은 씬을 다시 시작하는것과 동일하다

    씬의 이름만 바꿔주면 된다.

    using UnityEngine.SceneManagement;
    
    public void GameStart()
    {
        SceneManager.LoadScene("MainScene");
    }

     

    오브젝트 무조건 위로 직진하게 하기

    void Update()
    {
        transform.position += new Vector3(0.0f, 0.5f, 0.0f);
    }

     

    Quaternion.identity

    public GameObject food;
    public GameObject dog;
    
    void Start()
    {
        InvokeRepeating("makeFood", 0.0f, 0.2f);
    }
    
    void makeFood()
    {
        float x = dog.transform.position.x;
        float y = dog.transform.position.y + 2.0f;
        Instantiate(food, new Vector3(x,y,0), Quaternion.identity);
    }

    보다시피 0.2초마다 강아지의 위치에서 밥을 쏘는 코드이다

    여기서 Instantiate 함수를 보면 Quaternion.identity라는게 있는데

    이는 '회전이 없다' 는 뜻이다 우리는 2D 게임을 제작중이기에

    z값을 넣기는 하는데 회전하지 않게 그냥 항상 넣는 느낌이라고 보면 된다고 한다.

     

    ***강아지가 마우스 위치 따라가게 하기***(x좌표만)

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

    저번시간에도 배운 내용이지만 매우 중요한 내용

     

     

     

    3주차도 역시나 1주차와 2주차의 복습에

    조금씩의 새로운 내용이 추가되었다.

    복습을 계속해서 하는 방식이 마음에 든다.

Designed by Tistory.