TIL(70)
-
[2025_01_23] 반사 스킬 무한 루프 방지 & 관통 투사체 최적화
문제 1: 반사 데미지 무한 루프상황성기사 A가 반사 실드를 가진 상태에서 성기사 B에게 공격당하면? B가 A 공격 → A가 데미지 반사 → B가 데미지 반사 → A가 데미지 반사 → ...무한 루프 발생 → 스택 오버플로우 처음 시도한 방법들1. bool 플래그 추가csharppublic void TakeDamage(int damage, UnitBase attacker, bool canReflect = true){ if (canReflect && reflectShield != null) { attacker.TakeDamage(reflectedDamage, this, false); // 반사 비활성화 }}문제: 기존 TakeDamage 호출부를 전부 수정해야 함다른 시스템(D..
2026.01.23 -
[2026_01_22] 임원 모의 면접
오늘은 임원 모의면접을 진행하였다.간단한 기술 면접이벤트,콜백을 사용한 경험을 말해달라캔버스 최적화 측면에서 계층구조를 어떻게 설계하는지 말해달라와 인적성 면접 및 회사가 당면한 문제에 대한 질문을 받았다... 이번 모의 면접을 진행하면서 인적성 면접을 좀 더 대비해야겠다고 느꼇다.
2026.01.22 -
[2026_01_21] 지휘관 스킬 전역 이벤트 시스템
문제 상황모바일 오토배틀 게임에서 지휘관 스킬이라는 특수한 버프가 필요했다.요구사항:지휘관 스킬 활성화 시 → 모든 플레이어 유닛의 기존 버프 제거지휘관 스킬 활성화 시 → 모든 버퍼 유닛은 스킬 사용 중단지휘관 스킬 비활성화 시 → 버퍼 유닛들 스킬 재개각 유닛에게 지휘관 버프 이펙트 표시핵심 문제: 지휘관 스킬 하나의 상태 변화가 필드 위의 모든 유닛에게 영향을 미쳐야 함 이벤트 정의csharp// 지휘관 스킬 활성화 이벤트public struct ActiveBuffSkillOnEvent{ public ActiveBuffSkillOnEvent(bool _) { }}// 지휘관 스킬 비활성화 이벤트public struct ActiveBuffSkillOffEvent{ public Activ..
2026.01.21 -
[2026_01_09] 사운드 고르기...
게임에 어올리는 Sound를 수노를 이용해 생성할려고 하는데로비 BGM전투 BGM단 두 종류인데 왜이렇게 어렵고 오래걸리는지... 모르겠다...일단 뽑아서 지정 경로에 넣어놓긴 했는데... 너무 어렵다...https://suno.com/song/8bb19b1c-5fe9-46b4-a165-e276bfbdf3cd UntitledListen and make your own on Suno.suno.comhttps://suno.com/song/3883da2e-c780-44b4-8e48-16a5c77dd2d4
2026.01.09 -
[2026_01_08] 버프/디버프 적용 시 실제 적용값(appliedValue) 저장
버프/디버프 적용 시 실제 적용값(appliedValue) 저장 시스템문제 상황 csharp// 문제: Percent 버프 제거 시 값이 정확하게 복구되지 않음1. 공격력 100인 유닛에 20% 버프 적용 → 100 + (100 × 0.2) = 1202. 다른 버프로 공격력이 130이 됨3. 첫 번째 버프 제거: 130 - (130 × 0.2) = 104 (100이 되어야 함)해결 방법적용할 때 실제로 증가/감소한 델타값을 저장 csharppublic class StatusEffectData{ public float appliedValue; // 실제로 적용된 값 저장}private void AddBuffValue(StatusEffectData effect){ float delta; ..
2026.01.08 -
[2026_01_07] Unity UI Mask를 활용한 역마스크(Cutout Mask)
문제 상황튜토리얼 시스템을 구현하면서 화면 전체를 어둡게(Dimmed) 처리하되, 특정 UI만 밝게 하이라이트하여 클릭 가능하게 만들어야 했다.해결 방법1. Stencil Buffer를 활용한 Cutout Mask일반적인 Mask는 마스크 영역만 보이게 하지만, Stencil Buffer의 CompareFunction.NotEqual을 사용하여 역마스크(마스크 영역은 숨기고 나머지만 보임)를 구현했다. csharppublic class CutoutMaskUI : Image{ public override Material materialForRendering { get { Material material = new Material(base.materi..
2026.01.07