전체 글609 언리얼엔진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. 유니티 Player Fall GameOver ▣ 코드 설명떨어짐 감지:transform.position.y 값을 모니터링하여 fallThreshold (예: -10f)보다 작아지면 캐릭터가 떨어졌다고 간주합니다.게임 오버 처리:캐릭터가 떨어지면 GameOver() 함수가 호출됩니다. 게임 오버 상태를 추적하기 위해 isGameOver 변수를 사용합니다.게임 재시작:Invoke()를 사용해 2초 후에 현재 씬을 다시 로드합니다. SceneManager.LoadScene()를 통해 현재 활성화된 씬을 재시작합니다. 2024. 10. 15. 유니티 Player Die Ragdoll모드 ▣ Root (Hips):캐릭터의 중심이 되는 pelvis를 사용합니다. 이 본은 상체와 하체를 연결하는 중심입니다.Left Hips / Right Hips:왼쪽과 오른쪽 다리의 상단 부분에 해당하는 thigh_l 및 thigh_r를 사용합니다. 이 본들은 다리의 시작점이며 관절의 중요한 부분입니다.Left Knee / Right Knee:무릎에 해당하는 본으로 calf_l와 calf_r를 사용합니다. 이 본들은 허벅지와 종아리를 이어주는 역할을 합니다.Left Arm / Right Arm:왼팔과 오른팔의 상단에 해당하는 upperarm_l 및 upperarm_r를 사용합니다.Left Elbow / Right Elbow:팔꿈치 부분으로 lowerarm_l 및 lowerarm_r를 사용합니다.Middle .. 2024. 10. 14. 유니티 Jumping ▣ 코드 설명LayerMask groundLayer:캐릭터가 닿을 수 있는 땅의 레이어를 지정합니다. Unity에서 레이어는 충돌 처리를 위한 그룹을 나눌 때 사용됩니다. groundLayer는 땅으로 간주할 레이어를 선택할 수 있도록 합니다.CheckIfGrounded() 함수:Raycast를 이용하여 캐릭터의 발 밑에 땅이 있는지 확인하는 함수입니다. Raycast는 캐릭터의 위치에서 아래쪽으로 발사되며, groundLayer에 속한 오브젝트와 충돌하는지 여부를 확인합니다.중력 적용 및 이동 처리:캐릭터가 공중에 있으면 중력이 지속적으로 적용되어 아래로 내려오게 되고, 착지했을 때는 중력에 의해 속도가 과도하게 증가하는 것을 막기 위해 velocity.y = -2f로 설정됩니다. controller... 2024. 10. 12. 유니티 Aim 상체 회전(애니메이션 상체 방향 문제) ▣ 코드 설명:LateUpdate() 함수는 모든 애니메이션이 적용된 후 마지막에 호출되기 때문에, 애니메이션으로 덮어쓰기 전에 상체 회전값을 강제로 덮어쓸 수 있습니다. Aim 모드일 때만 upperBody.localRotation 값을 수정하고, Aim 모드가 끝나면 원래 회전 값으로 복구합니다. 2024. 10. 11. 유니티 FogEffect ▣ 안개 효과 설정 방법 Unity 메뉴에서 설정하기: 안개 효과는 Lighting 설정 창에서 활성화할 수 있습니다.Window > Rendering > Lighting 메뉴로 들어갑니다. Scene 탭에서 Environment 섹션을 찾고, Fog 항목을 활성화합니다. ▣ 코드 설명 RenderSettings.fog = true;: 안개 효과를 활성화합니다.RenderSettings.fogColor = Color.gray;: 안개의 색상을 설정합니다. 이 예시에서는 회색을 사용했습니다.RenderSettings.fogDensity = 0.02f;: 안개의 밀도를 설정합니다. 값이 클수록 안개가 짙어집니다.RenderSettings.fogStartDistance = 10f;, RenderSettin.. 2024. 10. 11. 언리얼엔진5 c++ Actor 이름 추출 ▣ GetName() 메서드를 사용하여 Hit.GetActor()의 이름을 가져올 때 이름 뒤에 붙는 "_C_1"와 같은 접미사는Unreal Engine에서 블루프린트 클래스나 인스턴스화된 객체를 나타낼 때 종종 추가됩니다.이 접미사는 Unreal의 객체 관리 시스템에서 객체가 어떤 클래스에서 파생되었는지와 고유한 인스턴스임을 식별하기 위해 자동으로 붙는 것입니다. 예를 들어, 블루프린트로 생성된 액터나 객체는 기본적으로 Unreal의 객체 시스템에서 다음과 같은 형식으로 이름이 변경됩니다: Beteta_C_1 Glock_C_1여기서:"_C": 블루프린트 클래스의 객체임을 나타냅니다. "_1": 해당 클래스의 첫 번째 인스턴스를 나타냅니다. 만약 여러 인스턴스가 있다면 뒤에 숫자가 증가합니다. ▣ C.. 2024. 10. 11. 유니티 프로젝트 템플릿 메뉴 ▣ 2D (Built-In Render Pipeline) 설명: 이 템플릿은 기본 렌더 파이프라인을 사용하는 2D 게임 제작을 위한 템플릿입니다. 2D Sprite 작업 및 2D 물리 엔진을 쉽게 활용할 수 있습니다. 사용 예: 횡스크롤 액션 게임, 퍼즐 게임 등 2D 기반 게임 제작.▣ 3D (Built-In Render Pipeline) 설명: 기본 렌더 파이프라인을 사용하는 3D 게임 프로젝트 템플릿입니다. Unity의 기본 3D 기능을 활용하여 모델링, 텍스처링, 조명 등을 설정할 수 있습니다. 사용 예: 간단한 3D 게임이나 시뮬레이션 제작에 적합.▣ Universal 2D 설명: SRP(Scriptable Render Pipeline)를 사용하는 2D 프로젝트 템플릿입니다. SRP는 성능 최.. 2024. 10. 10. 유니티 슬로우 모드 ▣ 코드 설명 slowMotionScale: 슬로우 모드에서 적용할 시간 비율입니다. 예를 들어 0.5로 설정하면 게임 속도가 절반으로 느려집니다.defaultTimeScale: 기본 게임 속도입니다. 보통은 1로 설정합니다.isSlowMotion: 현재 슬로우 모드인지 여부를 저장하는 불리언 변수입니다.Input.GetKeyDown(KeyCode.Q): Q 키가 눌렸을 때 슬로우 모드를 토글(toggle)합니다.Time.timeScale: 게임의 시간 속도를 조정하는 핵심 변수입니다. 1은 정상 속도, 0.5는 절반 속도를 의미합니다.Time.fixedDeltaTime: 물리 계산에서 사용하는 시간 델타 값을 조정하여, 슬로우 모드에서도 물리 연산이 부드럽게 유지되도록 합니다. ▣ Time.fixed.. 2024. 10. 10. 이전 1 2 3 4 ··· 26 다음