2023. 9. 4. 21:25ㆍ내일배움캠프 Unity
오늘 학습한 것
- 코드카타 : 정수 내림차순으로 배치하기
- 스파르타 코딩 Unity 강의를 들으며 캐릭터 이동과 플레이어의 입력을 주로 이용하는 게임의 틀을 제작
0. 코드카타 : 정수 내림차순으로 배치하기
1. 입력
2. 캐릭터 이동
3. 맵 구성
4. 충돌 처리
5. 조준 시스템
6. 공격 시스템
0. 코드카타 : 정수 내림차순으로 배치하기
이번 문제는 아무리 계속해서 풀어도 문제를 풀지 못해 다른 사람의 풀이를 참고했다.
다른 사람의 풀이는 C#에서 제공되는 함수를 사용해서 풀이했는데 나의 풀이 또한 동일한 기능을 위한 코드로 작성하였다.
다만 마지막에 answer에 xArr에 있는 정수를 1의 자리수, 2의 자리수, 3의 자리수에 하나씩 넣는 방식으로 풀이했는데 이 방법에서 코드를 잘못짠 것으로 보인다. 생각을 비우고 다시 확인 할 필요가 있다고 생각한다.
1. 입력
입력은 유니티 프로그램의 Window-Package Manager-"Input System"을 통해 확정성 있는 입력관리를 할 수 있다.
해당 프로젝트에서는 InputAction 파일을 만들고 키보드를 통해 이동을 처리하기 위한 Move, 마우스를 통해 캐릭터가
보는 곳(각도)을 구현하기 위한 Look, 캐릭터가 총, 활 등 무언가를 쏘는 무기를 사용할때 총알, 화살 등을 표현하기 위한
Fire 3가지의 Action을 만들었다.
"PlayerInputController" 스크립트를 만들어 입력이 들어왔을 때 Move, Look, Fire에 해당하는 메소드를 하나씩 제작
2. 캐릭터 이동
입력을 받아 해당하는 방향으로 이동하는 메소드. InputAction에서 설정한 값과 연계되어
w : 위, s : 아래, a : 왼쪽, d : 오른쪽의 방향값을 얻는다.
3. 맵 구성
UI - 2D - Tilemap 오브젝트를 생성하고 타일처럼 찍어낼 이미지 파일을 가져온 후 브러쉬로 사용.
(아래 최종결과물 확인)
4. 충돌 처리
맵 구성이 완료 된 후 플레이어가 맵을 벗어나지 않도록 테두리 부분에 Collider를 적용
현재 사용하진 않지만 IsTrigger가 켜짐과 꺼짐에 따라 충돌했을 때 어떤 이벤트를 발생시킬지, 인지만 할지 선택 가능
5. 조준 시스템
마우스 위치를 입력받아 Z축을 축으로 회전하는 메소드 제작. 회전한 각도가 90도가 넘어가면(마우스가 캐릭터의 반대
쪽으로 이동하면) 캐릭터를 Filp하여 앞 뒤 전환하는 것을 구현
참고 : [SerializeField]는 Unity프로그램에서 관리할 수 있도록 만드는 것으로 private임에도 public처럼 유니티 프로그램 내에서 값을 변경할 수 있다.
6. 공격 시스템
Unity 프로그램에서 화살 Prefab을 제작 후 화살 Prefab을 계속해서 생성하는 코드 작성
현재 계속해서 찍어내는 방식이지만 마우스 좌클릭을 누르면 생성하는 방식으로 변경 필요
!최종 결과물!
'내일배움캠프 Unity' 카테고리의 다른 글
내일배움캠프 (Unity_8기) TIL 20일차 (0) | 2023.09.08 |
---|---|
내일배움캠프 (Unity_8기) TIL 18일차 (0) | 2023.09.05 |
내일배움캠프 (Unity_8기) TIL 16일차 (0) | 2023.09.01 |
내일배움캠프 (Unity_8기) TIL 15일차 (0) | 2023.08.31 |
내일배움캠프 (Unity_8기) TIL 13일차 (0) | 2023.08.28 |