首页 > 编程知识 正文

街机第一人称射击游戏(ue4第一人称射击游戏教程)

时间:2023-05-04 23:29:42 阅读:73019 作者:3411

学习unity已经有一段时间了,我打算自己做cs的项目来巩固和提高自己。

第一步:构建场景

由于该游戏只侧重于游戏逻辑,因此要构建场景和人物素材,请从unity asset store的免费资源下载。 所以,先找场景。

在这个unity提供的免费场景中

场景是这样的

上面的场景禁用了一些特效。

我接下来再去找一把枪

导入这把枪的素材,从块中选择一把。

请注意从场景中移除相机。 自己添加照相机,调整照相机和枪的位置。 可能是下图的位置

把照相机拖到枪里形成子物体和母物体。 目的是为了让照相机追随枪的运动而移动。

请注意把枪放在空物体里。 否则,材料的自身坐标会导致移动和旋转成为问题。

接下来先写移动脚本。

新建c#类,MovePlayer.cs

用Input系统控制鼠标左右移动、枪旋转、键盘awsd或人物移动。

using System.Collections;

using system.collections.generic;

用户单元引擎;

///summary

//

////summary

publicclassmoveplayer : mono behaviour

{

//左右移动键盘

私有浮动水平;

//键盘上下键移动

私密浮动垂直;

//鼠标的x轴移动(相对于画面) ) ) ) ) ) )。

私有浮动模块;

//鼠标y轴移动(相对于屏幕)注:屏幕上没有z轴,因此没有鼠标z轴移动的输入

隐私浮动模块;

//移动速度

公共浮动移动=10;

//转速

公共浮动旋转速度=50;

//startiscalledbeforethefirstframeupdate

void Start () )

{

}

//Update is called once per frame

void更新() )

{

//键盘上的ad键和左右移动键左:-1右: 1

horizontal=input.getaxis (horizontal );

//键盘上的ws键和键上下移动

vertical=input.getaxis (vertical );

//移动鼠标控制旋转

mousex=input.getaxis(mousex );

mousey=input.getaxis(mousey );

//移动键盘的ad键相对于三维坐标系的x轴,ws相对于z轴

this.transform.translate (horizontal * time.delta time * movespeed,0,vertical * time.delta time * movesped );

//旋转鼠标的左右移动沿3位坐标的y轴旋转,鼠标的上下沿x轴旋转()鼠标上为正值,但旋转为逆时针旋转,因此注意x轴的旋转向负方向旋转() ) )。

//y轴沿着世界坐标

this.transform.rotate (0* time.delta time,mousex * rotatespeed * time.delta time,0,Space.World );

//x轴沿着自身

this.transform.rotate (-mousey * rotatespeed * time.delta time,0,0 );

打印(水平)水平;

打印(垂直)垂直;

}

}

以上代码通过控制物体的旋转,制造人物很复杂,所以简单地制造枪。

控制枪支移动需要注意两点

1请注意,枪的旋转沿y轴旋转是沿世界旋转,而沿x轴旋转是沿自身旋转。 (自己用身体转动就知道了,如果都是沿着同一条线的话,需要固定脖子,会导致旋转昏厥。 ) ) ) ) ) ) ) ) ) ) )。

沿2x轴旋转input可获得正值,向上旋转则x轴逆时针旋转,因此必须沿负方向旋转。

现在,本章已经写到这里,下一章将碰撞组件和刚体添加到枪中,以防止枪飞出地图。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。