본문 바로가기

분류 전체보기635

언리얼엔진5 c++ AI Damage Stop Move ▣ MovementComponent->StopMovementImmediately() 설명: 이 함수는 모든 현재 이동을 즉시 중지합니다. 캐릭터가 이동 중이든 가속 중이든 상관없이 이동을 멈추며, 위치를 고정시킵니다. 주 용도: 캐릭터의 이동을 멈추고 싶을 때 사용됩니다. 예를 들어, 피격 효과를 구현할 때 캐릭터가 이동 중이라면 이를 멈추게 하는 데 유용합니다. ▣ MovementComponent->SetComponentTickEnabled(false) 설명: 이 함수는 컴포넌트의 틱(Tick) 업데이트를 비활성화합니다. 즉, 컴포넌트가 매 프레임 업데이트되지 않으며, 이를 통해 움직임을 일시적으로 멈출 수 있습니다. 주 용도: 애니메이션과 피격 효과는 유지하면서 이동만 멈추고자 할 때 사용합니다. ▣.. 2024. 11. 11.
언리얼엔진5 c++ SpawnSystemAtLocation(표면에 Effect효과주기) ▣ 코드설명- PointDamageEvent: DamageEvent를 FPointDamageEvent로 변환하여, 지점 충돌에 대한 정보를 가져옵니다.  - HitBone: 충돌된 부위의 본 이름입니다. 피격 부위에 따라 효과나 데미지를 달리할 수 있습니다.  - ImpactPoint: 충돌한 위치를 나타내는 벡터입니다.  - ImpactNormal: 충돌 지점의 표면 노멀 벡터로, 이 벡터를 사용하여 FX의 방향을 표면에 맞춰 설정할 수 있습니다.  ▣ ImpactNormal은 충돌한 표면의 방향을 나타내는 벡터입니다.이 벡터는 표면에 수직한 방향을 의미하며, 표면의 "바깥쪽"을 가리키는 방향이라고 이해할 수 있습니다.예를 들어 설명해보겠습니다: 벽에 총알이 맞을 때:벽 표면이 오른쪽을 향해 있다면, .. 2024. 11. 10.
언리얼엔진5 c++ PlaySoundAtLocation 소리강조 ▣ 매개변수 설명 WorldContextObject (UObject*):사운드가 재생될 월드를 지정하는 객체입니다. 대개 this로 현재 객체를 전달합니다.Sound (USoundBase*):재생할 사운드 에셋입니다. 일반적으로 USoundCue 또는 USoundWave 형식의 사운드를 사용합니다.Location (FVector):사운드가 재생될 월드 좌표입니다. 예를 들어, GetActorLocation()을 사용해 특정 액터의 위치에서 재생할 수 있습니다.VolumeMultiplier (float):사운드의 볼륨을 조정하는 배율입니다. 기본값은 1.0f이며, 2.0f로 설정하면 소리가 두 배 커지고, 0.5f로 설정하면 절반으로 작아집니다.PitchMultiplier (float):사운드의 피치(재생.. 2024. 11. 9.
언리얼엔진5 c++ Hit Niagara 재생 ▣ NiagaraFunctionLibrary를 사용하기 위해서는 Niagara 모듈을 프로젝트에 추가해야 합니다. Niagara 모듈이 포함되지 않으면 해당 헤더 파일을 찾을 수 없다는 오류가 발생할 수 있습니다. 이를 해결하려면 프로젝트의 Build.cs 파일에 Niagara 모듈을 추가해야 합니다. ▣ UNiagaraSystem 타입을 사용하여 Niagara FX를 HitFXArray에 추가합니다.UNiagaraFunctionLibrary::SpawnSystemAtLocation을 사용하여 충돌 위치(HitLocation)에서 Niagara FX를 재생합니다.각 Niagara FX는 /Game/Effects/NS_Hit1와 같은 경로에 위치한다고 가정합니다. 필요에 따라 경로 했습니다. ▣ Const.. 2024. 11. 8.
유니티 재시작시 플레이어 위치 설정 ▣ FindSpawnPoint() 메서드:GameObject.FindWithTag("SpawnPoint")를 사용해 SpawnPoint 태그를 가진 오브젝트를 찾습니다. 이 오브젝트의 Transform을 spawnPoint로 설정합니다. 이렇게 하면 씬이 재시작될 때마다 spawnPoint를 다시 참조할 수 있어, Missing 문제를 해결할 수 있습니다. SpawnPoint 오브젝트가 씬에 포함되어 있어야 하며, 태그는 SpawnPoint로 설정해야 합니다.▣ OnSceneLoaded 이벤트:씬이 재시작되면 OnSceneLoaded 이벤트에서 FindSpawnPoint()로 spawnPoint를 다시 찾고, MoveToSpawnPoint()를 통해 플레이어를 초기 위치로 이동시킵니다. 2024. 11. 7.
언리얼엔진5 c++ SetCollisionProfileName ▣ SetCollisionProfileName() 함수는 언리얼 엔진에서 오브젝트의 충돌 프로필을 설정할 때 사용됩니다. 충돌 프로필은 게임 내 오브젝트 간의 충돌 반응을 정의하는 역할을 합니다. 이 함수를 통해 오브젝트가 어떤 충돌 반응을 가져야 할지 지정할 수 있습니다. 충돌 프로필은 일반적으로 프로젝트 설정에서 미리 정의된 이름을 사용하며, 이를 설정하면 오브젝트의 충돌 방식이 자동으로 적용됩니다. ▣ void SetCollisionProfileName(FName InCollisionProfileName, bool bUpdateOverlaps = true); https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/.. 2024. 11. 2.
언리얼엔진5 c++ LightingChannels ▣ SetLightingChannels(true, true, false)와 LightingChannels.bChannel 설정은 Unreal Engine5에서 라이트의 영향을 받는 채널을 설정하는 기능으로, 특정 오브젝트가 어떤 채널의 라이트를 수신할지를 제어할 수 있습니다. ▣  SetLightingChannels() 함수는 오브젝트가 어떤 채널의 라이트를 수신할지 한 번에 지정하는 함수입니다. 이 함수는 다음과 같은 파라미터를 가집니다. bChannel0: 기본 채널(채널 0)을 활성화할지 여부를 설정합니다. bChannel1: 채널 1을 활성화할지 여부를 설정합니다. bChannel2: 채널 2를 활성화할지 여부를 설정합니다. ▣ LightingChannels 구조체는 개별 채널의 활성화 여부를 설.. 2024. 11. 1.
유니티 비활성화 오브젝트 찾는 함수(GetChild) ▣ transform.GetChild는 Unity에서 특정 부모 객체의 자식 객체를 인덱스로 참조하여 가져올 수 있게 해주는 메서드입니다. 이 메서드를 사용하면 부모 객체의 하위 객체(자식 객체)에 쉽게 접근할 수 있으며, 자식 객체를 수정하거나 특정 작업을 수행할 때 유용합니다. 2024. 10. 30.
유니티 특정 씬(scene)이 로드된 후에 호출되는 콜백 함수 ▣ OnLevelWasLoaded 함수 설명 OnLevelWasLoaded는 지정된 씬이 로드될 때 한 번 호출됩니다. 매개변수로는 로드된 씬의 인덱스(index)를 받습니다. Unity 5.4 이전 버전에서만 작동하며, 이후 버전에서는 SceneManager.sceneLoaded 이벤트로 대체되었습니다. ▣ SceneManager.sceneLoaded 사용법 Start 함수에서 SceneManager.sceneLoaded 이벤트에 OnSceneLoaded 콜백 함수를 등록합니다. OnSceneLoaded 함수는 씬이 로드될 때 호출되며, scene과 mode 매개변수를 받습니다. scene.name을 사용하여 로드된 씬의 이름을 콘솔에 출력합니다. OnDestroy 함수에서 이벤트를 해제하여 메모리 누.. 2024. 10. 29.
언리얼엔진5 c++ UMETA(DisplayName = " ") ▣ UMETA(DisplayName = "")는 Unreal Engine의 UENUM에서 각 열거형 값(enum value)에 특정한 디스플레이 이름(Display Name)을 지정할 때 사용됩니다.UMETA는 Unreal의 메타데이터 표기로, DisplayName은 엔진 에디터에 표시될 이름을 지정할 수 있는 메타 데이터 필드입니다.이를 사용하면 에디터에서 더 직관적이고 사용자 친화적인 이름으로 열거형 값을 표시할 수 있습니다. ▣ UMETA가 유용한 이유 UMETA(DisplayName = "Work")와 같은 메타데이터를 활용하면 다음과 같은 장점이 있습니다:에디터에서 더 직관적인 이름 제공: DisplayName을 통해 C++ 변수명 대신 더 직관적이고 보기 좋은 이름을 제공할 수 있습니다. 다국.. 2024. 10. 26.
언리얼엔진5 c++ 순수 가상 함수(Pure Virtual Function) ▣ 코드설명 PURE_VIRTUAL()은 Unreal Engine에서 순수 가상 함수를 선언하는 매크로입니다. C++의 "순수 가상 함수(pure virtual function)"는 추상 클래스를 정의할 때 사용됩니다. 추상 클래스는 특정 메서드가 자식 클래스에서 반드시 구현되어야 한다는 규칙을 정하는 데 사용됩니다.- Unreal Engine에서는 PURE_VIRTUAL() 매크로를 사용해 더 쉽게 정의할 수 있습니다.PURE_VIRTUAL()을 사용하면, 함수가 호출될 때 에러 메시지를 출력하도록 하고,해당 함수는 반드시 자식 클래스에서 구현되어야 함을 명시하게 됩니다.  ▣ 순수 가상 함수(Pure Virtual Function)란? 순수 가상 함수(pure virtual function)는 C++.. 2024. 10. 24.
유니티 Door Base ▣ 코드설명DoorBase 클래스는 문을 제어하는 기본 클래스입니다. 이 클래스는 문이 정방향으로 열렸는지, 역방향으로 열렸는지를 관리하고, 그에 따라 닫기 애니메이션도 다르게 재생하도록 설계되었습니다. 주요 구성 요소:isOpen:문이 현재 열려 있는지 여부를 나타내는 bool 변수입니다. 문이 열렸다면 true, 닫혔다면 false입니다.LastOpenedForward:문이 마지막으로 정방향으로 열렸는지 추적하는 bool 변수입니다. true면 문이 정방향으로 열렸고, false면 문이 역방향으로 열렸음을 나타냅니다. 문이 닫힐 때 이 값을 참고하여 적절한 닫기 애니메이션(CloseForward, CloseBackward)을 선택합니다. 주요 메서드:Open(Transform player):플레이어의.. 2024. 10. 24.
유니티 Zombie AI Damage ▣ 코드 설명 - 부위별로 hit에 Tag를 전달하고 함수에서 해당 부위에 따라 Hp를 떨어뜨리고 애니메이션을 재생하는 코드 2024. 10. 21.
유니티 Zombie AI NavMeshLink ▣ NavMeshLink의 주요 속성:Start Point: 시작 지점. 에이전트가 이 지점에서 링크를 시작합니다. End Point: 끝나는 지점. 에이전트가 이 지점으로 링크를 통해 이동합니다. Width: 링크의 폭입니다. 에이전트가 넓은 경로를 따라 이동해야 한다면 이 값을 조정합니다. Cost Modifier: 링크의 비용을 설정하는 값입니다. 이 값은 경로 탐색 시 우선순위에 영향을 줍니다. 0이면 기본 경로 비용과 동일하게 동작하고, 더 높은 값은 비용을 증가시켜서 우선순위를 낮춥니다. Bidirectional: 에이전트가 양방향으로 링크를 사용할 수 있는지 여부를 나타냅니다. 체크하면 두 방향으로 이동이 가능합니다. Auto Update Position: 이 옵션을 켜면 Start Poin.. 2024. 10. 21.
언리얼엔진5 PossProcessVolume ▣ 무한 범위로 설정하기 (Infinite Extent) PostProcessVolume의 효과가 레벨 전체에 적용되도록 하려면, Volume을 무한 범위로 설정해야 합니다.PostProcessVolume을 선택한 후, Details 패널에서 설정을 찾습니다. Infinite Extent (Unbound) 옵션을 활성화합니다. 이 옵션을 체크하면, PostProcessVolume이 레벨 내의 특정 영역에만 국한되지 않고, 레벨 전체에 걸쳐 PostProcess 효과가 적용됩니다.  ▣ Motion Blur (모션 블러) Motion Blur는 빠르게 움직이는 물체나 카메라에 블러 효과를 주어 현실감을 더하는 효과입니다. 긴박한 장면이나 혼란스러운 상황에서 분위기를 극대화할 수 있습니다. 방법: PostP.. 2024. 10. 19.
유니티 Weapon Fire Delay ▣ 추가 코드 설명pistolFireDelay, shotgunFireDelay: 각 무기마다 발사 딜레이를 설정하는 변수입니다. 권총은 0.5초, 샷건은 1초로 설정되었습니다.canFire: 발사 가능 여부를 확인하는 변수입니다. 발사 후 딜레이가 끝나기 전까지는 다시 발사할 수 없도록 설정합니다.FireWithDelay 코루틴: 발사 딜레이를 적용하는 코루틴입니다. 발사 후 딜레이 시간이 끝날 때까지 대기한 후 다시 발사할 수 있도록 canFire를 true로 설정합니다. 2024. 10. 19.
유니티 FlashLight ▣ Light 컴포넌트 사용법 Light Type: Spot, Directional, Point, Area 등의 다양한 타입이 있으며, 손전등처럼 집중된 빛을 구현하려면 Spot Light를 사용합니다.Range: 빛이 미치는 거리를 조절합니다.Spot Angle: 빛이 퍼지는 각도를 설정할 수 있습니다. 손전등의 빛을 좁게 만들려면 이 값을 낮추고, 넓게 만들려면 값을 높입니다.Intensity: 빛의 밝기를 설정하는 값입니다. 값이 클수록 밝아집니다.Color: 빛의 색상을 설정할 수 있습니다.▣  Flashlight 설정 예시 Light 컴포넌트에서 기본적으로 다음과 같은 설정을 권장합니다:Type: Spot Range: 10~20 (사용 환경에 맞게 조정) Spot Angle: 30~60 (넓은 .. 2024. 10. 18.
유니티 Zombie AI NavMeshAgent ▣ Navigation (Obsolete) Navigation (Obsolete)는 Unity에서 오래된 네비게이션 시스템으로, 더 이상 유지 보수가 되지 않고 새로운 시스템으로 대체되었거나 개선된 시스템이 있습니다. Obsolete라는 의미는 더 이상 권장되지 않는 기능이나 API라는 뜻으로, 향후 업데이트에서 제거될 수 있음을 의미합니다. Navigation (Obsolete)는 유니티의 초기 네비게이션 시스템으로, 오래된 방식의 NavMesh 생성 및 설정을 제공합니다. 이는 간단한 AI 경로 탐색을 구현할 수 있지만, 최신 시스템에 비해 기능이 제한적이며, 확장성이나 유연성이 떨어집니다. 주요 특징 단순한 NavMesh 생성 및 AI 경로 탐색 기능 제공. 몇 가지 기본적인 경로 탐색 기능만 지원.. 2024. 10. 17.
유니티 3D UI ▣ 코드 설명 targetCamera: 카메라를 참조할 변수입니다. 만약 스크립트에 카메라를 할당하지 않았다면, 기본적으로 Camera.main을 사용하여 메인 카메라를 참조합니다.direction: UI와 카메라 사이의 방향을 계산합니다. 여기서 y 값을 0으로 설정하여 UI가 위아래로 기울어지지 않도록 처리합니다.Quaternion.LookRotation: 방향을 기준으로 회전을 계산하여 UI가 카메라를 향하도록 만듭니다.transform.rotation: 계산된 회전을 UI의 transform에 적용하여 실제로 UI가 회전합니다. 2024. 10. 17.
유니티 WeaponManager ▣ WeaponManager싱글톤 패턴을 사용하여 무기 인벤토리를 관리하고, 플레이어가 획득한 무기와 현재 장착된 무기를 관리합니다. 무기를 획득할 때 AddWeapon() 메서드로 인벤토리에 추가하고, EquipWeapon() 메서드로 무기를 장착합니다.    ▣ Weapon각 무기에 WeaponType을 할당하여, 무기마다 고유한 타입을 지정합니다. 이 타입을 기준으로 WeaponManager와 PlayerManager가 무기 관련 기능을 처리합니다.   ▣ PlayerManager플레이어의 입력 처리를 담당하며, WeaponManager로부터 현재 장착된 WeaponType에 따라 무기 애니메이션을 다르게 처리합니다. 마우스 우클릭으로 조준 애니메이션을, 좌클릭으로 발사 애니메이션을 실행합니다. W.. 2024. 10. 16.
유니티 ObstacleManager(장애물관리) ▣ 코드 설명 ObstacleManager 클래스장애물의 다양한 동작을 관리합니다. 장애물의 타입에 따라 이동, 회전, 가시성 제어를 수행합니다.enum ObstacleType장애물의 타입을 나타내며, 장애물이 이동, 회전, 가시성 제어, 발판으로 동작할 수 있도록 구분합니다.HandleMovement()장애물이 경로 지점을 따라 이동합니다. Vector3.MoveTowards()를 사용해 부드럽게 이동합니다.HandleRotation()지정된 축을 기준으로 회전합니다.HandleVisibility()Renderer의 enabled 속성을 통해 가시성을 제어합니다.OnCollisionEnter()플레이어와 충돌 시 호출됩니다. 충돌한 객체의 Tag가 "Player"인 경우 장애물의 타입에 따라 동작을 수.. 2024. 10. 15.