전체 글

반갑습니다! 개발한 프로젝트들과 공부한 내용들을 정리하여 게시하고 있습니다.
·Unity
Unity, C#의 내가 자주 사용하고 유용하다고 느낀 기능들을 정리해보았다.1. Debug.AssertDebug.Assert(조건, "메세지"); 로 이루어져 있다.앞의 조건이 False라면 오류 메세지를 표시하는 것이다.보통 예상 가능한 버그가 일어나는 것을 방지하기 위해 코드 앞에 써준다.코드 부분마다 일일이 Null체크를 할 필요 없이 앞에 Debug.Assert만 해줘도 유용하게 쓸 수 있다.그리고 또 좋은점이 Debug.Assert는 빌드 시 제외된다. 따라서 성능 면에서 좀 더 좋다.2. Conditional Attribute[Conditional("심볼값")] 으로 이루어져 있다.using System.Diagnostics; 을 써서 사용할 수 있다[Conditional(" ... ")]p..
·IOS 개발
Xcode 기본 탭 맨 왼쪽이 코드를 적는 탭중간이 앱에 어떻게 표시되는지 실시간으로 보여주는 Preview 탭맨 오른쪽이 인스펙터 탭. 각종 설정을 할 수 있다.Text()코드같은걸 클릭하고 인스펙터 탭에 들어가면 이런식으로 그 텍스트의 상세 편집을 간편하게 할 수 있는 창이 생긴다.Swift의 변수 여느 프로그래밍의 변수처럼 이렇게 변수를 따로 지정하고 Text함수에 넣어이렇게 출력할 수 있다. Swift의 변수에는 type을 따로 명시해줄 수 있다고 한다.  name 변수는 자동으로 string형식으로 타입이 지정된 상태이다.하지만 num 변수처럼 직접 콜론을 찍고 타입을 지정해줄 수도 있다. 당연하게도 변수에 타입이 다른걸 추가하면 오류가 난다. 그리고 C#처럼 Float, Double과 Boo..
·IOS 개발
맥북원래 쓰던 삼성 노트북이 고장나서 맥북 Air를 새로 사게 됐다. 게임 개발이 좀 지루해지기도 했고 앱개발도 해보고 싶었어서 새로 산 맥북으로 앱개발을 시작해보기로 했다.그 중 맥북에서만 할 수 있는 IOS 앱 개발을 해보고 싶어 SwiftUI와 Swift 공부를 시작했다.  인프런에서 Swift 무료 강의가 있길래 이걸 보고 학습해보기로 했다.  개발 환경 설정  IOS의 VS인 Xcode를 다운로드 받아준다. Xcode에서 새 프로젝트를 만들고,  IOS 앱 프로젝트를 만들었다. 깃허브에도 프로젝트 등록 완료 초반 강의를 들으며 Xcode에 익숙해지는 시간을 가졌다.  신기하다.
·C# 기초
C#의 메모리 구조는 총 4가지의 영역으로 나뉘어져 있습니다. 1. 스택(Stack) - 값 형식이 저장되는 메모리 공간이며 메소드 호출에 필요한 메모리가 저장됨2. 힙(Heap) - 참조 형식이 저장되는 메모리 공간이며 동적 할당된 메모리가 저장됨3. 데이터 영역(Data Segment) - 초기화된 또는 초기화되지 않은 정적, 전역변수가 저장됨4. 코드 영역(Code Segment) - 프로그램의 실행 코드가 저장됨       스택(Stack)스택은 값 형식이 저장되는 메모리 공간이며 지역변수, 매개변수, 리턴값 같은 메소드를 호출하는데 필요한 메모리가 저장됩니다. 특징으로는 스택 메모리는 LIFO(후입선출) 구조로, 메모리 할당과 해제가 매우 빠릅니다. 또한 보통 고정된 작은 크기를 가지고 있습니다..
기본적인 움직임을 모두 만들었으니 기본 공격과 기본 공격 애니메이션을 만들 차례이다.기본 공격은 총 세개의 콤보 형태로 만들 예정이다.만약 첫번째 공격이 끝나기 전에 한번 더 클릭하면 두번째 콤보로 이어지고 여기서 한번 더 클릭하면 마지막 콤보로 이어지는 식 먼저 플레이어의 공격을 관리하는 PlayerAttackController.cs를 만들어준다. AttackController의 역할은 Update에서 사거리 내의 가장 가까운 적을 찾고, 그것을 Target에 넣는것이다.  public TestEnemy CurrentTarget;public void SetTarget(){ int numColliders = Physics.OverlapSphereNonAlloc(transform.position, 1..
에셋들 적용도 끝났으니, 먼저 가장 중요한 플레이어에게 생명을 불어넣기 위한 작업을 진행하기로 했다. Idle, Walk, Sprint, Dodge(구르기) 총 네가지로 일단 기본적인 움직임을 구성할 예정이다. 플레이어의 움직임 구조는 FSM으로 짜기로 했다.  Input System을 다운받아 기본적인 인풋 액션들을 구성해줬다.  인풋 세팅을 클래스로 생성한 후, InputReader라는 스크립트를 새로 만들어 인풋 세팅을 상속받고 SO로 만들어 플레이어가 접근하기 편하게 설정해줬다. public class PlayerController : MonoBehaviour{ [SerializeField] private InputReader _inputReader; public InputReader ..
1학년 때 부터 만들고 싶었던 웅장하고 거창하고 간지나는 유사 AAA급 3D 액션 RPG 게임을 만들어보기로 했다.하지만 위같은 웅장한 액션 RPG게임을 만드려고 시도하다간 무조건 실패할 것 같아, 잡몹과 보스 몇개만 개발하고 전투 위주의 게임으로 완성해볼 예정이다. 사이버펑크, 아포칼립스 느낌의 분위기의 게임으로 만들 것 같다. 에셋들을 구비해놓고 개발을 시작하는 편이라 일단 에셋스토어부터 뒤져봤다.  보기부터 개쩌는 폐허 느낌의 거대한 미래도시 에셋이 반값 할인(프로젝트 시작할 당시에 할인하고 있었다.)을 하고 있어 바로 구매했다.  또한 유니티에서 무료로 제공하는 캐릭터 팩도 다운받고, 학교에서 구매해준 검 액션 애니메이션까지 다운받았다.이정도면 충분하다 싶어 프로젝트 시작.   내가 적용시키려는 ..
·Unity/졸업작품
|  졸업작품 프로젝트의 전투 시스템 설명 아군 펭귄과 적 펭귄이 싸울 때 데미지를 어떻게 주고받고, 또 그것에 따른 여러 이벤트를 어떻게 주고받는지 설명  간략하게 설명하자면, 펭귄 객체의 전투를 담당하는 컴포넌트로는 Health, EntityActionData, EntityAttackData 이렇게 세 종류가 있습니다.Health.cs 에서는 체력을 관리하고, 데미지를 입거나 기절, 넉백 등의 피해를 입는 로직을 실행합니다.EntityActionData.cs 에는 데미지를 입었을 때의 정보(데미지 입은 위치, 데미지의 타입 등)을 담습니다.EntityAttackData.cs 에서는 DamageCaster의 공격 로직들을 추상화하고, 펭귄의 공격 방식(근접인지, 원거리인지)에 따라 상속받아 그 공격 로..
입니다최원석
원석의 게임개발 블로그