현재 Unity3D 에서 캐릭터의 움직임을 연구하고 있습니다. 나는 그를 마우스 커서로 상대적으로 움직이게 만들었습니다. 캐릭터가 더 높은 각도로 산을 걸을 수없는 경사 제한을 45 °로 설정했습니다. 그러나 그는 여전히 그들을 뛰어 넘을 수 있습니다.
경사가 너무 높은 곳에서 뛰어 내릴 때 어떻게 다시 미끄러지도록 만들 수 있습니까?
미리 감사드립니다.
편집 : 내 기본 운동의 코드 스 니펫. UnityEngine 사용; System.Collections 사용;
public class BasicMovement : MonoBehaviour {
private float speed;
private float jumpSpeed;
private float gravity;
private float slopeLimit;
private Vector3 moveDirection = Vector3.zero;
void Start()
{
PlayerSettings settings = GetComponent<PlayerSettings>();
speed = settings.GetSpeed();
jumpSpeed = settings.GetJumpSpeed();
gravity = settings.GetGravity();
slopeLimit = settings.GetSlopeLimit();
}
void Update() {
CharacterController controller = GetComponent<CharacterController>();
controller.slopeLimit = slopeLimit;
if (controller.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;
controller.Move(moveDirection * Time.deltaTime);
}
}
더 많은 정보가 필요합니다 : 물리학을 사용하고 있습니까? 이 경사는 지형 시스템이나 다른 것을 사용합니까? 캐릭터를 제어하는 구성 요소는 무엇입니까? 이 게임은 2D 또는 3D 게임입니까?
—
Kylotan
플레이어가 점프를 시도하거나 점프를 완료하고 경사에 부딪쳤을 때 미끄러짐을 의미합니까?
—
tyjkenn
@tyjkenn 그가 점프를 완료하면 의미합니다. Super Mario 64에서와 같이 땅에 착륙 할 때이 땅의 각도가 너무 높으면 각도가 slopeLimit와 같은 지점으로 내려 가야합니다.
—
keinabel
@ Kylotan 글쎄, 나는 Unity의 초보자입니다. 그래서 가능한 한 좋은 답변을하려고 노력합니다. 강체가없는 캐릭터 컨트롤러로 캐릭터를 만들었습니다. 나는 키를 눌렀을 때 그를 움직이게 만들었고 커서를 상대적으로 걷게 만들었습니다. 지형을 만들고 버튼을 사용하여 산을 만들었습니다. 이 게임은 WarCraft III와 같은 모양과 카메라 스타일의 3D 게임입니다.
—
keinabel