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

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

// 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);
    }

2D游戏中检测是否在地面的一种方法_第1张图片

你可能感兴趣的:(2D游戏中检测是否在地面的一种方法)