一、物理材质:
游戏角色在跳跃过程中如果正面碰撞到地形就会卡在上面,所以需要为其添加一种材质,在Assets窗口中,右键->新建一个物理材质,不用做其他的调整,将其拖拽到Player Inspector窗口中的BoxCollider组件的Material上(在此说明,如果只为Player添加一个BoxCollider碰撞体,在检测与地面碰撞时相当于两个方形碰撞体进行接触,可能会出现角色Player被卡飞的情况,因此用一个圆形的Collider来检测与地面的碰撞,用一个BoxCollider来检测与敌人、收集物品或者非地面碰撞物体的碰撞检测)。
二、跳跃
现在仅实现一段跳,代码的实现思想:如果跳跃键被按下并且Player在地面上,则把动画jumping设置为true,并更新rb.velocity的值,代码如下:
public LayerMask ground;//定义LayerMask这一“组件”
//角色跳跃
if (Input.GetButtonDown("Jump") && coll.IsTouchingLayers(ground))
{
rb.velocity = new Vector2(rb.velocity.x, jumpforce * Time.fixedDeltaTime);
anim.SetBool("jumping", true);
}
新知识点:LayerMask,在Inspector窗口的右上角,可以设置一个Layer,在此处它用作检测角色Player是否与处在该Layer下的物体发生碰撞。
三、UI基本入门:
UI都创建在一个名为Canvas的子目录下,在上一篇笔记中忘记说UI的创建了,此处对照着第六篇中的物品收集部分来的,在Hierarchy窗口中右键,选择UI,里面提供了文本、图片、按钮等等UI的组件,选择我们需要的,比如我需要樱桃和钻石的图片,以及记录它们的数字,所以我需要创建Image和Txt两种组件,创建好后即可对照笔记(六)中的步骤,在此不做赘述。