전체 글 81

[Unity] 코드 안티데시스 보스전 리빌드하기 / 8주차

2025. 6. 26 최근 하는 마비노기 모바일이라는 게임에서 몬스터를 사냥할 때 뜨는 공격력이 치명타면, 카메라가 잠시 줌 되는 연출이 인상깊었다. 오늘은 이것을 내 프로젝트에도 적용해보려 한다이 기능을 위해 구현할 요소를 세 가지로 나눠보았다 1. 무기 데미지의 랜덤화2. 항상 표시되는 데미지 텍스트, 치명타일 경우 '치명타!' 문구가 추가적으로 나오기3. 2번에서 치명타일 경우 카메라가 잠시 줌 확대됨 우선적으로 여지껏 각 무기의 데미지를 고정했으니, 오늘은 이걸 랜덤으로 풀려고 한다.첫번째로 시도한 방법은 서두에 int Damage를 고정시키지 않고 Random.Range를 통해 복불복으로 두는 것이다여기서 => 이란?! 매 실행될 때마다 데미지가 범위 내에서 랜덤적으로 정해지는 것이다. 만약 ..

Unity 2025.07.02

[Unity] 코드: 안티데시스 보스전 리빌드하기 / 7주차

2025. 6. 19 페이즈에 따른 잡몹을 소환하던 도중 오류가 있었다가령 2페이즈 때는 5마리가 소환되어야 하는데, 4마리밖에 소환되지 않았다 하지만 소환될 때마다 효과음 들림과 카메라 흔들림은 정상적으로 작동되었다따라서 잡몹을 관리하는 풀링 스크립트과 소환 스크립트를 자세히 뜯어보았다 두 스크립트 모두 페이즈 변수에 따라 갯수를 다르게 하고 있다 그러던 중 풀링 스크립트가 혹시나 소환되고 보이지 않는걸까 싶어 테스트 해보았다이전에 풀링에서 다시 꺼내 쓰는 오브젝트와 새로 만든 오브젝트 각각 상태가 어떠한지 디버그 문구를 넣어보았다 혹시나가 역시나... 새 인스턴스는 setactive가 false라 보이지 않는 것이었다후딱 새 인스턴스는 true로 해주니, 정상적으로 5마리가 소환된 것을 볼 수 있었다..

Unity 2025.06.29

[Unity] 코드: 안티데시스 보스전 리빌드하기 / 6주차

2025. 6. 12 원본 게임에서는 보스의 방어막이 풀리고 플레이어가 공격할 때, 일정 시간이 지나면 보스에게 데미지가 가해진다이것은 플레이어 동료가 사격 지원을 도와준다는 설정이다따라서 유니티에서도 이것을 구현해보고자 한다 다른 Dialogue 스크립트처럼 보통 대사는 따로 작성하는 편인데, 이 기능은 대사 딱 한줄만 들어가므로 지원공격 기능에 합치기로 한다. 대사 스크립트도 많으면 관리하기가 번거롭다,,, 코드의 내용은 간단하다. 처음에 플레이어가 NPC에게 말을 건 뒤 일정 타이머가 끝날때 방어막이 해제된다. 이때부터 25초 뒤에 지원사격이 시작되므로 waitTime(=25f) 동안 기다려준다지원사격 대사가 출력되기 전에 총을 쏘는 효과음을 들려주고, 이후 공격이 실행될 때 한번 더 뭔가 터지는 ..

Unity 2025.06.20

[Unity] 코드: 안티데시스 보스전 리빌드하기 / 5주차

2025. 6. 5 플레이어가 NPC와 상호작용을 할 때 대사창이 보여지는 것을 구현할 것이다우선 NPC 오브젝트 하위에 대사창이 보여질 canvas와 설명문구를 넣는다canvas는 world space 기준으로 설정한다 처음엔 안보였으나 UI 깎기를 수차례 시도한 후에 보여졌다이제 여기에 이전에 사용했던 대사 스크립트를 적용할 것이다 흠... 그런데 대사 스크립트를 재사용하려고 보니 필요없이 참고된 것이 많다. 가령 bossHealth와 startGame 변수는 사용하지 않을 것이다.그렇다면 NPC대사를 위해 이 스크립트를 새로 작성하고 어느 정도 가공해야 할까? 하지만 NPC 대사 뿐만 아니라 추후 구현할 플레이어의 대사에도 이런 방식으로 구현해야 할까? 모든 대사 기능은 diaglogues 배열에 ..

Unity 2025.06.16

[Unity] 코드: 안티데시스 보스전 리빌드하기 / 4주차

