请选择 进入手机版 | 继续访问电脑版

查看: 2910|回复: 4

[求助] 如何实现一个类似魂斗罗的跳跃平台

[复制链接]

5

主题

14

帖子

215

贡献

初级UU族—3级

Rank: 3Rank: 3

积分
215
发表于 2016-10-12 14:05:55 | 显示全部楼层 |阅读模式
本帖最后由 ghostyii 于 2016-10-12 14:09 编辑

各位好,最近我在学习Unity的时候遇到了一个问题,想了几天也没有想到一个非常好的解决方案,所以在这里求助各位!

问题是这样的,我想实现一个类似于魂斗罗的可跳跃平台(可以从平台下方跳跃至平台上方,但是在上方落地后不会掉到平台下方去),也就是如图所示的效果
ldl.gif

我第一次尝试的时候是想到了Collider的IsTrigger参数,也就是在“碰撞体”与“触发器”之间进行切换。
思路如下:
角色头顶部拥有一个TriggerA,会对跳跃平台层级进检测,也就是检测角色是否即将跳跃上某个平台,在该TriggerA的OnTriggerEnter与OnTriggerStay方法中对角色上方的平台IsTrigger置为true方便角色穿越该平台,在角色的底部拥有另外一个TriggerB,在TriggerB的OnTriggerStay方法中将IsTrigger置为false以防止角色跌落该平台。

这样做可以实现类似效果,但是拥有两个问题:
1:无法实现像上图魂斗罗中的跳跃效果,即当跳跃平台低于角色身高的时候无法实现
2:如果平台上方拥有其他物体,会在IsTrigger置为true的时候跌落该平台

我使用的是Unity5.4.1f版本。
请问一下各位有没有更好的实现方法呢?

小城市大学生,Unity完全自学,懂得不多请指教。

5

主题

14

帖子

215

贡献

初级UU族—3级

Rank: 3Rank: 3

积分
215
 楼主| 发表于 2016-10-12 14:17:12 | 显示全部楼层
我发现了这个东西。。。。
QQ截图20161012221615.png



问题解决了。。。

但是这个东西又是怎么实现的呢。。。。

0

主题

3

帖子

60

贡献

初级UU族—2级

Rank: 2

积分
60
发表于 2016-10-13 08:10:19 | 显示全部楼层
我想的可能是人物下落的时候在去检测脚的位置与上面平台的碰撞

1

主题

3

帖子

65

贡献

初级UU族—2级

Rank: 2

积分
60
发表于 2016-11-26 15:08:28 | 显示全部楼层
可以每帧调用 Physics2D.IgnoreLayerCollision,角色y轴速度向上时忽略角色与平台的碰撞
Physics2D.IgnoreLayerCollision(playerLayer,  platformLayer, (vy > 0.0f));

0

主题

2

帖子

75

贡献

初级UU族—2级

Rank: 2

积分
75
发表于 2017-5-20 08:40:40 | 显示全部楼层
ghostyii 发表于 2016-10-12 14:17
我发现了这个东西。。。。

可以说的具体点吗 学习一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表