유니티 썸네일형 리스트형 TIL(Today I Learned) - 49 📘 오늘의 TIL (Today I Learned)ScriptableObject를 활용한 데이터 관리SkillSO, WeaponDataSO, AccessoryDataSO와 같은 아이템 데이터를 ScriptableObject로 관리하면, 데이터의 재사용성과 유지보수성이 높아진다.공통 속성은 BaseItemSO로 추출하여 상속 구조를 통해 효율적으로 관리할 수 있다.Resources.Load의 사용법과 대안Resources.Load를 통해 런타임에 ScriptableObject를 로드하려면 반드시 Resources 폴더에 해당 파일이 위치해야 한다.하지만 유지보수와 최적화를 위해 ScriptableObject 데이터베이스를 활용하거나 Unity Addressables를 사용하는 것이 더 나은 대안이다.인벤토.. 더보기 TIL(Today I Learned) - 48 오늘의 TIL (Today I Learned)스킬 시스템 구조 개선SkillManager와 PlayerSkill 간 역할을 명확히 분리하여, SkillManager는 스킬 실행을 총괄하고 PlayerSkill은 스킬 실행 로직을 담당하도록 설계.TriggerSkill을 통해 스킬 타입(Active, Buff, Passive)에 따른 적절한 메서드를 호출.패시브 스킬 동작 방식전투 시작 시 자동으로 발동하며, 쿨다운이 끝나면 다시 발동.buffDuration 동안 효과가 유지되며, 종료 시 원래 상태로 복구.isBuffActive를 활용하여 중복 발동을 방지.유연한 스킬 관리List를 활용하여 스킬 데이터(ScriptableObject) 기반으로 동작.cooldownTimers와 isBuffActive 배.. 더보기 TIL(Today I Learned) - 47 오늘의 TIL (Today I Learned):SkillSO와 ScriptableObject:ScriptableObject는 데이터 중심의 설계에 적합하며, 게임 내 스킬이나 아이템 데이터를 관리하는 데 매우 유용하다.스킬 실행 로직은 SkillSO가 아닌 별도의 매니저 클래스에서 처리하는 것이 더 역할 분리가 잘 된다.스킬 시스템 설계:스킬 쿨다운과 실행 로직을 PlayerSkill에서 관리하고, 실제 효과를 SkillManager로 분리하여 구현하면 유지보수와 확장성이 높아진다.SkillSO는 스킬의 이름, 설명, 쿨다운, 마나 소모량, 데미지 등 데이터를 저장하고, 실행 로직은 포함하지 않는 것이 적합하다.싱글톤 패턴 활용:SkillManager를 싱글톤으로 설계하여 게임 내 어디서든 스킬 실행 로.. 더보기 TIL(Today I Learned) - 45 GPT도 쓰지말자........ 더보기 TIL(Today I Learned) - 44 📚 오늘의 TILUnity의 SoundManager 구조 설계BGM과 효과음을 분리하여 AudioSource 두 개를 활용하는 방식으로 구현.PlayBackgroundMusic 메서드를 사용해 씬 전환 시 자동으로 BGM을 변경.PlaySound로 버튼 클릭이나 아이템 획득 효과음을 관리.버튼 클릭 효과음 구현 방법UIButtonSFX 스크립트를 각 버튼에 추가하여 클릭 이벤트마다 효과음 재생.SoundManager.Instance.PlaySound를 호출해 버튼별 효과음을 독립적으로 설정 가능.스나이퍼 엘리트 스타일 인게임 BGM긴장감을 조성하는 스텔스 음악과 전투 상황에서 역동성을 더하는 음악이 중요.드론 스타일의 저음 기반 음악과 오케스트라 타악기, 현악기의 조합이 효과적.Unity에서 TIL 적.. 더보기 TIL(Today I Learned) - 43 오늘 배운 것 (TIL)UI 미니맵 삼각형 방향 표시삼각형(시야 표시)의 Pivot 설정이 UI 회전과 연계되어 중요하며, Pivot을 (0.5, 0.0)으로 설정하여 꼭짓점이 플레이어 중심에 위치하도록 구현.삼각형의 회전은 Z축 회전을 조정하여 플레이어의 바라보는 방향에 맞추는 것이 핵심.Pivot 문제 해결Pivot 설정은 Unity Editor에서 변경하거나, 코드에서 강제로 설정.잘못된 Pivot 값은 회전 계산에 영향을 미쳐 삼각형이 플레이어와 어긋나는 원인이 됨.UI 좌표 변환플레이어 월드 좌표를 미니맵 좌표로 변환할 때, 비율 계산이 정확해야 UI가 맵 크기와 일치.특히 맵의 비율과 크기를 정확히 고려해야 이상 없이 동작.디버깅의 중요성문제 발생 시, Debug.Log()를 활용해 좌표, 회.. 더보기 TIL(Today I Learned) - 39 게임에서 HP 슬라이더와 캐릭터 스탯 연동: HP 슬라이더를 캐릭터의 HP와 연동하려면, HealthSystem에서 체력 변경 이벤트를 발생시키고, UI에서 이를 구독하도록 해야 합니다. 이때, HP 슬라이더는 HealthSystem에서 제공하는 OnHealthChanged 이벤트를 구독하여 체력이 변경될 때마다 슬라이더 값을 업데이트하도록 합니다. 이를 통해, 슬라이더가 실시간으로 체력을 반영하도록 구현할 수 있습니다.몬스터 소환 시 체력과 크기 증가: 몬스터 소환 시마다 체력과 크기를 증가시키기 위해, 소환된 몬스터의 HealthSystem을 초기화할 때 체력과 크기를 조정합니다. monsterOriginalScale을 사용하여 크기를 증가시키고, currentHealthMultiplier를 통해 체.. 더보기 TIL(Today I Learned) - 38 🔍 작업 내용 요약AutoClickController 및 TimeControlController에 대한 기능 구현:자동 클릭 및 시간 조절 버튼을 통해 플레이어 행동을 제어하는 기능을 구현했습니다.버튼 클릭 시 애니메이션 효과 적용 및 구매 여부에 따른 버튼 활성화/비활성화 로직을 추가했습니다.애니메이션 속도 조정:Mathf.PingPong을 사용한 애니메이션 속도를 조절하여 버튼이 4배 느리게 커졌다 작아졌다 하도록 조정했습니다.Mathf.PingPong(Time.time / 4, 0.2f) + 0.9f를 통해, Time.time을 나누어 애니메이션 효과의 속도를 느리게 했습니다.GameManager와의 참조 연결 문제 해결:동적 생성된 Player 객체의 컴포넌트를 참조하기 위해 GameManage.. 더보기 이전 1 2 3 4 5 다음