作为一个RPG游戏,跳跃这种基础要素当然是要有的。那如何起跳呢。
我们现在的控制角色的模式是这样的。
public void playerMove() {
//**//
//player.position += moveDirection ;
//rig.velocity = Vector3.zero;
//**//
rig.velocity = new Vector3(moveDirection.x, moveDirection.y+ rig.velocity.y, moveDirection.z);
moveDirection = Vector3.zero;
}
也就是说我们只需要给予一个moveDirection.y上的冲量就可以了。
黑喂狗,开始,我们这里用按空格键表示跳跃。
我们在PlayerTestView内加入这样几行码子
float jumpPower = 3.5f
public void startJump(bool jump) {
if (jump)
moveDirection.y += jumpPower;
}
然后我们在PlayerTestMediator的playerAction中添加这样一行。
void keyController() {
float targetup = (Input.GetKey("w") ? 1 : 0) - (Input.GetKey("s") ? 1 : 0);
float targetright = (Input.GetKey("d") ? 1 : 0) - (Input.GetKey("a") ? 1 : 0);
up = Mathf.Lerp(up, targetup,0.6f);
right = Mathf.Lerp(right, targetright, 0.6f);
if (Input.GetKeyDown(KeyCode.LeftShift)) {
run = !run;
}
jump = Input.GetKey(KeyCode.Space);
}
void playerAction() {//加入update跟新列表
playerView.animaBlendAction(right, up, run);//设置偏移
playerView.startJump(jump);//设置跳跃-------新加入
playerView.playerMove();//角色接受冲量
}
做完这些,我们来看看效果。
效果
网友评论