Unity 17

[Unity] Awake vs. Start

유니티 생명주기 관련해서 공부하다가 잊지 않을겸 적게 되었다 유니티 생명주기 초반부는Awake → OnEnable → Start로 시작한다. (이후 FixedUpdate, OnTrigger~ OnCollision~, Update, LastUpdate로 진행된다) 더욱 자세한 내용은 공식 문서에서 확인할 수 있다 이벤트 함수 실행 순서(Execution Order of Event Functions) - Unity 매뉴얼Unity 이벤트 함수는 사전에 정해진 순서대로 실행됩니다. 실행 순서는 다음과 같습니다.docs.unity3d.com Unity에서는 상단의 체크박스로 오브젝트를 활성화/비활성화 할 수 있고하단의 체크박스로 오브젝트에 연결된 스크립트를 활성화/비활성화 할 수 있다. 이 차이로 인해 실행 ..

Unity 13:57:07

[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

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

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

Unity 2025.05.29

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

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

Unity 2025.05.18

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

CS 공부와 면접 스터디 및 코테로 취준 생활을 보내다가 유니티로 포폴을 하나 더 만들면 좋을 것 같다는 생각이 들었다. 포폴 주제를 많이 고민해보며 모작 쪽으로 방향이 잡히다가... 언뜻 내가 만들었던 게임을 유니티로 리빌드해보면 어떨까?! 싶었다. 코드: 안티데시스 Demo on SteamAn irreversible choice between brothers, endless pursuit, and hidden truths. What awaits at the end...?store.steampowered.com(이 게임 맞다 으흐흐, 홍보 겸 링크를 올려보았다) 코드 안티데시스는 RPG Maker, 유니티나 언리얼과 다르게 비주류 엔진으로 만든 것이라 일종의 사이드 프로젝트가 되었다.게임 후반부 보..

Unity 2025.05.15

[Unity] 버전 컨트롤 좌석수 줄이는 법

[Unity] 버전 컨트롤 구독 취소하는 법https://sicarope-dev.tistory.com/5 [Unity] Plastic SCM(Version Control) 해제법 프로젝트도 끝났겠다 그동안 구독했던 Plastic SCM을 연결해제하기로 했다! 처음에 SCM에 입문했을때는(올해 초만 해도) Plastic SCM이란 sicarope-dev.tistory.com (이 글에서 이어짐) 아.... 아~!!!!!! 아아아아아아아아앜!!!!!!!!!! 바보비용 시즌투! 이젠 놀랍지도 않다! 하지만 원인은 이미 알고 있었다.. 왜냐면 팀원들 때문에 프젝 좌석수를 5명까지 늘렸었음. ← 이게 원인임 결정적인 증거는 날아온 영수증에 좌석수 5명분만 청구되어 있었다. 따라서 이걸 조정해야 한다 이미 끝내버린..

Unity 2024.02.10