本次将向大家介绍用Unity制作出简单的控制人物上升跳跃的demo,教程约15min,无需编写代码。
0.准备工作
首先我们需要创建一个3D项目,然后导入cameras、characters、prototyping这三个资源包。
导入资源包有两种方式,可以用鼠标右键单击Assets文件夹,选择Import Package,如图1所示。
也可以在选中Assets文件夹后,在Unity编辑器上方的MENU栏里选择Assets选项,如图2所示。
选择要导入的资源包之后,我们选择导入全部资源(默认)。如图3所示。
导入时可能会报出警告和错误,本次我们不去理会,clear一下,继续下一步。如图4所示。
1.搭建场景
本次需要搭建的场景有:平台、跳板、人物、摄像机。
首先我们搭建平台。
在Assets ->Standard Assets-> Prototyping ->Prefabs 选择“FloorPrototype”,拖入Scene窗口中(尝试着改变Inspector面板中Transform的属性值,看看会有什么变化)。
调整摄像机的位置,保证画面中能够显示出平面。
tip:在Scene中按住右键同时按WASD可以调整视线。
相机和自己视线重合的快捷键时ctrl+shift+F(在选中相机的情况下)。
同理,我们将跳台Assets -> Standard Assets->Prototyping ->Prefabs ->CubePrototype和人物Assets ->Standard Assets-> Characters ->ThirdPersonCharacter ->Prefabs ->ThirdPersonController 也拖入场景中。
效果如下
这样,场景的搭建已初步完成。
2.测试功能。
在搭建好场景后,我们可以点击Play来体验一下。
WASD控制人物移动,空格控制人物跳跃。但运行后我们发现以下几个问题:
①人物高度和弹跳高度和跳台的比例不对,没办法跳上去。
②平台大小和相机视野范围不够协调,太远或太近。
③相机无法随着人物移动而转动,虽然是3D游戏,但是没有3D的体验。
首先我们来了解一下Transform中的各参数意义:
Position:坐标位置,(0,0,0)代表原点;Rotation:旋转角度;Scale:缩放大小
将跳台的Y方向缩放数改为0.2,如图所示。
这样我们可以轻易的跳上平台。同时,我们也可以让人物跳得更高。在场景中点击人物模型或在Hierarchy面板中点击ThirdPersonController,在Inspector面板中找到下图组件(脚本),并更改Jump Power数值(可以尝试更改其他数值,看看有什么变化)。
接下来我们为相机添加脚本,让它可以跟随人物移动而运动。
在Assets -> Standard Assets -> Scripts中选择LookatTarget,并拖拽到相机上
tip:更改文件显示大小,可在上图黄色方框内拖拽按钮。
绑定好脚本后,我们需要绑定Target的参数,将人物模型绑定到Target上,如下图所示,红色和黄色标示为两种方法。
之后,我们需要修改Rotation Range的X和Y参数,来让相机在这两个方向上运动。
可以尝试绑定其他Camera脚本,但需先移除或禁止生效原来的相机脚本,如下图所示。