内部函数是这个:

OnCollisionEnter2D

这里写一个碰撞检测函数,检测是否在地面 而且这里的实现,也是通过布尔判断,不进行连跳的

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
    private void OnCollisionEnter2D(Collision2D collision)
    {
        //当前碰到了游戏物体,并且是地面       
        if (collision.collider.ClosestPoint(transform.position).y < transform.position.y)
        {
            isGrounded = collision.gameObject.CompareTag("Ground");
            if (isGrounded!=lastIsGrounded)
            {
                if (isGrounded)
                {
                    AudioSource.PlayClipAtPoint(landClip,transform.position);
                }
            }
            lastIsGrounded = isGrounded;
        }
    }

这个函数,是检测碰撞的点的位置

而这个函数CompareTag,就是检测Tag,在这里就是检测碰撞到的物体标签Tag是不是Ground

在这里,简单播放音效,是使用的这个函数

前面是有加载的