1.人物实现单次跳跃
为人物创建新的脚本代码 文件名为PhysicCheck
这一步是为了检测是否在地上,为限制空中跳跃实现单次跳跃做准备
using System.Net.Http.Headers;
using System.Numerics;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PhysicCheck : MonoBehaviour
{
public bool isGround; //定义布尔类型变量表示检测结果
public float checkRaduis; //检测范围
public LayerMask groundlayer; //LayerMask 类型变量检测是否碰撞
public UnityEngine.Vector2 bottomOffset;
private void Update()
{
Check();
}
//检测方法
public void Check(){
isGround = Physics2D.OverlapCircle((UnityEngine.Vector2)transform.position + bottomOffset, checkRaduis, groundlayer);
}
private void OnDrawGizmosSelected()
{
Gizmos.color = Color.red;
Gizmos.DrawWireSphere((UnityEngine.Vector2)transform.position + bottomOffset, checkRaduis);
}
}
//定义PhysicCheck类型变量
private PhysicCheck physicsCheck;
//修改Jump方法
private void Jump(InputAction.CallbackContext obj){
//UnityEngine.Debug.Log("JUMP");
if(physicsCheck.isGround)//添加判断条件
rb.AddForce(transform.up * jumpForce,ForceMode2D.Impulse);
}
2.物理材质的设置
为方便管理在Setting文件夹中新创建一个PhysicMertiral文件夹,点击添加2D 材质更改摩擦力为0,添加到人物身上,人物不在粘在墙上。
今天的学习总结完毕,继续加油!