2025/04 18

[Unity/C#] 보스 프로토타입 제작

오늘은 이전에 계속 해왔던 보스 프로토타입을 더 만들어보았다. 어제의 깃 이슈 이후 새로 받아온 플레이어와 적 몬스터의 전투 방식과 비슷하게 보이기 위해 조금 수정했고 다른 기능들도 추가해보았다. 1. 플레이어와 보스 연결 표시 및 몬스터들의 타겟 표시 변경 적 몬스터를 우클릭하면 플레이어는 정보 교환을 위한 연결이 되는데, 이 상태를 나타내주기 위해 위 사진과 같이 하늘색 선이 나오게 된다. 원래까지 내가 작업했던 것에서는 노란색 선이었고, 머리 위의 표식은 적 몬스터들이 공격 대상으로 삼고 있다는 표식인데, 이 또한 노란색이었으나 하늘색으로 변경해주었다. 2. 보스 원거리 공격 방식 변경 이제까지 만든 것에서는 보스의 색(索), 축(逐), 무(舞) 공격은 원거리 투사체를 날리는데, 이것이 원..

카테고리 없음 2025.04.29

[GitHub] 깃허브 이슈 해결 및 Lfs에 대하여

오늘은 깃허브 이슈로 인해 개발은 많이 진행하지 못했으나, 대신 두렵고 속상한 일을 겪을 수도 있는(하드리셋) 깃허브 이슈에 대해 원인이 무엇이었는지, 어떻게 해결했는지를 이야기해보려한다. 1. 문제 발생다른 브랜치에서 내가 작업하던 브랜치로 merge 받았을 때, 갑자기 깃허브 데스크탑이 먹통이 되면서 무한 Fetch origin을 하는 상황이 일어났다. 이후 깃허브를 강제 종료하고 다시 켰을 땐 브랜치로 들어가지는 것이 아니라 Publish branch 버튼이 나오고 누르면 아무 작동도 하지 않아 브랜치 안을 볼 수도, 내가 바꾼 것을 커밋할 수도 없는 상황이 되어버렸다. 2. 해결 시도팀원들에게 상황을 알리고 다른 팀원들의 로컬 컴퓨터에선 어떻게 작동하는지 물어보았는데 다른 팀원은 내가 작업하던..

카테고리 없음 2025.04.28

[Unity/C#] 전투 시 데미지, 타겟 표시 테스트

오늘은 보스와 전투하며 데미지를 입는 부분과 타겟을 표시해주는 것을 만들어보았다. 1. 적들의 타겟 표시 플레이어가 보스와 능력을 교환하면 머리 위의 타겟 표시가 보스에게로 옮겨가고 적들은 보스를 공격대상으로 간주하게 된다. 2. Hp 세팅 임시로 스크립트를 하나 만들어주어 플레이어, 보스, 적들의 체력바와 현재 체력량을 텍스트UI로 표시해주었다. 3. 플레이어의 공격 플레이어의 공격 모션을 임시로 추가해주고 몬스터들과 보스에게 데미지가 들어갈 수 있게 해주었다. 4. 보스의 공격 보스는 공격마다 자신의 공격력에 각각 다른 배율이 곱해진 데미지를 주게 된다.따라서 배율을 공격마다 정할 수 있게 해주고 그 공격을 할 때마다 배율을 설정해주었다. 오늘도 테스트용 보스 프로토타입을 더..

카테고리 없음 2025.04.25

[Unity/C#] 전투 시 능력 교환 테스트

오늘은 적 일반 몬스터들, 보스와 함께 전투할 때 능력 교환 부분에 대해서 테스트를 해보았다.테스트용 스크립트를 하나 만들어주어서 보스에게 붙여주고 테스트해보았다. 1. 혼랑과 능력 교환하면 보스 보이기 적 일반 몬스터(혼랑)은 뛰어난 감지 능력, 보스는 투명화 능력이 있다.그래서 위 사진과 같이 처음엔 보스가 보이지 않게 된다. 이때 혼랑과 능력 교환을 하면 이렇게 보스를 볼 수 있게 된다. 2. 보스와 능력 교환하면 플레이어가 투명화되고, 혼랑들이 보스 공격 3. 색(索) 공격 맞으면 혼랑들은 맵 어디에 있든 플레이어 위치 알기 4. 비기 : 해(海) 공격 맞으면 색과 같이 혼랑들이 위치를 알게 되고, 플레이어와 보스의 능력 교환 상태 풀리기 임시로 테스트하기 위해 만든 것이..

카테고리 없음 2025.04.24

[Unity/C#] Boss Behavior Tree 제작 2

오늘은 어제 못했던 비기 : 해(海) 공격과 다른 공격들에 알맞는 개수의 투사체 발사, 보스의 이동 전 대기 시간 추가 등 작업을 해보았다. 먼저 보스의 비기 : 해(海) 공격은 보스의 체력이 10% 이하가 되었을 때 일정 주기로 5번 전방으로 광범위하게 공격한다.파도, 음파 등과 비슷하게 원이 점점 범위를 넓게 진행해나가는 파장 느낌으로 구성해보았다. 축(逐) 공격과 무(舞) 공격은 각각 5개, 2개의 투사체를 발사하게 되는데, 각 공격 시 생성하는 갯수와 색을 다르게 설정할 수 있게 하고 플레이어를 따라가서 공격하도록 해주었다. 어제는 보스에게 가까이 가면 바로 보스가 뒤로 거리를 벌렸는데, 이렇게 되면 플레이어가 가까이 가서 공격을 할 수 있는 타이밍이 없기 때문에 보스가 1초..

카테고리 없음 2025.04.23

[Unity/C#] Boss Behavior Tree 제작

오늘은 보스몬스터의 Behavior Tree를 제작해보았다.첫 날이라 트리의 노드를 생성해서 붙여주고, 각 조건에서 트리를 잘 타고 들어가고 나오는지 테스트해보면서 제작하였다.(일단 보이는 것들을 위해 만든 것들이 많아서 내용이 지저분하니 팀원들 양해바랍니다.) 우리 프로젝트의 보스는 무방비 영역, 집중공격 영역, 견제 영역의 세 영역을 가지고 있고 영역에 따라 하는 공격이 다르다.공격의 종류에는 색(索), 축(逐), 무(舞), 비기 : 해(海) 4가지가 존재한다.각각 다른 쿨타임과 특성들이 존재하고 공격 속도 또한 다르다. 먼저 보스의 영역을 보기 쉽게 하기 위해 보스에 임시로 Sprite와 따라다니는 텍스트를 달아주어 현재 어느 영역에 있는지 확인하기 쉽게 해주었다. 또한 내부적으로는 플레이어..

카테고리 없음 2025.04.22

[Unity/C#] 모의면접 대비 질문 모음1

C# 문법 1. 객체란 무엇인가요? 클래스와 어떤 연관이 있나요? >> 객체란 세상에 존재하는 모든 것을 지칭하는 단어. ex) 사람, 자동차, 컴퓨터, 책 등등 모든 객체는 속성(데이터), 기능(함수)로 표현할 수 있다. 객체를 속성과 기능으로 표현하는 것을 추상화라고 한다. 클래스는 객체를 만들기 위한 청사진이라고 할 수 있다. 쉬운 예로는 자동차 설계도가 있다. 설계도는 자동차가 어떤 속성과 기능을 가져야 하는지를 결정해야 한다. 그리고 자동차의 속성과 기능 중 변경 가능한 것과 불가능한 것도 결정해야 한다. 설계도는 실체를 가지지 않지만, 공장에서 제작된 자동차는 실체가 있다. 자동차는 차량번호, 색상, 휠 사이즈 등등 다양한 속성과 주행, 정지 등등 다양한 기능을 가지게 된다. 여기서 자동차 설..

카테고리 없음 2025.04.18

[Unity/C#] 오브젝트 풀링(Object Pooling)

오늘은 오브젝트 풀링에 대해서 더 공부해보는 시간을 가졌다. 오브젝트 풀링(Object Pooling)이란 다양한 최적화 기법 중 하나로, 오브젝트의 Pool, 즉 웅덩이를 만들어놓은 후 필요할 때마다 객체를 꺼내서 사용하는 것을 말한다. 게임 내에서는 상당히 많고 다양한 여러 오브젝트들을 보여주었다가 사라지게 하는 등 효과들이 있는데, 이 때마다 오브젝트들을 실시간으로 생성하고 파괴하는 것을 반복한다면 메모리를 할당하고 해제하는 일이 계속 반복되는 것이다. 할당과 해제는 CPU가 담당하고, 유니티에서는 메모리를 해체하며 가비지 컬렉터가 발생하기 때문에 많은 오브젝트들이 파괴될 때마다 CPU에 부담이 가게 된다. 또한 오브젝트 풀의 크기를 정하는 것은 사용하려는 부분의 특성과 오브젝트 특성에 따라 달라질..

카테고리 없음 2025.04.17

[Unity/C#] 블랙보드 BlackBoard

블랙보드는 말 그대로 칠판 같은 것이다. 코드를 수정하지 않고도 모든 객체 간 적합한 변수를 찾을 수 있게 만들어졌기 때문에, 모든 public 변수를 한 곳에 모아놓고 원하는 모든 변수를 쉽게 접근하여 사용할 수 있게 된다. 더 빠르고 간편하게 반복작업도 수행할 수 있으며, 객체를 찾기 위해서 여러 곳을 헤맬 필요도 없어 편하다는 장점이 있다. 다만 잘 관리를 해주어야하고 어떤 값이 저장되어있는지 알기 어려워 실수할 수 있는 부분도 있기 때문에 주의해서 사용해야한다.

카테고리 없음 2025.04.16