티스토리 뷰
유니티3D에서!
맵이 있고!
캐릭터 모델이 있으면!
캐릭터컨트롤러 컴포넌트 추가하고!
이 밑의 스크립트를 입맛에 맞게 추가하시면
화살표 및 W,A,S,D 키와 스페이스 바를 통해서
움직임을 구현합니다.
이 때, 스피드와 점프 속도 등은 알아서 구현해주세요.
중력적용입니다.
아 cc는 인스펙터창에서 캐릭터컨트롤러 스크립트를 할당해줘야합니다.
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 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class Hero : MonoBehaviour { [SerializeField] CharacterController cc; public float speed = 3.0F; public float jumpSpeed = 4.0F; public float gravity = 9.81F; private Vector3 moveDirection = Vector3.zero; void Update() { if (cc.isGrounded) { moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); moveDirection = transform.TransformDirection(moveDirection); moveDirection *= speed; if (Input.GetButton("Jump")) moveDirection.y = jumpSpeed; } moveDirection.y -= gravity * Time.deltaTime; cc.Move(moveDirection * Time.deltaTime); } } | cs |
Move메서드 대신에 SimpleMove를 쓰는 경우도 있다.
사용법은 훨씬 쉽다. 중력 자체가 자동 적용이며,
Move가 경사면에서 미끄러지며 이동하는데 반해 SimpleMove는 웬만하면 방향을 유지하려고 하는 힘이 강하다.
근데 점프가 곤란한 것 같으니
간단한 게임이 아니라면 Move를 쓸 것 같다. 아마듀
'개발일기 > 유니티3D' 카테고리의 다른 글
Translate로 이동할 때, Space.World와 Space.Self의 차이점 (0) | 2018.10.04 |
---|---|
유니티에서 각도 구할 때 Mathf.Atan()대신에 Mathf.Atan2를 쓰는 이유 (0) | 2018.10.02 |
재사용을 위한 타이머 매니저 (0) | 2018.10.01 |
아주 간단한 Unity3D 예제. (0) | 2018.09.30 |
유니티에서 Scene뷰 조종하기 꿀팁 (0) | 2018.09.29 |
댓글