'Unity3D'에 해당되는 글 52건
- 2017.02.25 [Unity3D] Character Controller를 이용한 캐릭터 움직임.
- 2017.02.25 유니티란?
[Unity3D] Character Controller를 이용한 캐릭터 움직임.
Character Controller을 이용해 구현할 움직임은,
1. 오른쪽, 왼쪽, 위, 아래 움직임
2. 캐릭터 점프
3. 경사면 이동
위 3가지를 구현해볼 예정이다.
결과를 보자면 이렇다.
1. 큐브를 하나 만든뒤 Add Component를 통해 캐릭터 컨트롤러를 추가한다.


캐릭터 컨트롤러의 목록을 살펴보도록 하자.
Slope Limit - 콜라이더가 표시된 값 이하의 기울기만을 오르도록 한다.
=> 한 마디로 캐릭터가 경사면과 만났을때 움직일수 있는 각도(기울기)를 말한다. 현재는 45라고 되어있는데, 45도 이하의 경사면을 만났을때 움직일수 있다.
Step Offset - 표시된 값보다 지면에 가까운 경우에만 캐릭터가 계단에 오른다.

Skin Width - 두 콜라이더가 skin Width와 동일한 깊이에서 서로 관통한다. skin Wdith가 커지면 지터가 줄어든다.
skin width가 낮으면 캐릭터가 움직일 수 없게 되는 경우가 있다. Radius가 10%일 때 이 값을 설정하는것이 좋다.
동영상을 보면 이해가 될 것이다.
Min Move Distance - 캐릭터가 표시된 값 미만으로 움직이려 해도 움직이지 않는다.
지터를 줄이는데 사용한다. 대부분 이 값은 0으로 둔다.
Center - 콜라이더의 센터의 x,y,z위치를 조절한다.
Radius - 콜라이더의 반경을 설정한다. 기본적인 폭 조절이라 생각하면 된다.
Height - 콜라이더의 높이. 이 값을 조절하면 위, 아래 방향으로 y축을따라 콜라이더가 확대 및 축소 된다.
스크립트를 하나 작성하여 만든 큐브에 넣도록 하자.
그리고 스크립트를 작성한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player2 : MonoBehaviour {
public float speed; // 캐릭터 움직임 스피드.
public float jumpSpeedF; // 캐릭터 점프 힘.
public float gravity; // 캐릭터에게 작용하는 중력.
private CharacterController controller; // 현재 캐릭터가 가지고있는 캐릭터 컨트롤러 콜라이더.
private Vector3 MoveDir; // 캐릭터의 움직이는 방향.
void Start()
{
speed = 6.0f;
jumpSpeed = 8.0f;
gravity = 20.0f;
MoveDir = Vector3.zero;
controller = GetComponent<CharacterController>();
}
void Update()
{
// 현재 캐릭터가 땅에 있는가?
if (controller.isGrounded)
{
// 위, 아래 움직임 셋팅.
MoveDir = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
// 벡터를 로컬 좌표계 기준에서 월드 좌표계 기준으로 변환한다.
MoveDir = transform.TransformDirection(MoveDir);
// 스피드 증가.
MoveDir *= speed;
// 캐릭터 점프
if (Input.GetButton("Jump"))
MoveDir.y = jumpSpeed;
}
// 캐릭터에 중력 적용.
MoveDir.y -= gravity * Time.deltaTime;
// 캐릭터 움직임.
controller.Move(MoveDir * Time.deltaTime);
}
}
|
cs |
'Unity3D > Project' 카테고리의 다른 글
[Unity3D] 캐릭터 움직임, 충돌체크, 물리엔진사용 X [Part 4] (0) | 2017.03.02 |
---|---|
[Unity3D] 캐릭터 움직임, 충돌체크, 물리엔진사용 X [Part 3] (1) | 2017.03.02 |
[Unity3D] 캐릭터 움직임, 충돌체크, 물리엔진사용 X [Part 2] (0) | 2017.03.02 |
[Unity3D] 캐릭터 움직임, 충돌체크, 물리엔진사용 X [Part 1] (0) | 2017.02.28 |
유니티란? (0) | 2017.02.25 |
유니티란?
Unity3D 특징
1. 멀티 플랫폼을 지원한다.
PC, 스마트 폰, XBox, 플스 등 여러가지 기기들이 있고, 그에 맞는 제작 엔진이나
툴을 통하여 게임을 제작하여야 한다.
하지만, 유니티는 다양한 플랫폼을 지원해 주기 때문에 제작 엔진의 선택을 고민할 필요가 없다.
유니티가 지원해주는 플랫폼은 이렇다.
[출처: 유니티코리아 홈페이지.]
2. 개발환경 구축을 위한 비용이 저렴하다.
유니티는 언리얼, 크라이텍과 같은 엔진에 못지않는 성능을 보여주지만
가격대비 성능이 아주 뛰어난 편이다.
3. 사용방법이 쉽다.
누구나 쉽게 게임을 제작할 수 있게 한다는 목표에 맞게,
진입장벽이 매우낮고, 시간 투자 대비 높은 결과물을 얻을 수 있다.
어느정도 개발 지식을 가지고 있다면, 1주일 이내로 간단한 게임 제작이 가능하다.
4. Asset Store
모든 기능을 자신이 구현할 필요없이, 에셋 스토어를 통해 유니티 개발자들이 제작 판매하는,
리소스 패키지를 설치하여 필요한 기능을 구현할 수 있다.
반대로, 리소스를 패키지 파일로 제작하여 에셋 스토어에서 판매할 수도 있다.
'Unity3D > Project' 카테고리의 다른 글
[Unity3D] 캐릭터 움직임, 충돌체크, 물리엔진사용 X [Part 4] (0) | 2017.03.02 |
---|---|
[Unity3D] 캐릭터 움직임, 충돌체크, 물리엔진사용 X [Part 3] (1) | 2017.03.02 |
[Unity3D] 캐릭터 움직임, 충돌체크, 물리엔진사용 X [Part 2] (0) | 2017.03.02 |
[Unity3D] 캐릭터 움직임, 충돌체크, 물리엔진사용 X [Part 1] (0) | 2017.02.28 |
[Unity3D] Character Controller를 이용한 캐릭터 움직임. (0) | 2017.02.25 |