当前位置:丝路教程网 > Unity3D >

在Unity 3D中如何实现角色攀爬的效果?

2017-12-11 10:28 来源: 丝路教程网 分类: Unity3D
263 作者:丝路教程网

[导读] 在RPG游戏中,某些游戏场景常常需要玩家沿着墙壁或者梯子攀爬到高处,例如《仙剑奇侠传三》的九龙坡场景中,玩家需要沿着梯子爬到高处才能收集场景中的物品。同样在《古剑奇谭

  在RPG游戏中,某些游戏场景常常需要玩家沿着墙壁或者梯子攀爬到高处,例如《仙剑奇侠传三》的九龙坡场景中,玩家需要沿着梯子爬到高处才能收集场景中的物品。同样在《古剑奇谭一》中的翻云寨,玩家则需要爬到顶层才能开启游戏里的机关。在Unity 3D中如何实现角色攀爬的效果呢,一起来看看以下的Unity 3D教程

Unity 3D教程

  今天要讲的就是利用Mecanim动画系统中的MatchTarget来实现角色攀爬效果。首先来了解下MatchTarget的具体概念。MatchTarger即匹配目标,是Animator类中的一个方法,该方法可以实现在执行动画的过程中使角色身体的某个部位与指定位置进行匹配,比如我们在攀爬的过程中,手、脚及身体应该是和墙壁接触的,那么这时我们就可以考虑使用这个方法,该方法定义如下:

  [csharp] view plaincopyprint?

  void MatchTarget (Vector3 matchPosition, Quaternion matchRotation, AvatarTarget targetBodyPart, MatchTargetWeightMask weightMask,

  [csharp] view plaincopyprint?

  float startNormalizedTime,float targetNormalizedTime)

  可以看出,在该方法中,我们指定了匹配的位置、角度、身体的具体部分、权重、匹配开始及匹配结束的时间。由此,我们就可以开始今天的Unity 3D教程内容了,我们来创建一个简单的场景:

  在这个场景中,我们希望角色可以沿着墙壁爬到墙上。那么具体怎么做呢?首先我们在场景中创建一个空的游戏体,将其命名为RightHandTarget,它将作为角色在攀爬时右手的一个匹配点,我们将其拖放到合适的位置,然后将其拖放到墙模型下,使其成为它的一个子物体。如图所示:

  好了,这样我们完成了场景部分的搭建和准备工作,接下来我们来制作角色的动画模型,新建一个Animator Controller,命名为JumpGrab,双击打开Animator窗口,这里我们只拖入两个动画Idle’和JumpUp,这里我们新建两个float类型的参数MatchStart、MatchEnd及Bool类型的参数Jump,触发JumpUp动画的条件是Jump为True。如图

  其中JumpUp是一个完整的攀爬墙壁的动画,在这个动画中,角色首先会伸出右手进行攀爬,因此我们可以将其右手与我们在场景中定义好的RightHandTarget进行匹配,从而保证角色在攀爬的过程中总是紧紧贴着墙壁。好了,现在让我们来编写脚本来将动画模型和角色关联起来:


                                

  所有的教程都已经结束了哦,下面我们来看看最终的效果吧!


免责声明:

丝路教程网的部分文章信息来源于网络以及网友投稿,本网站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,如权利人发现存在误传其作品情形,请及时与本站联系。

在Unity 3D中如何实现角色攀爬的效果?

的相关文章
Copyright © 2008-2017 blog.silucg.com 丝路教程网 版权所有 网站地图
点击这里给我发消息
丝路教育