전체 글301 Unity C#] 두 점을 잇는 Ray - LineCast Vector3 direction = NowPos - PrePos;float distance = direction.magnitude;if (Physics.Raycast(PrePos, direction.normalized, out RaycastHit hit, distance)){ // 여기에 충돌 시 로직 작성}물론 뭐 일반적인 Raycast와 몇줄의 코드를 통해서 억지로 이어줄 수도 있지만,가끔 나오는 상황이니 만큼 다른 메서드를 사용할 수도 있다. if (Physics.Linecast(PrePos, NowPos, out RaycastHit hit)){ // 로직 처리}Physics.Linecast라는 메서드를 통해서 두 점을 바로 잇는 레이를생성할 수도 있다. 조금 더 우아하게 처리하고 싶다면.. 게임 개발/유니티C# 2026. 1. 11. Unity] 그림자가 너무 진하게 지는 경우 (특히 VR, URP) 이렇게 반대편에 그림자가 너무 진하게 져서 해결하고 싶다면,[Window] -> [Rendering] -> [Lighting] 설정에서 해결이 가능하다. 여기서 Source를 Sky box에서 다른 설정으로 바꾸고,색을 좀 더 밝게 바꿔주면 대부분의 경우 해결될 것이다. 다만 아직도 안된다면, 오브젝트 머티리얼의 설정 문제일 수 있다.여기서 Smoothness나 Occlusion Map의 강도가 1에 가까우면 세팅을 바꿔세상에 간접광을 제공해도 머티리얼에서 빛을 흡수하지 않는 경우가 있다. 게임 개발/유니티 2026. 1. 11. Unity] 오브젝트가 렌더링 될 방향, Render Face 약간 이런 상태인데, 뒷면에서도 앞의 문양이 보이게 하고 싶다면 사용할 수 있는 기술이 있다.URP 프로젝트에서는, Material의 설정 옵션 중에 Render Face가 있는데,보통 처음 옵션은 Front로 되어있고 이런 상황에서 해결하고 싶은 경우에 Both로 바꿔주면 앞, 뒤 모두 문양이 보이게 된다. 게임 개발/유니티 2026. 1. 11. 유니티 VR] 좌/우 컨트롤러가 보이지 않을 때 해결법 유니티 에디터에서 Play 버튼을 눌러서 본인의 VR 기기에 연결하여 개발을 시도하는 경우,좌/우 컨트롤러만 인식되지 않는 현상이 나타날 수 있다.나의 경우에는 컨트롤러에 연결해놓은 칼이 없어졌고,이를 해결하기 위해서 오랜 시간 찾아봤으나 답이 안나왔다. 해결법은 [Edit] -> [Project Settings] -> [XR Plug-in Management]로 이동 후,OpenXR -> Oculus로 바꾸는 것이다.물론 개개인의 VR기기가 다르기 때문에 꼭 오큘러스가 아니더라도통합 체제인 OpenVR말고 한번 본인의 기기로 바꿔보자.이상으로 도움이 되었길 바라며, 끝. 게임 개발/유니티 2025. 12. 4. The Witcher 3 : Wild Hunter 게임 리뷰, 평가 오늘은 The Witcher 3 : Wild Hunter 플레이를 마친 기념으로 정리를 해보려합니다.우선 제가 가장 중점적으로 느낀 부분은 "부모 입장에서의 사랑을 다룬 게임"이라는 겁니다.바로 시작하죠.부모의 사랑이상적인 작품이 만들어지기 위해서는 어떤 주제가 나와야 하는가에 대해 생각해보신 적 있으신가요?최대다수의 사람이 + 최대깊이로 느낀 감정이 메인이 되어야한다는 결론이 나오곤 합니다. 이런 현상이 뭐가 있을까 생각을 하다보면 우리는 자주 사랑을 떠올립니다.흔히 에로스, 스토르게, 필리아, 아가페 등 여러가지 종류의 사랑이 있다고 말하죠.하지만 게임 대부분에서는 연인끼리의 사랑을 다룹니다. 연인이 어딘가에 잡혀있거나 구해야 하는 대상이 있거나 하죠.위쳐도 처음에는 그렇게 시작합니다. 시리라는 딸 .. 작품 2025. 12. 4. 2025-12/ Unity 6 VR] 최신버전 햅틱 구현 방법 using UnityEngine.XR.Interaction.Toolkit;using UnityEngine.XR;public XRNode controllerNode; private UnityEngine.XR.InputDevice targetDevice; void Start() { GetDevice(); }private void GetDevice() { targetDevice = InputDevices.GetDeviceAtXRNode(controllerNode); } public void TriggerHaptic(float amplitude, float duration) { // 디바이스가 유효하지 않으면 다시 가져오기 .. 게임 개발/유니티 2025. 12. 2. Unreal Engine 5] 컴포넌트의 역할과 종류 우선 언리얼 엔진에서 컴포넌트란 게임에서 액터의 주요 기능을 추가해주는 역할이다.대표적으로 시각적 기능, 물리적 기능, 움직임 정도로 구성된다. 언리얼엔진에서 제공하는 컴포넌트는 아래와 같다. 1. 스태틱 메쉬 (StaticMesh)이거는 이제 애니메이션이 없는 정적인 액터에게 시각적 기능과 물리적 기능을제공하는 옵션이다. 주로 배경 물체 같은 곳에 사용된다. 2. 스켈레톤 메쉬 (SkeletalMesh)애니메이션 정보가 존재하는 액터에서의 메쉬이다. 기능은 같은데 주로플레이어나 빌런같은 움직임이 존재하는 캐릭터에서 사용된다. 3. 콜리젼 (Collision)지정 영역에 물리적인 기능을 추가하기 위해 존재한다. 구/박스/캡슐같은영역이 주로 사용되고 시각적인 기능은 없다. 유니티와 같음 4. 카메라 (Ca.. 게임 개발/Unreal Engine 5 2025. 11. 19. Unreal Engine C++] 객체지향 4원칙 1. 캡슐화변수를 외부에 숨기고 (private, protected) 변수의 조작이 필요할때는 getter/setter 함수를 통해 조작하도록 하기. 외부 조작으로부터 안전해지고 getter/setter 실행부가 있다는 점에서 커스텀 가능한 장점이 있음. (주기 추가) 절차 지향에서는 기능 모음을 하나로 묶는걸 의미하기도 함.2. 추상화추상적으로 클래스를 미리 정의한다는 뜻으로, 택시와 승용차라는 객체를 만들고 싶다면 상위 클래스로 자동차부터 미리 구현하라는 뜻이다. 상위 클래스에서 공통되는 기능을 제작하고 아래는 상속받는 식으로 구현하자.3. 다형성하나의 상위 클래스를 여러 하위 클래스가 상속받는 구조가 만들어졌을 때, '다양한 형태'로 사용할 수 있게 하자는 원칙이다. virtual 및 overrid.. 게임 개발/Unreal Engine 5 2025. 11. 5. Unreal Engine C++] 생성자와 소멸자 C++ 에는 생성자와 소멸자라는 개념이 존재한다.간단히 말해서 클래스가 시작될 때와 클래스가 소멸될 때 실행되는 이벤트다. #include using namespace std;class Player {public://member func Player(string newName, int newHp, int newMp) : name(newName), hp(newHp), mp(newMp) { //생성자 cout 가령 이런 코드가 있다고 가정하면, Player() { }는 생성자, ~Player() { }는 소멸자이다.중괄호 안에 코드를 작성하면 생성/소멸 시에 원하는 코드를 실행시킬 수 있다. 객체지향 언어인 만큼 객체 생성과 동시에 값들을 넘겨주고 싶을 수 있는데,이는 생성자에서 처리하면 좋다. 직접 대.. 게임 개발/Unreal Engine 5 2025. 11. 5. Unreal Engine 5] BluePrint에서의 상속 사실 우리가 BP를 만들때부터 상속이 진행된다. 처음 선택하는 Actor, Pawn등의선택지가 결국 상위 클래스를 무엇으로 할 것인지에 대한 내용이다. 그리고 언리얼에서 기본적으로 마련해둔 저런 클래스들 말고도, 우리가 원하는클래스를 상속시키는 것 또한 당연히 가능한데, 이게 ALL CLASSES에서지정하는 클래스의 기능이다. 많이들 예시로 드는 여러가지 직업의 플레이어 형태에서 '인간' 혹은 '플레이어'라는상위 클래스를 상속시켜서 같은 작업을 방지해주는 형태로 사용할 수 있겠다. 물론 BP에 들어간 이후 Class Settings에서 최상단, Parent Class에서지정해줘도 같은 방식으로 적용되니 알아두자.이상으로 도움이 되었길 바라며, 끝. 게임 개발/Unreal Engine 5 2025. 10. 24. Unreal Engine 5] Is valid? 옵션 is valid라는 옵션은 당연하게도 직역해서 이게 "유효"한 지 판단하는 노드이다.대표적으로 복사와 참조 개념에서 사실상 주소가 없는 상태로 변수가 연결되었을 때유효하지 않다고 볼 수 있다. 1. nullptr인 포인터가장 기본적인 형태.예: AActor* MyActor = nullptr;포인터 자체가 어떤 객체도 가리키지 않으므로 IsValid(MyActor)는 false.2. PendingKill 상태의 UObjectUE의 GC(Garbage Collector)가 해당 객체를 삭제 예약한 상태.이 시점에서는 실제 메모리 상에 객체가 남아있더라도 이미 “죽은 객체”로 취급됨.예:→ IsValid(MyActor)는 false를 반환함. if (MyActor->IsPendingKill()) { // 이미.. 게임 개발/Unreal Engine 5 2025. 10. 13. 엘데의 왕이 되어라 - Elden Ring 리뷰 오늘 리뷰할 게임은 엘든링입니다. 굉장히 유명한 게임이죠?저는 엔딩까지 보는데 딱 40시간 정도 걸렸습니다. 꽤나 일찍 깬 편이더군요.시작부터 엔딩까지 가면서 느낀 점들을 이야기해볼까합니다.1. 스토리의 중요성더보기엘든링의 스토리는 대충 개쩌는 엘든링이라는 게 있는데 모종의 이유로 부서졌고,황금 가문의 강자들이 이 부서진 조각들을 가져서 황금의 힘을 일부 차지합니다. 다만 원래는 같은 가문인 강자들은 부서진 조각과 힘을 얻고난 이후 전혀 화합되지 않으며자신만의 정의를 추구하기 시작했고, 얘네들끼리 싸우게되는데 이게 파쇄전쟁입니다. 결국 끝은 나지 않고 엘든링은 다시 완성되지 못한채로 강자들이 조각을 나눠갖은 상태가이어지게 되는데, 다시 엘든링이 모아지고, 왕이 탄생하여 황금률의 시대가 다시 도래하기를바라.. 작품 2025. 9. 20. 이전 1 2 3 4 ··· 26 다음