본문 바로가기

분류 전체보기

(107)
생동감 있는 몬스터 만들어 보기 게임을 진행하게 되었을 때몬스터가 가만히만 있다가 플레이어를 감지했을 때에만 추적하는 메커니즘이라면 이 것 만큼 단조로운 상황이 존재할 수 있겠는가? FixedUpdate를 사용해서 몬스터가 플레이어를 감지 할때까지 기다리는 방법보다는코루틴을 사용하여 몬스터를 제어함과 동시에 생동감을 넣어주는 방법을 생각해 봤다. Start메서드에서 UltimatedMove라는 IEnumerator를 호출하여 코루틴을 시작한다.알다 시피 코루틴은 여러 프레임에 걸쳐 실행되는 작업을 가능케 한다. ⓐ while (true)무한 루프이다. 코루틴이 중단되지 않는 한 계속 실행되도록 설계한다. ⓑ if (monsterMechanism.isGrounded)몬스터가 지면에 닿아있는지 여부 ⓒ monsterMechanism.IsP..
그래픽스 - 셰이더 셰이더가 무엇일까? 궁금해서 찾아 봤다 1. 렌더링 파이프라인 이해하기기준점 SpawnPoint (0,0,0)개별의 꼭지점 들을 Vertex이 Vertex들을 이어주는게 VertexShader 과정 및 Scene으로 배치Model : LocalPosition -> WorldPosition View : 카메라위치로 이동Perspective : 원근감2. PBR 렌더링이해하기 렌더링 방식 - 유니티 허브를 켜보면 여러가지 탬플릿이 있다.LWRP -> URP = 가벼운 파이프라인Built in 셰이더가 대세였지만 모바일 성능이 좋아지면서 URP HDRP를 주로사용HDRP는 일반적으로 콘솔게임용PBR Rendering = Physically Based Rendring = 물리 기반 렌더링3. Shader Gra..
궁수 키우기 [2D 방치형 모바일] 방치형 모바일 게임 -_- (youtube.com) Raising-Archer – FigJam (figma.com) FigmaCreated with FigJamwww.figma.com
Abyss-ascent 🌈 Abyss-Ascent 🌈다양한 카메라 시점속에서 맵을 탈출하자 !플레이 영상
Abyss-ascent 맵 테스트 맵 테스트 플레이 두개의 맵  Portal GameObject  및 Portal.cs 생성인터페이스 IInteractable 활용 포탈과 근접할 시 E키를 눌러서 상호 작용첫 번째 포탈의 스폰포인트는 SpawnPont1, 두번째 포탈의 스폰포인트는 SpawnPont2 필드 부여
3D 카메라 타입 별 상호 작용 [ 3 가지 카메라 타입 ] [ 문제점 ] 현재 코드는 3인칭에서만 상호작용하고 있다.횡스크롤과 탑뷰에서도 상호작용하려면 어떤식으로 방향을 잡아야 하는가? [ 해결 방안 ]1. 레이를 생성하는 것을 고수하겠다고 하면, 카메라가 아닌 플레이어에서 레이가 나가는 방식으로 생각해봐야 한다.    그대신 Letter같은 상호작용 하는 물체는 굴러다니거나 하는 것 처럼움직이면 안됀다. 2. 충돌 처리로 상호작용 하는 방법이 있다.  2-1. 플레이어의 자식오브젝트로 게임오브젝트를 생성한다.  2-2. 자식오브젝트의 Renderer을 체크 해제하여 보이지 않게한다.  2-3. 자식오브젝트가 직접적인 충돌이 아닌 간접적인 충돌을 하게 하기위하여 Is Trigger를 체크
인벤토리 토글 해체 분석기 canLook의 자료형은 bool이며 초기값은 true로 할당LateUpdate() 에서 if(canLook)일 경우에 CameraLook()을 실행Tab키를 눌러서 인벤을 켰을 때, ToggleCursor() 메서드가 실행되는 상황  bool toggletoggle의 판단 기준 = 마우스 커서가 숨김상태인지 toggle = true 일 경우마우스 커서 숨김모드를 None으로 하여 커서를 보이게한다.마우스 커서가 보인다는 뜻은 인벤토리를 켰다는 뜻이다. toggle = false 일 경우마우스 커서 숨김모드를 Locked로 하여 커서를 안보이게한다.마우스 커서가 안보인다는 뜻은 인벤토리를 안켰다는 뜻이다. canLook = !toggle;레이트 업데이트에서 canLook이 true일 때에 CameraLo..
3D 어드벤쳐 만들기 ✈️ 프로젝트 소개 Unity3D의 캐릭터 이동과 물리 처리를 구현게임내의 여러 상태를 UI를 통해 사용자에게 표시다양한 게임 오브젝트와의 상호작용을 객체지향적으로 구현 💭 구현 기능           📓 기술 스택🕹️ 플레이 영상
플레이어를 움직이는 오브젝트에 동기화 하는법 beforeDirection 변수를 사용하는 이유는 현재 이동 방향과 비교할 수 있다. 플레이어가 움직이는 오브젝트의 움직임을 동기화하기 위함이 변수를 활용하여 현재 이동 방향이 이전과 동일한지 여부를 확인이를 기반으로 플레이어의 Rigidbody의 속도를 업데이트플레이어가 이동하지 않을 때, 즉 moveDirection이 Vector3.zero일 때도 beforeDirection을 통해 이전에 설정된 속도를 유지 움직임이 없는 경우에도 beforeDirection과 비교하여 필요할 때만 속도를 변경
코루틴 Coroutine [ Coroutin 정의 ]① Coroutine 은 Unity 에서 비동기적인 작업을 수행하기 위한 강력한 도구② 주로 사용 되는 곳 : 특정 시간 간격으로 반복되는 작업, 지연된 작업, 연속적인 애니메이션 및 이동 구현③ 일시 중단되고 다시 시작될 수 있는 기능을 제공 코루틴은 얼핏 눈으로 봤을 때 바동기적으로 보이지만, 함수 돌아가는 꼴을 보면 동기적이다 [ Coroutin 특징 ]① 비동기 작업코루틴은 다른 코드와 독립적으로 실행되며, 주로 지연된 작업을 수행하거나 반복적인 작업을 처리 ② 일시 중단 및 재개코루틴은 실행 중에 일시 중단되고 다시 시작될 수 있기 때문에, 코드가 실행되는 동안 대기하거나 지연을 일으킬 수 있음 ③ 쉬운 구현단순히 메서드 앞에 IEnumerator 형식의 리턴 타입을 ..
TryGetComponent ① TryGetComponent 는 Unity 의 'MonoBehaviour' 클래스에서 제공되는 메서드② Bool 값을 갖음③ 특정 타입의 컴퍼넌트를 안전하게 가져올 수 있음④ 컴퍼넌트가 존재하지 않는 경우에도 null을 반환하지 않고 false를 반환⑤ 그러므로 컴퍼넌트를 가져올 수 없는 상황에도 대응할 수 있음
3D 탬플릿 - 스카이박스, 포스모드, 레이캐스트 [ 스카이박스 ]6개의 텍스처로 구성된 큐브 맵 또는 하나의 구체로 텍스처가 매핑된 구체형 스카이박스로 구성① Unity에서는 씬의 배경으로 사용되며, 게임 환경을 확장시키는데 활용② 주로 하늘, 구름, 산 등의 자연적인 배경을 표현하는 데 사용③ 미리 만들어진 스카이박스를 사용하거나 직접 만들어서 Unity에서 적용할 수 있음④ 게임 중에 스카이박스를 동적으로 변경하여 낮과 밤 등의 시간대나 특정 이벤트에 맞게 배경을 변화시킬 수 있음⑤ 성능에 영향을 미치므로 최적화에 주의해야 함스카이박스 - Unity 매뉴얼 (unity3d.com) 스카이박스 - Unity 매뉴얼스카이박스(Skyboxes) 는 전체 씬을 둘러싸는 래퍼로 지오메트리 너머의 월드가 어떻게 생겼는지를 보여줍니다.docs.unity3d.c..