Unity中人物实现单次跳跃,人物碰撞检测(初步),物理材质的设置

文章介绍了如何在Unity3D中创建名为PhysicCheck的脚本来检测人物是否落地,以实现单次跳跃功能。此外,还讲解了如何设置2D物理材质,减少摩擦力,防止人物粘在墙上。通过调整摩擦力和使用OverlapCircle方法,优化了游戏中的角色运动行为。
摘要由CSDN通过智能技术生成

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,添加到人物身上,人物不在粘在墙上。

今天的学习总结完毕,继续加油!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值