《unity》实现对游戏人物的控制

unity角色控制

在开始对角色实施控制前,我们来梳理下完成角色控制的思路: 

首先,对于一个角色,我们需要 绑定模型动作 添加行为 绑定摄像机与角色的关系。

这三部分组成了player主体  :

  为模型添加 行为(behaviour) 后,模型会对玩家的行为做出反馈。
  为模型添加 动画(Animator)后,模型会播放"行为"所对应的动画.

  摄像机(camera)是玩家的视角,是游戏的表现形式。

一,绑定模型动画: 

    各位可以在网上找到大量已绑定骨骼带动画的模型。导入后,在资源窗口中调用,如

《unity》实现对游戏人物的控制_第1张图片
我们将模型拖入场景中,

《unity》实现对游戏人物的控制_第2张图片

此时再将模型的贴图直接拖拽至模型上,unity会自动生成材质。我们可以对材质进行编辑《unity》实现对游戏人物的控制_第3张图片

现在我们完成了模型导入工作,现在我们开始对模型进行动画绑定。

我们选中模型,在组件窗口添加animator组件。《unity》实现对游戏人物的控制_第4张图片
animator组件要求 一个 动画控制器(animator controller)   角色骨骼(avatar,带动画的模型自带)

《unity》实现对游戏人物的控制_第5张图片

我们将创建好的 New Animator controller挂载到animator组件上。
之后便是进入控制器对模型动画进行绑定了。
(解释一下,如控制器在接收到玩家按下某按键后,会播放某动作,某些数值如血量到某个界限后会播放某动画,限于篇幅这里只简单介绍下控制器用法) 

《unity》实现对游戏人物的控制_第6张图片

若想系统完整地了解这部分知识,可到  unity圣典  查找 动画控制器的相关文档。至此模型动画绑定
完成。


二,添加行为

     我们设定了模型动画,速度为零时(默认状态),播放idle动作(等待),
                                      速度大于零时(由默认状态到状态一),播放跑动动作。
                                      血量为零时(某状态跳转至死亡状态),播放死亡动画。
      但这里有个问题,那就是动画是播放了,可是人物的实际位置并没有发生变化。
                                 血量变量是有了,可是要怎么控制血量。
那就得通过写脚本(unity以c#为脚本语言)来解决了。
    通过 transform.Translate(方向*速度*帧率)实现角色位移,乘上帧率是为了避免帧率对速度的影响。
    通过在脚本上定义变量,用public将其暴露出来给unity,结合“ 动画控制器” 用于状态判断。
(如人物速度speed暴露给控制器后,控制器用其作为判断条件,通过不断的判断,在不同的状态间快速跳转,实现动画播放与人物位移同步)

三,镜头(camera)控制

镜头的设置就大有学问了,镜头所看到的便是玩家所看到的。

第一人称还是第三人称又或者是上帝视角,这就完全取决于制作者对镜头的设置。

镜头也是需要通过脚本来控制的。
我们也可以在镜头上添加滤镜,对色彩饱和度等进行调节。

角色控制实现:

《unity》实现对游戏人物的控制_第7张图片

                                                                                    第三视角


你可能感兴趣的:(游戏引擎开发,unity3d,移动平台开发)