유니티 게임21 유니티 2D 점프, 더블점프 ▣ 코드설명jumpForce: 점프 시 캐릭터가 얼마나 높이 점프할지를 결정하는 변수입니다. rb: 캐릭터의 물리적 움직임을 처리하는 Rigidbody2D 컴포넌트를 저장하기 위한 변수입니다. canDoubleJump: 캐릭터가 더블 점프를 할 수 있는지 여부를 결정하는 불리언 값입니다. 처음에는 false로 설정되며, 더블 점프를 하고 나면 false로 바뀝니다. isGrounded: 캐릭터가 땅에 있는지 여부를 확인하는 변수입니다. groundCheck: 캐릭터가 땅에 닿았는지를 확인하는 위치를 나타내는 Transform입니다. 주로 캐릭터 발 밑에 위치합니다. groundCheckRadius: 캐릭터가 땅에 닿았는지를 확인하기 위해 사용하는 원형 감지 범위의 반지름입니다. groundLayer: 땅.. 2024. 9. 10. 유니티 Array, List, Dic , Call by Reference, Call by Value ▣설명: 동일한 타입의 데이터가 연속적으로 메모리에 저장되는 자료구조입니다. 특징: 고정 크기: 배열의 크기는 선언 시 고정됩니다. 빠른 접근: 인덱스를 통해 빠르게 접근할 수 있습니다. 단점: 크기가 고정되어 있어 유연성이 떨어집니다. 예시: int[] numbers = new int[5]; https://learn.microsoft.com/en-us/dotnet/api/system.array?view=net-8.0 Array Class (System)Provides methods for creating, manipulating, searching, and sorting arrays, thereby serving as the base class for all arrays in the common lan.. 2024. 8. 31. 유니티 마우스 위치로 총알 발사 ▣ Player 오브젝트에 Gun 오브젝트를 추가하고 Sprite Renderer와 GunManager라는 스크립트를 추가합니다. ▣ 그리고 Gun안에 BulletPos라는 이름에 오브젝트를 상속하고 총알이 발사되는 위치로 이동합니다. ▣ GunManager 스크립트로 가서 메인카메라, 마우스위치, 총알프리팹, 총알 나가는 위치, 총 쏘는 여부를 나타내는 변수, 시간, 총 쏘는 딜레이타임변수를 각각 선언합니다. 그리고 Start() 함수에서 mainCamera라는 대입 합니다. ▣ 그리고 화면공간에 마우스 위치를 가져오는 코드, 방향을 구하는 코드, 수평축으로부터 한 점까지 각도를 구하는 함수를 각각 작성하고 총 회전값에 대입합니다. 딜레이 시간에 따라 총알이 복제되는 코드까지 완성합니다. .. 2024. 7. 11. 유니티 뛰는 애니메이션 ▣ 플레이어 애니메이션에 Parameters를 Float 형식으로 추가합니다. ▣ Base Layer에서 From New Blend Tree를 추가합니다. ▣ Blend Tree 이름을 지정하고 기본애니메이션과 연결합니다. Parameters는 아까 생성한 Run으로 지정하고 기본값은 0으로 합니다. ▣ Blend Tree에 두 개의 애니메이션을 추가합니다. ▣ 플레이어 스크립트로 들어가서 움직임 입력을 받은 코드에 Abs를 이용해서 앞뒤좌우 상관없이 모두 다 애니메이션에 값을 양수 1로 할 수 있게 Abs 함수를 사용했습니다. https://docs.unity3d.com/kr/530/ScriptReference/Mathf.Abs.html Mathf-Abs - Unity 스크립팅 API Returns t.. 2024. 1. 18. 유니티 총알 경로 그리기 ▣ 프리팹으로 만든 총알에 경로를 그리기 위해서는 Component에 Trail Renderer를 추가합니다. https://docs.unity3d.com/kr/2021.3/Manual/class-TrailRenderer.html Trail Renderer 컴포넌트 - Unity 매뉴얼 Trail Renderer 컴포넌트는 움직이는 게임 오브젝트 뒤에 폴리곤 트레일을 렌더링합니다. 이동하는 물체의 움직임이나 이동하는 물체의 경로 또는 위치를 강조할 때 사용할 수 있습니다. docs.unity3d.com ▣ Trail Renderer 컴포넌트는 움직이는 게임 오브젝트 뒤에 폴리곤 트레일을 렌더링합니다. 이동하는 물체의 움직임이나 이동하는 물체의 경로 또는 위치를 강조할 때 사용할 수 있습니다. ▣ 기본적으.. 2024. 1. 14. 유니티 [부모,자식오브젝트 분리] ▣ 안녕하세요.이번장에서는 부모, 자식 오브젝트를 분리하는 코드를 공부해 보겠습니다. ▣ 먼저 게임 오브젝트 2개를 생성해 주시고 게임오브젝트2를 게임오브젝트1에 자식으로 넣습니다.그리고 게임오브젝트 2에 스크립트를 하나 생성합니다. ▣ 게임오브젝트 2의 스크립트에서 Start() 함수에 gameObject.transform.SetParent(null); 를 작성합니다.SetParent() 함수는 부모오브젝트를 정해주는 함수인데 매개변수 값에 null 를 입력합니다.저장을 하고 ▣ 플레이를 누르면 위에 이미지처럼 오브젝트가 분리된 걸 확인할 수 있습니다. ▣ 부모를 추가하는 코드입니다. 2023. 1. 26. 유니티 - [점프 예시1] ▣ 안녕하세요. 이번장에서는 2D오브젝트를 점프하는 코드 중 한 가지를 공부해보겠습니다. 점프를 하는 방법은 여러 가지 방법이 있습니다. 상황에 따라 다양한 코드로 할 수 있습니다. 점프 코드를 할 때 핵심은 내가 어느 좌표로 할 것인가?를 생각해봐야 합니다. 저희는 2D에서 Y값을 바꿔 점프를 구현하겠습니다. ▣ 먼저 2D프로젝트를 생성해주시고, 2D Object에서 Sprites 두 개를 만들 만들어주세요. Player(원), Ground(사각형) ▣ 원과 사각형에 이름을 각각 Player와 Ground로 이름을 지정해주시고, Player오브젝트에 스크립트와 Rigidbody2D 그리고 ▣ Capsule Collider2D 컴포넌트를 추가해주세요. ▣ Ground에는 BoxCollider2D 컴포넌트.. 2022. 8. 25. 유니티 - [CameraShake, 카메라 쉐이크효과] ▣ 안녕하세요. 이번장에서는 카메라 셰이크(흔들기) 효과에 대해 공부하도록 하겠습니다. ▣ 우선 3D프로젝트를 생성해 주시고, 기본 플레이어와 땅을 배치해 주세요. 그리고 카메라 위치를 플레이어 캡슐이 중앙에 보이게 위치를 변경해주세요. 그런 다음 플레이어에 스크립트 한 개를 생성해서 넣어주세요. ▣ 스크립트를 열어서 cam, cameraOriginalPos 변수를 선언해주세요. cam에는 메인카메라메인 카메라 클래스를 cameraOriginalPos에는 메인 카메라에 위치를 넣어주세요. ▣ 그런다음 업데이트 함수에서 Debug.Log(Random.insideUnitSphere)이라는 클래스에 있는 기능을 출력해보려고 합니다. https://docs.unity3d.com/kr/530/ScriptRefer.. 2022. 6. 9. 유니티 - [AddForce와 Velocity 차이] ▣ 안녕하세요. 이번장에서는 AddForce와 Velocity 차이에 대해 공부해보겠습니다. ▣ 우선 3D 프로젝트를 생성해주시고, Plane와 원모 양에 Player를 생성해주세요. 그리고 Player에 Rigidbody를 넣어주시고 Player라는 스크립트도 생성해서 넣어주세요. ▣ 이제 스크립트를 작성해보겠습니다. 먼저 플레이어 속도 변수를 만들어주시고, Rigidbody를 사용할 변수도 만들어 Start() 함수에서 GetComponent로 대입해주세요. 그런 다음에 X, Z변수에 GetAxis값으로 입력 값을 대입해주시고 AddForce() 함수를 이용하여 힘을 줘서 Player를 움직이는 코드를 작성하겠습니다. 3D에서는 앞뒤에 값은 Z이기 때문에 (x, y, z) 순으로 값을 대입했습니다. .. 2022. 3. 16. 유니티 - [collider2D, composite, Box Collider 2D ▣ 안녕하세요. 이번장에서는 composite를 활용하여 콜라이더를 합쳐서 사용하는 방법을 공부해보겠습니다. ▣ 우선 2D오브젝트로 Square를 두 개 생성해주세요. 그리고 각각 Box Collider 2D를 넣어주세요. ▣ 그런다음에 빈 오브젝트를 생성합니다. 오브젝트에 위치는 0,0,0으로 해주시고, 오브젝트에 Composite Collider 2D를 넣어주세요. ▣ 그런다음에 빈 오브젝트에 Square를 끌어서 자식으로 넣어줍니다. ▣ 그리고 Square 오브젝트에 Box collider2D에 있는 Used By Composite를 체크해주세요. ▣ 그리고 빈오브젝트에서 Composite Collider 2D에 Edge Radius를 조정해보면 이렇게 빈오브젝트를 기준으로 콜라이더가 합쳐져서 영역.. 2022. 3. 4. 유니티 - [FPS게임, 카메라마우스회전, 캐릭터컨트롤] ▣ 안녕하세요. 이번장에서는 간단하게 FPS 게임에서 플레이어를 움직이고 카메라로 마우스를 움직이게 하는 코드를 만들어보겠습니다. ▣ 먼저 3D 프로젝트를 생성해주시고, 3D 오브젝트로 플레이어와 큐브를 배치해주세요. ▣ 그런 다음에 플레이어 오브젝트에 콜라이더를 삭제해주시고 Character Controller를 추가해주세요. ▣ 그리고 플레이어 오브젝트를 따라서 카메라가 같이 움직여야 하기 때문에 메인 카메라를 플레이어 오브젝트에 넣어주세요. ▣ 그런 다음에 메인 카메라에 위치를 플레이어 오브젝트 머리에 옮겨서 FPS처럼 보이게 위치를 변경합니다. ▣ 그런 다음에 플레이어오브젝트에 PlayerManager스크립트를 추가해주시고, 스크립트를 실행해주세요. 그런 다음에 먼저 플레이어컨트롤러를 컴포넌트로 .. 2021. 8. 8. 유니티 - [RayCast, RayCastAll, 레이캐스트] ▣ 안녕하세요 이번장에서는 RayCast를 공부해보겠습니다. 레이 캐스트는 쉽게 이야기해서 오브젝트에서 레이저를 쏴서 그 레이저에 달인 오브젝트를 감지하기 위한 기능입니다. 보통 FPS 게임에서나 VR에서 많이 사용됩니다. ▣ 먼저 간단하게 3D프로젝트를 생성해주시고, 3D 오브젝트에서 캡슐로 Player 만들어주세요. Player안에 PlayerManager라는 스크립트도 작성해주세요. ▣ 그리고 레이 캐스트로 닿을 대상 3D 오브젝트에서 큐브를 생성해주세요. 위치에 Z값은 10으로 해주세요. 그리고 콜라이더도 꼭 추가해주세요. 충돌을 측정하기 위함입니다. 이제 PlayerManager스크립트를 들어가서 코드를 작성해보겠습니다. ▣ Update() 함수에서 Physics. 를 접근해서 Raycast라고.. 2021. 7. 26. 유니티 - [오브젝트복제, Instantiate, 프리팹, 총알발사] ▣ 먼저 3D로 프로젝트를 생성하고 캡슐로 3D 오브젝트를 생성해주세요. 게임 오브젝트에 이름을 player로 바꿔주세요. 그리고 3D오브젝트로 Plane 땅도 생성해주세요. 그런 다음에 총알과 플레이어 색을 구분하기 위해 머테리얼을 생성해주세요. 색은 여러분들이 원하시는 색으로 자유롭게 바꿔주세요. ▣ 그런 다음에 빈 게임 오브젝트를 생성해주시고 이름을 ShotPos로 지정해주세요 이건 총알을 쏠 때 생성되는 위치로 지정할겁니다. 그리고 중요한건 처음 생성할 때 꼭 Posistion에 값을 0,0,0으로 초기화를 해주신 다음에 Player오브젝트 자식으로 넣어주세요. ▣ 이번에는 총알을 생성해주세요. 저는 구분하기 쉽게 3D 오브젝트에 큐브로 생성했습니다. 이름도 바꿔주시고 크기와 색도 자유롭게 바꿔주.. 2021. 7. 13. 유니티 - [카메라 오브젝트 따라가기, 점프, AddForce, Velocity] ▣ 먼저 여러분들이 원하시는 player 오브젝트와 Ground 바닥을 만들어주세요. Ground오브젝트에 Tag를 꼭 ground로 바꿔주세요. 이건 나중에 점프를 중복해서 하지 않기 위함 입니다. ▣ 그리고 player에는 collider와 Ridgibody 그리고 스크립트를 넣어주세요. ▣ Main Camera 또한 스크립트를 넣어주세요. 그리고 카메라가 공을 어떻게 보이게 따라갈지에 대한 위치를 지정해주세요. 카메라 위치는 잘 정해주셔야합니다. 그래야 그 위치로 카메라가 계속 공을 따라가게 하는 코드를 진행합니다. ▣ 먼저 플레이어 스크립트를 작성하겠습니다. speed, jump 는 public 으로 지정하셔서 만들어주세요. 우리가 유니티 에디터상에서 스피드와 점프를 조절하면서 진행하겠습니다. 그.. 2021. 5. 27. 유니티 - [2D캐릭터 회전] https://assetstore.unity.com/packages/2d/characters/bolt-2d-dinorun-assets-pack-188721 Bolt 2D DinoRun Assets Pack | 2D 캐릭터 | Unity Asset StoreElevate your workflow with the Bolt 2D DinoRun Assets Pack asset from Goldmetal. Find this & more 캐릭터 on the Unity Asset Store.assetstore.unity.com▣ 여기서 에셋을 다운받으세요. ▣ 우선 코드를 진행하기전에 Transform에서 어떤 값을 조절해야 2D 캐릭터가 회전하는지 확인해보겠습니다. player에 오브젝트에서 Transform에 R.. 2021. 5. 18. 유니티 - [2D 캐릭터 움직이기] https://assetstore.unity.com/packages/2d/characters/bolt-2d-dinorun-assets-pack-188721 Bolt 2D DinoRun Assets Pack | 2D 캐릭터 | Unity Asset Store Elevate your workflow with the Bolt 2D DinoRun Assets Pack asset from Goldmetal. Find this & more 캐릭터 on the Unity Asset Store. assetstore.unity.com ▣ 여기서 에셋을 받으세요. ▣ 기본적으로 원하시는 2D 캐릭터와 바닥을 넣어주세요. Player오브젝트에 Rigidbody 2D와 Box Collider2 D 영역을 넣어주세요. Rigi.. 2021. 5. 12. 유니티 5장(Fadein, FadeOut, 페이드효과, 알파값 조절, image, Ui) ▣ 안녕하세요. 오늘은 게임 씬에서 게임 씬으로 넘어갈 때 페이드인 페이드아웃 효과로 자연스럽게 화면을 넘어가는 효과를 만들어보려고 합니다. ▣ 이 방법은 여러 방법 중에 하나입니다. 정답이라고 생각하시지 마시고 이 방법을 공부한 후에 어려 분들만에 방법으로 공부해 보세요. ▣ 먼저 새 프로젝트를 만들어주세요. 그리고 UI에서 Panel을 생성해 주세요. ▣ 그럼 이렇게 Canvas안에 Panel이 생성된 걸 확인할 수 있습니다. Panel을 클릭하셔서 image에서 Color에서 RGB 모두 0으로 맞춰주시고요. A 알파 값은 255로 맞춰주세요. RGB은 각각 색을 의미하고, A알파는 투명도를 의미합니다. ▣ 그런 다음에 GameManager을 생성해 주시고 그 안에 GameManager라는 스크립트.. 2021. 2. 9. 유니티 4장(mixamo 애니메이션 만들기, animation type, humanoid, 캐릭터 애니메이션) ▣ 안녕하세요^^ 여러분들이 원하시는 게임 잘 만들고 계신가요?? 이번장은 애니메이션을 mixamo를 활용하여 만들고 활용하는 간단한 과정을 공부해 보도록 하겠습니다. 주의해야 할 점은 제가 애니메이터랑 애니메이션을 실행하고 다루는 부분은 공부하지 않고 오로지 만들고 그걸 활용하는 방법만 공부하니 이점 참고해 주시면 감사하겠습니다. ▣ 제가 말씀드리는 방법은 저도 배우며 공부한 내용 중에 한 가지 방법입니다. 제가 말씀드리는 방법이 정답이 아닙니다. 이점 참고해주세요~~^^ ▣ 먼저 여러분들이 사용할 mesh를 선택해 주세요. 저는 유니티에서 구매한 좀비 mesh를 사용하겠습니다. 그리고 rig를 들어가셔서 animation Type이 Humanoid인지 확인해야 합니다. 쉽게 사람 모양에 mesh이면 .. 2020. 10. 11. 유니티 3장(게임 배경, sky box, material, 머티리얼, 배경색바꾸기, Lighting, 라이팅, 하늘배경 바꾸기) ▣ 안녕하세요 ^^ 이번장에서는 게임을 제작할 때 배경이 되는 부분을 머티리얼을 이용해서 꾸며보는 간단한 팁을 공부해 보도록 하겠습니다. ▣ 매 장마다 말씀드리지만 제가 만드는 방법이 무조건 정답이 아닙니다. 코딩에는 정답이 없듯이 상황에 맞게 여러 가지 팁을 보시면서 자신만에 방법을 만들어가는게 진짜 코딩이라고 저는 생각합니다. 그러니 그걸 감안해서 공부해주세요. ▣ 먼저 이렇게 프로젝트를 하나 만들어주시고요. 그리고 3D로 캡슐과 땅을 만들어보겠습니다. 그런 다음에 ▣ 각각에 역할로 오브젝트 이름을 바꿔줍니다. 그리고 땅에 크기도 크게 해 주었습니다. 이건 그냥 제가 습관적으로 정해서 만든 것입니다. 배경 만드는 것과 상관이 없습니다. ^^;; 그런 다음에 배경에 사용할 에셋을 가지고 오겠습니다. ▣.. 2020. 8. 30. 유니티 2장(오브젝트 풀링, 리스트, 배열, 프리펩, 오브젝트 충돌) ▣ 안녕하세요 ^^ 이번장은 오브젝트 풀링을 공부해 보겠습니다. 오브젝트 풀링이 무엇인지 함께 실습으로 공부하면서 진행하겠습니다. ▣ 그리고 다시 말씀드리지만 제가 드리는 방법은 정답이 아닌 여러 방법 중에 한 가지임을 명심하시고 저와 함께 유니티를 공부한다고 생각해주시면 감사하겠습니다. ▣ 먼저 3D로 프로젝트를 생성해주시고 3D 게임 오브젝트 캡슐과 바닥을 생성해줍니다. 저는 캡슐을 bullet이라고 이름을 지었습니다. 계속 총알이 떨어지는 게임을 만들 겁니다. ▣ 그런 다음에 bullet오브젝트에 Rigidbody를 추가해 줍니다. ▣ 그리고 게임을 플레이해보면 기본적으로 3D오브젝트에 추가된 Collider까지 캡슐이 떨어지는 걸 확인할 수 있습니다. Rigidbody를 보면 Use Gravity.. 2020. 8. 4. 유니티 1장(shader, 양면쉐이더, 양면출력, 천장 양면출력, 머티리얼) ▣ 안녕하세요 ^^ 유니티를 오늘부터 글을 쓰게 되었습니다. 제 블로그 소개를 보면 아시겠지만, 제가 무언가를 가르치기보다는 제가 공부했던 그리고 공부해서 배운 내용들을 함께 공유하고 나누는 블로그입니다. ▣ 오늘은 양면으로 쉐이더를 출력하는 걸 공부해 보겠습니다. 기능적인 것만 간단하게 실습 위주로 설명하도록 하겠습니다. 이 유니티 챕터는 꿀팁을 위주로 진행합니다. 참고해주세요. ▣ 먼저 이렇게 3D로 프로젝트를 만들어주시고요. 가운데 플레이어를 의미하는 3D 큐브와 3D로 plane바닥과 천장을 만들어보겠습니다. 그리고 ▣ 머티리얼을 에셋에 생성합니다. ▣ 그리고 머티리얼 이름을 Ground로 바꿔주시고 ▣ 눈이 아프니깐 색을 회색톤으로 지정해 줍니다. ▣ 이렇게 머티리얼을 각각 바닥, 천장 게임 오.. 2020. 7. 27. 이전 1 다음