ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2일차 기본 씬 구성 및 애니메이션 맛보기 ~
    개발일지/스파르타 코딩클럽 유니티 강의 2024. 3. 20. 15:39

    스파르타 코딩클럽에서 국비 지원으로

    유니티로 게임만들기 왕초보반 강의를 시작하였다.

     

    2일차 기본 씬 구성 및 애니메이션 맛보기

     

    5주간의 강의 코스인데 하루에 얼마나 수강하는지는 본인 마음이다.

     

    0주차 강의에서 개발일지 작성을 추천하기에 나도 써보기로 해보았다.

     

    오늘 배운 내용

    • 유니티 설치, 설정
    •  메인 씬에 게임 오브젝트 추가하기
    •  게임 오브젝트 크기, 위치, 색깔 조정법
    •  유니티에 이미지 에셋 추가 및 게임 오브젝트에 적용
    •  애니메이션 간단 제작, 게임 오브젝트에 적용
    •  VS코드 설치, 설정
    • 캐릭터에 코딩을 적용하는 법 ( start - 너는 태어날 때, update - 매 순간(프레임) 이렇게 해라 ))
    • Script 만들기
    • 캐릭터 좌우 움직임 코딩하기
    • 캐릭터가 벽에 닿으면 다른 방향 보게하기
    • 마우스 클릭 시 캐릭터 방향 바꾸기

    새롭게 알게 된 내용

     약 반년간 유니티 독학을 했었기 때문에 모두 알고있었던 사실이었지만 복습하는 기분이어서 좋았다.

    그런데 내가 지금까지 공부를 했을 때는 2 by 3 레이아웃으로 개발을 진행했던 적이 없는데

    모바일 게임 제작이라서 그런건지 처음으로 이 레이아웃을 사용해 보았다.

     

     

    오늘 발생한 문제

     캐릭터가 영상과 똑같이 했음에도 불구하고 너무 빠르게 움직였다. 그러나 이건 버그나 문제가 아닌

    컴퓨터 속도에 따른 차이라고 했다. 프레임의 차이라고 예상하긴 했는데 해결방법을 알 수 없었다.

    첫 번째 해결 방법

    게임 뷰 크기 설정에서 VSync 체크하기

     VSync를 킴으로써 Update의 프레임을 사용자의 모니터에 맞게 바꾸는 원리이다

     주의 사항으로는 이 방법은 유니티 에디터 내에서만 바뀌고, 실제 게임으로 제작했을 때는

    바뀌지 않는다.

    나에게는 이 방법이 맞지 않았다 아무래도 모니터가 144fps라서 그대로 빠른 상태였던 것 같다.

    모니터 주사율이 60fps인 분들은 이 방법이 통할 것으로 예상된다.

     

    두 번째 해결방법

    float direction = 0.05f;
    
    // Start is called before the first frame update
    void Start()
    {
        
    }
    
    // Update is called once per frame
    void Update()
    {
        // 이후 코드들은 다시 Update로!
    }
    
    void FixedUpdate()
    {
        transform.position += new Vector3(direction, 0, 0);        
    }

     

    유니티에는 Update와 달리 프레임과 상관없이 게임 내에서 흘러가는 시간에 따라서

    호출될 수 있는 FixedUpdate 라는 함수가 있다.

    다만 위 코드처럼 FixedUpdate를 적용 시에 저 함수 외에 다른 함수들은

    Update에 넣어주어야 한다. ( 이번 강의에서는 그런듯 )

     

    나는 두 번째 방법으로 해결되었다.

     

    중요하게 생각하는 부분

     if (Input.GetMouseButtonDown(0))
        {
            toward *= -1;
            direction *= -1;
        }

    마우스 왼쪽 버튼으로 화면을 클릭 시에 toward와 direction에 -1을 곱하는 코드인데

    position이 만약 0.05라면 -0.05로 만들고 -0.05라면 0.05로 만들어서 움직이는 방향을 바꾼다.

    localscale이 0.1이라면 -0.1로 만들고 -0.1이라면 0.1로 만들어서 캐릭터가 보는 방향을 바꾼다.

    말 그대로 수학을 통해서 움직임을 조정하는 것.

    복잡해지면 헷갈릴 수 있다고 생각하여 중요하다고 생각하는 부분이다.

     

     

    #유니티 프레임 조절

    #유니티 개발일지

Designed by Tistory.