unity3d——FPS游戏制作入门

在这里插入图片描述


QQ 1285575001
Wechat M010527
技术交流 QQ群599020441
纪年科技aming


#1 场景搭建

1: 导入人物模型, 手持一把枪;
2: 导入碎片模型;
3: 创建一个平面;
4: 创建一个障碍物;
5: 导入人物模型;
6: 配置一个十字瞄准器, 设想机对准的中心就是瞄准的中心, 屏幕中心;
7: 配置一个第一人称的摄像机,做人的眼睛;

  • 开枪射击

1: 鼠标左键按下开火;
2: 从摄像机位置开始,根据摄像机的正前方,
在一定的射击距离内如果碰撞到了某个物体,
那么就表示这个物体被子弹射击;

3: 播放射击的子弹碎片:
在射击碰撞点产生碎片物体,
并给这些碎片物体一个反弹力(100)
方向是设计的反方向;

4: Physics.Raycast
(起点, 发射方向向量, out hit, 最大有效距离(子弹的距离));

5: 播放开枪的声音
 PlayOneShot 固定时间播完你的audio文件;
 用PlayOneShot,就能够听到连续的枪声了;

  • 人物的行走

1: 定义移动的速度;
2: 玩家在自己的坐标空间内向前(W),后(S), 左(A), 右(D);
3: 前后 Translate(0, 0, 距离, Space.Self);
4: 左右 Translate(距离, 0, 0, Space.Self);
5: 播放人物行走的脚步声;

  • 枪的上下左右移动

1: 枪的左右瞄准;
 (1)计算绕 Y轴 旋转的 欧拉角 GetAxis(Mouse Y) * 移动的灵敏度(5);
 (2)在转向的时候,角色也要跟着转,
 那么我们旋转角色就可以了,
 摄像机也会跟着转;
  修改角色的欧拉角;
 (3) 给这个枪绕Y轴一个转动范围[-360, 360]
 (4) Mathf.Clamp(value, min, max);
 
2: 枪的上下移动: localEulerAngles
 (1)枪的上下移动,角色不动,所以不能作用到角色上;
 (2)计算绕X轴旋转的欧拉角 GetAxis(Mouse X) * 移动的灵敏度(5);
 (3)只作用在瞄准上(eye),所以修改摄像机的相对欧拉角;
 (4)同时手中的枪也要移动对应的欧拉角(right hand);
 (5)抬头低头有一个范围,我们在[-45, 45]的范围内;

第一人称射击类游戏实例

场景搭建

1.创建Unity项目工程和文件目录,保存场景
2.导入人物模型和子弹碎片的资源包
3.创建一个平面plane,X和Z拉长10倍,把主角模型 拉近Hierarchy视图中在这里插入图片描述
4.把走路的声音 mp3 ,射击的声音 mp3,平面贴图 png,瞄准的准心贴图 .png 导入Resources文件夹
5.把 png 直接拖进Scene视图的平面plane上,自动帮我们生成了平面的材质并关联
6.创建一个cube,放大4倍,放在主角模型的正前方,Z设置为20
7.配置一个十字瞄准器,UI和摄像机是成比例对应的,
所以摄像机对准的中心就是等下Crosshairs瞄准的中心,
屏幕中心,右键---->UI---->Image,
命名为Crosshairs,
再把png的Texture Type设置为Sprite(2D and UI)

8.把png拖进Crosshairs节点的Image组件的Source Image属性中,
调整Crosshairs的position为(0,0,0),屏幕正中央,Set Native Size

9.配置一个第一人称的摄像机,做人的眼睛。
就是把Main Camera拖到person下作为子节点重命名为eye,
这样可以跟随主角移动。
然后把摄像机的position设置为(0,1.5,0),正好在人物头部
在这里插入图片描述

发布了183 篇原创文章 · 获赞 3 · 访问量 5505

猜你喜欢

转载自blog.csdn.net/qq_33608000/article/details/104122775