首先要说的是,因为是学习开发进行中途来记录,所以之前的移动跳跃、瓦片地图搭建等就先不写了,以后有机会再写。
这次完成的是角色的二段跳跃,下方是代码,已经有注释说明了。
private bool isGround; //是否接触地面
private bool canDoubleJump; //是否可以二段跳跃
void CheckGround()
{
//触碰到Layer名为Ground的物体后判定为接触地面,离开地面时即可二段跳跃
isGround = myFeet.IsTouchingLayers(LayerMask.GetMask("Ground"));
canDoubleJump = !isGround; //用这个方法哪怕没有进行一段跳也可以直接二段跳
}
void Jump()
{
//按下跳跃键(空格)
if (Input.GetButtonDown("Jump"))
{
//如果在地面上,则将跳跃动画设置为true,给予一段跳跃速度
if (isGround)
{
myAnim.SetBool("Jump", true);
Vector2 jumpVel = new Vector2(0.0f, jumpSpeed);
myRigidbody.velocity = Vector2.up * jumpVel;
}
//如果可以二段跳,将二段跳动画设置为true,给予二段跳跃速度,并且不能再次二段跳
else if (canDoubleJump)
{
myAnim.SetBool("DoubleJump", true);