平台"/>
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;elsereturn false;}
}
在Player(控制的人物)添加一个子对象在脚下用来检测单向平台
设置代码
全部完成后,就可以跳上单向平台了
更多推荐
Unity单向平台
发布评论