-
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로 만들어서 캐릭터가 보는 방향을 바꾼다.
말 그대로 수학을 통해서 움직임을 조정하는 것.
복잡해지면 헷갈릴 수 있다고 생각하여 중요하다고 생각하는 부분이다.
#유니티 프레임 조절
#유니티 개발일지
'개발일지 > 스파르타 코딩클럽 유니티 강의' 카테고리의 다른 글
7일차 게임 끝내기 (0) 2024.03.27 6일차 풍선 & 마우스 만들기 (0) 2024.03.26 5일차 .. 2주차 시작 (0) 2024.03.25 4일차 점수 올라가게 하기 ~ 1주차 완료 (0) 2024.03.22 3일차 빗방울 코딩하기 ~ (0) 2024.03.21