我目前正在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'3
您是说玩家尝试跳跃时还是完成跳跃并撞到斜坡时滑动?
—
tyjkenn 2012年
@tyjkenn我的意思是当他完成跳跃时。就像在《超级马里奥64》中一样。当他降落在地面上并且该地面的角度太大时,他应该向下滑动到角度等于thelopeLimit的点。
—
凯纳贝尔2012年
@Kylotan好吧,我是Unity的新手。因此,我会尽力给出一个答案。我使用角色控制器创建了一个角色-没有刚体。按下键时我使他移动,并使他相对于光标行走。我创建了一个地形并使用按钮(哦,我的声音听起来很愚蠢)来创建一些山脉。这将是一款外观和相机风格类似WarCraft III的3D游戏。
—
凯纳贝尔2012年