본문 바로가기

Unity

(7)
[Unity] 카메라가 바라보는 기준으로 캐릭터 이동 (1인칭) 해당 포스팅은 크레이 님의 itadventure.tistory.com/390 포스팅을 참고하여 작성하였습니다. 1인칭 이동에 대한 자세한 설명이 필요하신 분은 이 포스트를 먼저 읽는 것을 추천드립니다. 유니티3D(Unity3D) 1인칭 시점 조작 #2 이번 시간에는 지난 시간에 이어 1인칭 시점 조작의 이동편에 대해 다루어 보겠습니다. 3D 가상공간에서 1인칭 시점으로 거리를 걷는 것은 현실과 아주 유사합니다. 만일 내가 바라보는 방향이 itadventure.tistory.com 기본적인 틀은 크레이님의 마지막 코드와 같으나, 중력과 충돌 구현 부분을 추가한 코드입니다. 스크립트의 이름은 Mouse_Camera_Action입니다. using System.Collections; using System.Co..
[Unity] 캐릭터 이동 시 카메라 따라가기 (3인칭) 캐릭터 이동을 구현하였으니, 이제 카메라가 캐릭터를 따라다닐 수 있도록 구현해봅시다. 이전에 만들었던 Scripts 폴더에 MainCamera_Action이라는 스크립트를 생성해줍니다. 이후 다음과 같이 코드를 작성해줍시다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class MainCamera_Action : MonoBehaviour { public GameObject Target; // 카메라가 따라다닐 타겟 public float offsetX = 0.0f; // 카메라의 x좌표 public float offsetY = 10.0f; // 카메라의 y좌표 public float offset..
[Unity] 캐릭터 점프 시 벽에 붙는 현상 수정 지난 포스팅에서 충돌체 만들기와 캐릭터의 이동 및 점프를 구현했습니다. 이렇게 캐릭터와 벽(충돌체)를 만들고서 점프한 후 벽에 부딪혔더니 캐릭터가 벽에 달라붙은 후 천천히 떨어지는 현상이 발생했습니다. 이번에는 이러한 현상을 수정해보도록 하겠습니다. 해당 현상은 오브젝트의 마찰력과 관련된 현상입니다. 그러므로 충돌체의 마찰력을 지워주는 식으로 현상을 해결해보도록 합시다. 마찰력을 조작하기 위해서는 Physic Material을 사용해야 합니다. 그러므로 Material을 생성해야 하는데, 이 Material 또한 추후 여러가지가 생성될 수 있으니 폴더를 만들고 그 밑에 만들어줍시다. 이렇게 만들고 나서 Inspector를 보니 5가지 프로퍼티가 있습니다. 해당 프로퍼티의 내용은 다음과 같습니다. 더 자세..
[Unity] 충돌처리 충돌이 일어나기 위해서는 두 가지 조건이 있습니다. 1. 충돌할 두 GameObject가 모두 Collider를 가지고 있어야 하며 2. 충돌하는 GameObject 중 하나는 Rigidbody를 가지고 있어야 합니다. 이 때 두 GameObject중 움직이는 것이 있다면 움직이는 GameObject가 Rigidbody를 가져야 합니다. Collider가 잘 보이도록 키워놓은 그림입니다. 커다란 초록색 부분이 Collider입니다. 기본적으로 유니티에서 제공하는 Object를 생성할 때 그 오브젝트의 모양과 크기에 맞춘 Collider가 함께 생성됩니다. 직접 모델링한 오브젝트를 넣는다면 그에 맞춘 Collider도 생성하거나 그에 비슷하게 Collider를 맞춰주어야 합니다. 만일 Cube Object..
[Unity] 캐릭터 점프 이번에는 캐릭터의 점프를 구현해보겠습니다. 먼저 초기 코드입니다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { public float Speed = 10.0f; public float rotateSpeed = 10.0f; public float jumpForce = 1.0f; // 점프하는 힘 Rigidbody body; // 컴포넌트에서 RigidBody를 받아올 변수 float h, v; // 유니티 실행과 동시에 한번 실행되는 함수 void Start() { body = GetComponent(); // GetComponent를 활용하여..
[Unity] 캐릭터가 바라보는 방향으로 회전 이번에는 캐릭터가 바라보는 방향으로 회전할 수 있도록 스크립트를 수정해보겠습니다. 캐릭터가 바라보는 방향을 알 수 있도록 3D Object에서 Cube를 하나 추가해준 후 다음과 같이 설정합니다. 그리고 Cube를 드래그하여 Player에 올리면 Cube가 Player의 자식으로 등록됩니다. 큐브가 돌출된 방향이 캐릭터가 바라보는 방향이 됩니다. 다음은 코드입니다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { public float Speed = 10.0f; public float rotateSpeed = 10.0f; // 회전 속도 floa..
[Unity] 캐릭터 이동 캐릭터가 움직일 수 있는 땅을 먼저 만들어줍시다. 땅의 재질은 Hierarchy에서 우클릭을 한 후 3D Object > Plane 으로 만들어줍니다. Plane을 생성하셨으면 Plain의 Inspector 창에서 Transform > Position을 0, 0, 0 으로 바꿔주고, Scale을 5, 1, 5로 설정해줍시다. 다음은 캐릭터를 만들어줄 차례입니다. 저는 Capsule 오브젝트를 사용하여 만들어주겠습니다. Capsule의 이름을 Player로 바꾸고, 위치를 0, 1, 0 으로 설정합니다. Y좌표의 위치가 1인 이유는 Plane의 Y좌표가 0이기 때문에 두 오브젝트가 겹치지 않게 하기 위함입니다. Plane의 Y좌표를 -1로 하고 새로 생성하는 오브젝트의 Y좌표를 0으로 설정해도 무방합니다...