2D游戏中检测是否在地面的一种方法

public Transform Checkpoint;//这个点一般位于主角的脚下
public float CheckRadius;
public LayerMask Whatisground;//设置要检测的地面层
public bool isgroud;
// Use this for initialization
void Start ()
{
    rig = GetComponent<Rigidbody2D>();
}

// Update is called once per frame
void Update ()
{
    float t = Input.GetAxisRaw("Vertical");//这个不具有平滑的滤波的应用 只能有-1 0 1的变化
    float v2 = Input.GetAxis("Vertical");//这个具有平滑的变化
    if (Input.GetAxisRaw("Horizontal") > 0)
    {
        rig.velocity = new Vector2(movespeed, rig.velocity.y);
    }
    else if (Input.GetAxisRaw("Vertical") < 0)
    {
        rig.velocity = new Vector2(-movespeed, rig.velocity.y);
    }
    else
    {
        rig.velocity = new Vector2(0, rig.velocity.y);
    }
    // Physics2D.OverlapCircle常用检测工具,检测一个碰撞器是否在一个圆形范围内
    //Physics2D.OverlapCircle(圆形范围的圆心位置,圆形的半径范围,作用于哪一个层)
 isgroud =   Physics2D.OverlapCircle(Checkpoint.position, CheckRadius, Whatisground);
    if (Input.GetButtonDown("Jump")&& isgroud)//避免二段跳
    {

        rig.velocity = new Vector2(rig.velocity.x, jumpspeed);
    }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值