Unity单向平台

 网格设置

在Grid里右击>2D Object>Tilemap创建新网格并取名OneWayPlatform

 

 创建新图层取名OneWayPlatform并将OneWayPlatform的图层选上

 为OneWayPlatform添加一下四个组件

Platform Effector 2D组件中的Collider Mask的多选项中选择可以穿过单向平台的图层

 Tile设置

设置单向平台Tile的碰撞盒子点击Sprite Editor

进入Sprite Editor

1.选择为Custom Physics Shape模式

2.点击单向平台的图片

3.开启Generate模式

 随后修改单向平台的碰撞范围

点击线条增加操作点(不知道怎么叫)

点击操作点然后按Del键可删除

根据实际情况设置吧

 

 完成后点击Apply应用

 每次修改完碰撞范围就要重选一下Tilemap Collider 2D才会应用新的碰撞范围

 

代码部分

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public Transform groundCheck;//检测位置
    public float checkRadius;//检测范围大小
    public LayerMask oneWayPlatformLayerMask;//检测对象
    public bool isOneWayPlatform;//是否在单向平台上

    void Update()
    {
        //判断是否不在跳跃动画或者在下落动画中
        if(!anim.GetCurrentAnimatorStateInfo(0).IsName("player_jump") ||         
                anim.GetCurrentAnimatorStateInfo(0).IsName("player_fall"))
            isOneWayPlatform = OnOneWayPlatform();//获取当前角色是否在单向平台上
    }

    //是否在单向平台上
    bool OnOneWayPlatform()
    {
        Collider2D Coll = Physics2D.OverlapCircle(groundCheck.position, checkRadius, oneWayPlatformLayerMask);
        if (Coll != null)
            return true;
        else
            return false;
    }
}

在Player(控制的人物)添加一个子对象在脚下用来检测单向平台

设置代码

 

 全部完成后,就可以跳上单向平台了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虎皮鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值