* Do It! C# 프로그래밍 입문 도서를 참조하여 진행합니다.
상단 메뉴의 GameObject - 3D Object - Plane, Capsule을 생성해준다.
두 오브젝트가 겹쳐보이므로, 캡슐을 선택한 다음 Position의 Y축을 1로 설정해준다.
하이어키에서 Capsule을 클릭하고 상단 메뉴의 Component - Physics - Character Controller를 등록해준다.
프로젝트의 Assets 우클릭 - Create - Scripting - MonoBehaviour Script로 스크립트를 생성하고
파일명을 CharacterMove로 변경한다.
CharacterMove를 더블클릭해서 열고 아래와 같이 코딩해준다.
using NUnit.Framework.Constraints;
using UnityEngine;
public class CharacterMove : MonoBehaviour
{
// 움직이는 속도 제어
public float speed = 10.0F;
// 점프 높이 설정
public float jumpSpeed = 8.0F;
// 점프 후 바닥에 떨어지는 속도
public float gravity = 20.0F;
// 움직이는 방향 Vector3.zero = (0,0,0)
private Vector3 moveDirection = Vector3.zero;
void Update()
{
// 인스펙터 뷰에서 변경할 수 있는 컨트롤러를 C#으로 가져옴
CharacterController controller = GetComponent<CharacterController>();
// 땅에 붙어있는지 확인
if (controller.isGrounded)
{
// 키보드의 좌우 방향키
float x = Input.GetAxis("Horizontal");
// 키보드의 상하 방향키
float z = Input.GetAxis("Vertical");
// 키보드 방향키 입력을 Vector3으로 저장
moveDirection = new Vector3(x, 0, z);
// 좌표를 공간 월드 좌표로 변환
moveDirection = transform.TransformDirection(moveDirection);
// 움직임 속도 조정
moveDirection *= speed;
// 점프 버튼을 누르면 점프 (유니티 Edit - Project Settings - Input Manager에서 Axes - Jump - Positive Button에 스페이스바 버튼 입력)
if (Input.GetButton("Jump"))
moveDirection.y = jumpSpeed;
}
// 착지하기
moveDirection.y -= gravity * Time.deltaTime;
// 캐릭터 이동하기
controller.Move(moveDirection * Time.deltaTime);
}
}
유니티의 상단 메뉴에서 Edit - Project Settings
설정 창이 나오면 Input Manager - Axes - Jump - Positive Button에 스페이스바 버튼 입력
생성한 스크립트를 캡슐 오브젝트에 추가해준다.
상단의 재생버튼을 눌러 테스트해본다.
'C#' 카테고리의 다른 글
C# - delegate (대리자) (0) | 2024.12.12 |
---|---|
C# - Unity 1인칭 게임 구현 [Part. 2] (0) | 2024.12.12 |
C# - Unity 방향키로 오브젝트 이동 (0) | 2024.12.11 |
C# - Unity 마우스 이벤트 (0) | 2024.12.11 |
C# - Unity 스크립트 생성 및 로그 확인 (0) | 2024.12.11 |