2025. 5. 30 보스가 잡몹을 소환할 때 이것은 어떻게 관리할 수 있을까?반복적으로 잡몹을 생성하고 삭제하면 많은 자원이 소모될 것이다따라서 이것은 오브젝트 풀링 방법으로 관리하는 것이 좋겠다디자인 패턴으로 치면 싱글톤 패턴이다. 잡몹은 보스 주변에 생성되고, 생성될 때마다 카메라가 살짝씩 위아래로 흔들리는 연출을 더할 것이다소환될 때마다 풀에서 꺼내 위치가 초기화되고 플레이어를 따라다닌다. 이런 식으로 자유롭게 소환이 가능했으면 한다 먼저 프리팹 배열과 그것을 담을 풀 리스트를 선언한다.풀 리스트는 프리팹의 길이만큼 초기화되고, 10개의 잡몹을 만들 것이다. 또한 Get에서 현재 오브젝트가 비어있다면 풀의 인덱스로 오브젝트를 넣어준다. 이후 적 스포너 스크립트에서, 풀링 스크립트를 담은 게임 오브..

Unity 2025.06.13

[알고리즘] 1차원 DP 공식

DP 공부하다가 어떤 변수에 대해 식을 세워야 하는지 헷갈려서 정리해보았다. *1차원 DP 공식for (int i = 최대한도; i >= 비용; i--) dp[i] = max(dp[i], dp[i - 비용] + 보상); cout 이하는 적용할 수 있는 문제와 내가 푼 코드다메인 함수 시작 전 dp배열을 초기화 하는 것도 잊지 말자! 1. 백준 12865번 - 평범한 배낭: https://www.acmicpc.net/problem/12865#include #include using namespace std;int dp[100005] = {};int main(){ int N, K, W, V; cin >> N >> K; while (N--) { cin >..

Study 2025.06.09

[Unity] 코드: 안티데시스 보스전 리빌드하기 / 3주차

2025. 5. 25 하루종일 포폴이랑 자소서 다듬고 인턴십 지원 제출했다. 하얗게 불태웠다 보스전에 사용될 기계팔 잡몹을 추가하고 있다 잡몹과 보스 애니메이션을 모두 블렌드 트리로 바꾸었다 원래 게임에서 보스전은 이렇게 진행되었다. 1. 시작과 동시에 보스에게 방어막이 생기고 데미지가 들어가지 않는다.2. 동시에 잡몹이 3마리 소환되며 이 또한 데미지가 들어가지 않는다.2. NPC에게 다가가서 방어막 해킹을 도와달라 요청하고, 이 때부터 잡몹을 공격할 수 있다. 일정한 시간이 지난 후 보스의 방어막이 풀린다.3. 보스 체력이 떨어질수록 소환되는 잡몹이 많아지며 벽에 플레이어를 쏘는 포탑이 추가된다.4. 보스의 방어막이 풀릴 때마다 플레이어를 쫓아가며, 일정 시간이 지나면 플레이어 동료의 지원사격이 추가..

Unity 2025.05.29

로지텍 마우스 왼쪽 클릭 문제 해결방법

1. 마우스 클릭이 잘 안눌리는 부분을 열어2. 입술을 오므린다3. 강하게 압축 입바람을 쏴준다 2023년 7월부터 잘 사용하기 시작한 나의 로지텍 M650 L사이즈...최근 들어 갑자기 왼쪽 클릭이 헐거워졌다.큰 힘을 주어야만 클릭 입력이 되었다. 그래서 네이버 쇼핑물에서 발품 파다가 마우스 가격이 생각보다 더 비싸져 이내 마우스 분해까지 생각하며 여러 방법을 찾다가, 헛웃음이 나올 정도로 간단히 해결해서 어이없을 반 해결방법 공유 반 하는 심정으로 작성하였다. 정말 간단하다클릭이 잘 안되는 부위를 살짝 들어 후후 부는 것이다.입술을 오므려 정조준한 뒤 압축 입바람을 불어주면 된다. -도움이 되었던 글들- 로지텍 마우스 왼쪽 클릭 문제 해결1년 전부터 손목이 안 좋아져서 손목이 덜 꺾이는 로지텍 ..

주절주절 2025.05.26

[Unity] 코드: 안티데시스 보스전 리빌드하기 / 2주차

2025. 5. 16 지난 날 동안 생일 겸 알바가 겹쳤다생일 축하한다 나자신! 게임 시작 시 나오는 안내 문구를 추가하고 있다. 2025. 5. 17 알만툴에서 사용했던 효과음을 가져와서 import했다. (+무기를 휘두를 때도 효과음을 추가했다)글자가 나오는 코드, 마지막 문구까지 출력된 후 클릭을 기다리는 것 모두 코루틴으로 구현했다. 글자가 출력될 때 너무 따각따각 효과음이 나왔었는데 두 글자마다 한번씩 재생하여 해결하였다 문뜩 사소한 함수라도(ex. 클릭 기다리기) 이걸 코루틴으로 구현하면 손해가 아닐까..? yield return null;을 해야하므로..?이를 간단하게 Update로 구분할 수 있는 것이 더 좋지 않을까 궁금해진다. 가령 Update로 마우스 입력을 제어할 경우 대사창이 ..

Unity 2025.05.18