게임 개발/유니티65 Unity) Input System의 사용법, 장단점, 차이점. (입력 받기) 가장 먼저, Input System이란 유니티에서 "입력" 신호를 통 들어 관리하는 체계이다.현재는 확장성 등의 이유로 구(Old) 버전과 신(New) 버전이 나뉘어 있는 상태인데, 구 버전은 Input.GetKey류 메서드를 통해서 코드기반으로 이벤트를 만들고,신 버전은 미리 버튼에 대한 이벤트 함수를 만들고, 함수 안에 기능만 적으면 되는 식이다.이해가 어려울 수 있다. 비유하자면 구 버전은 하나가 생길 때마다 집을 새로 짓는 방식이고,신 버전은 미리 입주자들을 적어서 내면 집터를 만들어주어서 입주자만 들어가면 되는 상태이다.이렇게 이해하면 더욱 편할 것이라고 생각한다.1. 사용법.순서를 따지면 구 버전부터 설명하고 싶지만, 이 글의 수요는 신 버전에 대한 글 일거라 생각하여이탈률을 줄이기 위해서 .. 게임 개발/유니티 2024. 5. 11. 유니티) 마찰력, 튕기는 정도 조절하기 (Physic Material , 2D, 3D) 게임, 특히 3D 게임을 만들다보면 마찰력을 이용하고 싶은 경우가 한번 쯤 있을 것이다. 가장 대표적인 예시로 "얼음" 바닥을 만들 때는 물체가 미끄러져야 하기 때문에 마찰력을 낮게 설정하고 싶을 수 있다. 물론 스크립트를 통해서 눈속임으로 표현할 수도 있겠지만, 유니티에는 마찰력과 튕기는 정도를 조절할 수 있는 "Physic Material" 이란 개념이 있다. 이 글에서는 이 개념에 대해서 설명하고 사용법까지 소개하도록 하겠다. https://docs.unity3d.com/kr/560/Manual/class-PhysicMaterial.html 물리 머티리얼 - Unity 매뉴얼 Physic Material 은 충돌하는 오브젝트의 마찰 또는 바운스 효과를 조정하는 데 사용합니다. docs.unity3d.. 게임 개발/유니티 2024. 1. 28. Unity) UI가 아닌 오브젝트에 대한 이벤트(클릭 등) (Event Trigger) 유니티에서 클릭 등에 반응하는 물체가 있다면 아마 70% 이상은 UI일 것이다. 하지만 30%에 준하는 프로젝트는 UI가 아닌 오브젝트에 클릭 등의 이벤트를 걸고 싶을 것이다. 이번 글에서는 UI가 아닌 오브젝트에 이벤트를 거는 방법에 대해 소개하겠다. 1. 기본 세팅 기본적으로 오브젝트를 클릭할 수 있도록 하려면 2가지의 기본 세팅이 필요하다. 첫 번째는 Event System이다. UI를 추가하면 자동으로 추가되는데 우리는 UI가 아닌 오브젝트를 사용할 것이기에 예외적인 상황으로 직접 추가해야 한다. 이렇게 추가해 주면 된다. [UI] -> [Event System]을 눌러서 Event System을 추가해 주자. 두 번째는 Physics Raycaster이다. 이걸 Camera에 추가해 주면 된다... 게임 개발/유니티 2024. 1. 20. Unity) WebGL을 사용해서 웹에 게임을 올리는 법. WebGL이란 별다른 다운로드 절차를 거치지 않고 웹에서 바로 플레이 할 수 있도록 해주는 기술이다. 이번 글에선 WebGL을 통한 빌드를 사용해서 웹에 게임을 올리는 절차를 소개하겠다. (영구적인 웹 게시의 경우 더 많은 자료를 찾아봐야 합니다) 1. 창 열기 이것도 "빌드"를 통해서 실현된다. 따라서 먼저 [File] -> [Build Settings] 로 들어가주자. 2. 모듈 설치하기 그럼 이런 창이 하나 열리게 된다. 왼쪽 슬라이드에는 Platform 이라는 이름으로 플레이 할 환경을 선택할 수 있다. 여기서 WebGL을 선택해주자. 엔진을 설치할 때 WebGL 모듈을 특별히 추가하지 않았다면 위의 사진처럼 "Install with Unity Hub" 버튼이 나오는데, 이걸 눌러서 모듈을 설치해.. 게임 개발/유니티 2024. 1. 15. Unity) Material의 깊이 만들기 (Material의 퀄리티 높이기) 유니티에는 물체의 색과 반사도 등 보이는 걸 조절하는 Material이라는 개념이 있다. Material은 조절가능한 많은 값이 있지만 그중에서도 깊이를 형성하는 방법을 소개하겠다. 아마 첫 번째 사진이 현재 본인이 하고 있는 모습일 것이다. 그냥 사진만 넣은 모습이다. 두 번째 사진은 "normal map"을 넣어준 사진이다. normal map은 표면의 돌출, 홈(들어간 부분) 등 여러 흔적의 정보를 포함한다. 따라서 두 번째 사진이 훨씬 더 입체적으로 보인다. 세 번째 사진은 "normal map"에 "height map"까지 추가해 준 모습이다. height map은 normal map과 비슷하지만 입체적으로 들어 올리고, 그림자까지 계산하여 더 입체적으로 표현해 주는 기능을 가진다. 따라서 Ma.. 게임 개발/유니티 2024. 1. 14. Unity) Invalid build path 오류 해결법. Invalid build path라는 이름으로 " The project root directory should not be usd as a build output directory. Please create a subdirectory for the build output. " 이라는 내용의 오류 메시지가 나왔다. 먼저 기본적으로 해석부터 해보자면 "잘못된 빌드 경로"라는 이름이며 "프로젝트 루트 디렉터리를 빌드 출력 디렉터리로 사용하면 안 됩니다. 빌드 출력을 위한 하위 디렉터리를 생성하세요" 라는 내용이 출력된다. 간단하게 말하자면 이 파일 경로는 안된다고 말해주는 것이다. 나의 경우 이 프로젝트의 폴더 안에 생성하려 했는데 이 메시지가 떴다. 그리고 "build"라는 하위의 폴더를 만들어 그 폴더를 .. 게임 개발/유니티 2024. 1. 11. Unity) Hinge Joint. (다른 물체를 기준으로 회전하기) Hinge Joint란 "힌지"라는 말처럼 두 오브젝트를 맞물려 종속적으로 움직이게 한다. 가장 대표적인 예시로는 문이 있으며 이 경우 근처의 벽에 종속적으로 움직인다. https://docs.unity3d.com/kr/2023.2/Manual/class-HingeJoint.html 힌지 조인트 컴포넌트 레퍼런스 - Unity 매뉴얼 힌지 조인트(Hinge Joint) 는 두 개의 리지드바디를 묶어서 힌지에 연결된 것과 같이 움직이도록 제약을 둡니다. 이는 문을 표현하는 데 완벽하지만 사슬, 진자 운동 등을 모델링하는 데에도 사용할 docs.unity3d.com 또 다른 예시로는 사슬과 진자운동이 있는데, 이걸 활용해서 이중진자 시뮬레이션도 가능하다. 가장 대표적인 예시로 꼽히는 문을 만들어보자. 먼저 .. 게임 개발/유니티 2023. 12. 20. Unity) Collider와 Collision의 차이 (콜라이더와 콜리젼의 차이) Collider와 Collision은 보통 닿았을 때 유니티가 실행해 주는 주기함수인 OnCollision 계열 함수, OnTrigger 계열 함수들에서 보통 쓰인다. OnCollision 계열 함수들은 닿은 Collision를 주고, OnTrigger 계열 함수들은 닿은 Collider를 준다. 차이점을 알아보자. 일단, 개념부터 챙겨보자. 1. Collider Collider 즉, 충돌체는 물리 충돌 처리를 위한 클래스이다. OnTrigger 계열의 함수의 경우에는 충돌한 "물체"를 Collider 타입으로 받는다. 즉, Collider는 물리적인 객체를 의미한다고 봐도 무방하다. 추가로, Collision에서는 Collider 또한 가져올 수 있다. 즉, Collision이 Collider 보다 상.. 게임 개발/유니티 2023. 10. 28. 유니티) OnCollisionExit에서 접점을 구하는 방법. 일반적으로, 닿은 물체에 대한 Collision을 가지고 있다면 접점은 그냥 메서드를 통해서 한 번에 구해줄 수 있다. point = other.GetContact(0); 하지만 문제점은, OnCollisionStay나 Enter는 닿아 있는 상태이기에 접점을 구할 수 있는데, Exit의 경우에는 떨어진 상태이기 때문에 접점을 구할 수 없고, 따라서 인덱스 오류가 나게 된다. 이걸 해결하는 방법을 소개하겠다. 1. 이론 사실, 별거 없다. 나의 경우에는 로직을 수정해서 해결했다. 먼저, 스크립트의 어떤 함수에서도 접근할 수 있도록 변수를 하나 만들어준다. 그 후, OnCollisionStay를 통해서 변수에 접점에 대한 정보를 계속 저장해 준다. 그리고, 최종적으로 떨어졌을 때. (OnCollisionE.. 게임 개발/유니티 2023. 10. 28. 유니티) 플레이어의 이동 막기(투명벽), 오브젝트 투명하게 하기. 오랜만에 쓰는 이번글에선 플레이어의 이동을 막는 투명벽은 만들어보는 시간을 가져보도록 하겠다. 플레이어들은 항상 다양한 방법으로 우리의 게임을 뚫으려고 노력하기 때문에 이런 기본적인 처리조차 없다면 없는 지역에 들어가고, 버그가 나는 등 갓겜 소리를 들을게 분명하기에 우리는 이런 처리를 해주어야만 한다. 이제부터 그 방법을 소개하겠다. 또한 투명벽을 만든다는 소리는 오브젝트를 투명하게 한다는 말과 같으니 투명한 오브젝트를 원하는 사람도 읽기를 권장한다. 참고로 반투명한 오브젝트와는 다르다. https://alpaca-code.tistory.com/22(반투명한 오브젝트 만들기) 유니티 오브젝트 투명도 조절, 반투명 오브젝트 만들기 유니티에서 반투명한 오브젝트 등 오브젝트의 투명도를 조절하고 싶을 때가 있.. 게임 개발/유니티 2023. 4. 11. 유니티) 유니티 가격, 라이선스 차이점. & 유니티 어필리에이트 (Personal, Plus, Pro) 이번엔 유니티 어필리에이트가 된 기념으로 유니티에서 분류한 세 가지 라이선스들의 특징, 차이점에 대해 알아보며 유니티 어필리에이트로서의 첫 활동을 해보도록 하겠다. 추가로, 각 라이선스의 가격도 알아보겠다. 어필리에이트는 마케팅을 해주는 일종의 협력체로서 나는 방명록을 통해 어필리에이트 제의를 받아서 신청하고, 가입하게 되었다. 만약 유니티를 전문적으로 파고 있는 나 같은 블로그가 존재한다면, 이 기회를 노려보길 권하고 싶다. 물론 꼭 제의가 아니더라도 신청을 통해 심사 후 가입할 수 있다. 이상으로 유니티 어필리에이트에 관해 말해보았고, 이제부터는 이번 글의 메인 주제인 라이선스의 특징에 대해 말해보겠다. 1. Personal 라이선스 Personal 라이선스는 기본적으로 무료이기에 주로 일반인들이 사.. 게임 개발/유니티 2023. 4. 6. 유니티) Rigidbody로 캐릭터 회전(축)/위치(축) 고정하기. (Constraints) 이번글에선 3인칭 움직임을 가지는 거의 모든 게임에서 쓰이는 기능. 회전/위치 축을 고정하는 법에 대해 알아보겠다. 이 기능의 이름은 Constraints로, 해석하면 강제 혹은 제약이라는 뜻을 가지며 앞서 말했듯이 물체의 위치나 회전을 강제해 준다. 그럼 바로 세팅법을 소개하겠다. 사용법 먼저, Constraints를 사용할 물체가 있어야 한다. 대부분의 경우 플레이어가 되고, 그중에서도 인간 형태의 메쉬가 주로 대상이 된다. 일단 넘어지는 현상이 일어나는 이유가 주로 Rigidbody이기에 원하는 오브젝트에 Rigidbody를 추가해 주어야 한다. 인스펙터 창에서 Add Component 버튼으로 추가할 수 있다. 그럼 컴포넌트의 변수들은 이런 식으로 정렬되게 되는데, 밑에 보면 날개가 있는 메서드가.. 게임 개발/유니티 2023. 4. 3. 이전 1 2 3 4 ··· 6 다음 💲 추천 글