本系列文章由Amazonzx撰写,欢迎转载横版游戏制作,转载请注明出处。
凯博也写了很多关于Unity的文章,不过大部分都是翻译的,原创的很少。在接下来的几天里,我会写更多的原创文章,介绍一些在项目中积累的简单实用的技术。
1.导入场景,添加TouchPlane到场景中
TouchPlane是鼠标屏幕显示时的Raycast平面,如下图绿线所示。由于是水平场景,地面一般是平的,所以可以选择一个平面来计算鼠标投影交点。
绿线是因为我禁用了平面的MeshRender,平面的Inspector视图如下:
值得一提的是:
1.平面使用Box Collider代替Mesh Collider横版游戏制作,优点是减少了碰撞计算量;
2、Tag设置为“Plane”,用于鼠标点击时的Raycast选择;
3、Layer设置为“TouchPlane”,也是为了以后进行Raycast鼠标选择操作。
2.设置角色组件
角色 Inspector 视图如下所示:
一共四个组件:Animation、Rigidbody、Capsule Collider和Move Controller。
Animation组件主要是角色的动作动画;
Rigidbody 组件用于角色的移动3D交通工具,我稍后会解释。这里要注意的另一点是没有使用“使用重力”。这是因为角色只在地上奔跑(如果你的游戏要求角色有跳跃功能),那么应该使用“使用重力”,二是在不影响效果的情况下减少模型的物理计算) ;
Capsule Collider 是一个碰撞器,与本文描述的移动内容无关;
Move Controller 是一个自定义的角色移动控制组件,MoveController.cs 是它对应的脚本。
3.如何移动角色
流程可以设置如下:
1、用鼠标点击地面3D场景,通过屏幕位置计算出人物在其所在的三维空间中移动的目标位置。