학원의 유니티 수업은 유니티를 배워본 누구나 한 번씩은 다 해볼 법한 프로젝트로 진행되었습니다.플랫포머 러닝액션을 통해 오브젝트 풀링을 배우고서바이벌 슈팅 게임으로 레이캐스트와 클래스, 인터페이스 상속을 익혔습니다.그리고 간단한 리듬 게임을 만들기도 했습니다.게임을 만드는 데 익숙하지 않은 팀원들에게다음에 있을 중요한 팀과제를 위해이번 프로젝트를 복습과 연습의 기회가 되었으면 했습니다. 5. 네 개의 게임정해진 스토리를 기반으로 게임을 네 개의 챕터로 나누고 각 챕터마다 각기 다른 게임을 만들기로 하였습니다.앞서 말한 바와 같이 슈팅 게임과 리듬게임, 러닝 액션 게임과 퍼즐 게임을 기획하였고본인은 마지막 챕터의 퍼즐 게임을 제작하기로 하였습니다.Chapter 1. (보우 슈팅 게임) '더 라스트 헌트' ..
1. 시작...6월, 유니티 수업을 시작하고 1개월...두 번째 팀 작업을 시작했습니다.유니티를 처음 접하는 팀원들에겐커리큘럼은 분명 성급한 느낌이지만하루빨리 성장해야 할 시기임은 분명하기에목표를 잡고 마감 안에 반드시 완성한다는 각오로 작업하였습니다. 작업 기간은 2024.07.08 ~ 2024.07.31입니다. 시리즈로 나누어 개발 일지를 뒤늦게나마 작성합니다. 2. 주제학원의 두 번째 팀프로젝트였습니다. 첫 프로젝트 때는 모두가 처음이고 미숙하였기에체력적으로도, 특히 감정적으로도 소모가 너무 컸습니다.본인 또한 팀 작업이 처음이었고팀장이라는 자리를 맡아 책임감에 대한 압박이 너무 크다 보니일 배분에 실패하고 게임의 태반을, 거의 90%를 혼자 작업을 해버렸습니다.그러다 보니 '이게 팀 작업이라고 ..
위의 이미지에서 키보드 a 와 d 자판은 Horizontal 이라는 이름의 버튼으로 할당 되어있다.여기서 Input.GetAxis("Horizontal")를 사용하면 -1 에서 1 까지의 float 값을 반환 받을 수 있다.이것에 관한 설정은 이하의 설정을 따르는데,키가 입력되면 Sensitivity에 설정한 만큼 값이 서서히 -1이나 1에 도달한다.그러다 입력이 중단되면 Gravity에 설정한 만큼 값이 서서히 0으로 되돌아간다.그러다 Dead에 설정한 값에 도달하면 입력이 없는 것으로 한다. 사람들은 Input.GetAxis를 Horizontal이나 Vertical 과 같이 캐릭터의 조작에 사용한다. transform.position += new Vector3(Input.GetAxis("Horizo..
한 달 만에 C# 언어 기본을 마치고 드디어 유니티 수업이 시작되었다.그리고 개강 두 달째, 개인 2D 프로젝트가 시작되었다.다른 학원생들은 시중의 게임 리소스를 가져다 썼지만,나는 몇 년 전에 한 번 만들어보려다 덮어둔 게임이 생각나서직접 만들었던 리소스를 가져다 프로젝트를 진행했다. 아무래도 유명 게임들의 리소스에 비해 퀄리티가 처참하지만...내가 직접 그린 그림에 본을 심고 애니메이션까지 만들어움직이는 모습을 보니 큰 성취감을 느꼈다. 1. 기획부터?게임 개발자라면 누구나 마음속에 '나의 게임'이란 걸 생각하고 있을 것이다.취업을 위한 직업 훈련 학원에서조차 1인 개발을 하고 싶어 왔다는 사람들이 있을 정도로...;이런 기회가 아니면 언제 내 게임을 만들어 보겠는가! 게임은 옛날에 재미있게..
Unity의 Application 클래스는 애플리케이션의 여러 정보와 경로를 관리하는 데 사용됩니다. 특히 파일 시스템과 관련된 경로를 다루는 메서드와 속성을 제공합니다. 여기에는 다양한 경로 종류가 있습니다:1. Application.dataPath설명: 프로젝트의 Assets 폴더가 있는 경로입니다.사용 예시: 주로 리소스 로드나 파일 쓰기와 같은 작업에 사용됩니다.예제:csharp코드 복사string path = Application.dataPath + "/Resources/myResource.txt";2. Application.persistentDataPath설명: 애플리케이션의 영구 데이터를 저장할 수 있는 경로입니다. 이 경로는 앱의 사용자 데이터를 저장하는 데 사용됩니다.사용 예시: 사용자 ..
using System.Collections;using System.Collections.Generic;using UnityEngine;using Priority_Queue;[System.Serializable]public class Node{ public bool isWall; public Node parentNode; public int x, y; public int g, h; public int f { get { return h + g; } } public Node(bool _isWall, int _x, int _y) { isWall = _isWall; x = _x; y = _y; }}public class G..
GTA의 이걸 만들고 싶었다. 일단 이런게 필요할 거 같아서 라인 렌더러를 사용하였다. 라인렌더러는 Positions 라는 vector3 값들을 가지고 있는데 인덱스 순서대로 각 벡터 위치를 이어주는 선을 그려준다.이 값을 마우스 클릭 위치와 마우스가 드래그하여 이동한 위치로 갱신해주면 된다. using UnityEngine;public class LineDrag : MonoBehaviour{ [SerializeField] LineRenderer line; [SerializeField] float distance = 1; private void Start() { line.gameObject.SetActive(false); } void Update..
학원에서 C# 언어 공부를 마치며 개인 프로젝트를 만들게 되었다.콘솔 창에서 플레이 가능한 TEXT RPG를 만드는 것이었다.이전 과제 때 제출했던 콘솔용 포켓몬스터 게임을 더 다듬어 보기로 했다. 규정상 학원 로고를 삽입했습니다. 똑같은 프로젝트를 다시 진행하면서 특별히 추가된 것은 스프라이트 이미지이다. 콘솔 환경이므로 아스키 아트를 사용하였다. 무료 변환 사이트의 도움으로 30여 종의 텍스트 이미지를 만들고 파일을 불러와 그대로 출력했다. //콘솔 창에서 이미지를 출력할 위치와 파일명을 매개변수로 사용한다. public static void DrawImage(int cursorPosX, int cursorPosY, string fileName) { ..