内部函数是这个:
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
在这里,简单播放音效,是使用的这个函数
前面是有加载的