전체 글(36)
-
[Unity]유니티 Player의 스킬 이펙트,효과음 재생하기.
1. 스킬 이펙트 관리 방법스킬 이펙트는 보통 Particle System, Prefab, 그리고 Animation을 사용해 구현합니다.이를 효율적으로 관리하기 위해 Skill Manager와 Effect Manager를 사용합니다. 1-1. 스킬 이펙트 재생 순서스킬 입력 감지플레이어가 스킬을 사용하기 위해 키 입력 또는 UI 버튼을 클릭합니다.스킬 데이터 로드스킬 사용 시 Skill Data ScriptableObject를 통해 해당 스킬의 정보를 로드합니다.스킬 데이터에는 이펙트 Prefab, 효과음 파일, 쿨타임 등이 포함됩니다.이펙트 생성 및 위치 설정Instantiate() 함수를 사용해 스킬 이펙트 Prefab을 생성합니다.이펙트 생성 시 캐릭터의 위치와 방향을 기준으로 생성되며, Trans..
2025.01.07 -
[Unity]SoundManager에 대한 고찰
1. SoundManager란 무엇인가?SoundManager는 게임 내 다양한 사운드 효과와 배경음악을 중앙에서 통합적으로 관리하는 시스템입니다. 이를 통해 사운드의 재생, 중지, 볼륨 조정 등을 손쉽게 제어할 수 있습니다. SoundManager를 활용하면 다음과 같은 장점을 얻을 수 있습니다. 2. SoundManager 구현 방법Singleton 패턴으로 구현하는 것이 일반적입니다. 이를 통해 프로젝트 어디서든 쉽게 접근할 수 있습니다.using UnityEngine;public class SoundManager : MonoBehaviour{ public static SoundManager Instance; public AudioSource backgroundMusic; publi..
2025.01.06 -
[Unity]스폰 몬스터와 Player
1. 구성 요소MonsterManager (스폰 관리자)몬스터를 스폰하고 관리합니다.모든 스폰된 몬스터를 추적합니다.MonsterController (몬스터 스크립트)몬스터 개별 동작을 처리하며, Player와 상호작용 이벤트를 발생시킵니다.PlayerController (플레이어 스크립트)플레이어의 상태를 추적하며, 몬스터와의 충돌 또는 상호작용을 처리합니다.InteractionMonitor (모니터링 객체)몬스터와 Player 간 상호작용 이벤트를 감지하고 기록합니다using System;using UnityEngine;public class MonsterController : MonoBehaviour{ public event Action OnPlayerInteraction; private..
2025.01.03 -
[Unity/트러블슈팅]리지드바디 없이 2개 오브젝트의 충돌검사(CharacterController)
OnTriggerEnter 작동 조건 Collider 설정CharacterController가 있는 오브젝트는 Collider를 포함하고 있으므로 별도의 추가 작업이 필요 없습니다.충돌 대상 오브젝트에도 Collider가 있어야 하며, isTrigger 옵션이 활성화되어야 합니다. Rigidbody 요구사항CharacterController가 있는 오브젝트는 Rigidbody가 없어도 됩니다.충돌 대상 오브젝트는 반드시 Rigidbody를 가질 필요는 없지만, Rigidbody가 있으면 물리적 상호작용(예: 밀림 등)이 가능합니다.Physics Layer 설정두 오브젝트의 레이어가 Physics 설정에서 충돌하도록 설정되어 있어야 합니다. 이를 확인하려면:Edit > Project Settings > P..
2025.01.02 -
[Unity]UI를 스테이트 머신을 활용해 설계하기
1. State Enum 정의public enum UIState{ Home, Shop, MissionWorld, MyEquipment, EventPopup, MyInfo}[홈,상점,미션월드,내장비,이벤트(팝업),내 정보] 구성 2. State Managerusing UnityEngine;public class UIStateManager : MonoBehaviour{ public static UIStateManager Instance { get; private set; } public UIState CurrentState { get; private set; } [SerializeField] private GameObject homeUI; [Seriali..
2024.12.31 -
[Unity/최종프로젝트]제네릭 기반 몬스터 스폰+오브젝트 폴링
// 제네릭 스폰 매니저public class SpawnManager where T : MonoBehaviour{ private Queue pool = new Queue(); private T prefab; public SpawnManager(T prefab, int initialPoolSize) { this.prefab = prefab; // 초기 풀 생성 for (int i = 0; i 0) { obj = pool.Dequeue(); } else { obj = GameObject.Instantiate(prefab); } obj...
2024.12.30