当前位置: 首页 > news >正文

福建漳州网站建设价格驾校推广网络营销方案

福建漳州网站建设价格,驾校推广网络营销方案,b2b的代表网站有哪些,开发网站的空间分录写在前面 Pawn继承于Actor,增加了一些用于控制和提供玩家视角的功能,这里主要是介绍一下Pawn类的实现。 一、创建一个Pawn的C类 创建的C类也是放在Source文件夹中的Public和Private文件夹中;选择Pawn作为继承的父类;头文件中除…

写在前面

Pawn继承于Actor,增加了一些用于控制和提供玩家视角的功能,这里主要是介绍一下Pawn类的实现。

一、创建一个Pawn的C++类

  • 创建的C++类也是放在Source文件夹中的Public和Private文件夹中;
  • 选择Pawn作为继承的父类;
  • 头文件中除了Actor的函数外,仅额外增加了一个负责设置玩家输入组件的函数SetupPlayerInputComponent(),如下:

头文件

  • .cpp文件中也默认实现了SetupPlayerInputComponent()函数,如下:

cpp文件

二、增加摄像机组件

  • 摄像机相当于是提供了一个玩家视角
  • 它绑定在Pawn上之后,玩家视角就能随着Pawn移动而移动;
  • 头文件实现如下:

增加一个摄像机组件

  • 并在.cpp文件中把摄像机组件挂载到根组件上,实现如下:

cpp实现

  • 一些补充如下:

1. StaticMesh的网格体形状可以预先设置

  • 代码实现如下:

预先设置网格体形状

  • 一些注意的点如下:
    • 首先要用MeshComponentAsset变量尝试加载资源;
    • 如果能加载,则将资源赋予网格体;
    • 资源的路径可以通过右键资源->复制引用获得,如下:

找资源所在路径

2. 摄像机组件可以和弹簧臂组件组合使用

  • 当然直接将摄像机固定在Pawn的某个位置也是可以的,但这样视角移动就会很生硬,在启动和停止时没有过渡动画的效果,实现就是上面那样;
  • 但如果使用弹簧臂连接摄像机和Pawn,则视角移动更为自然,这也是常用的做法;
  • 首先在头文件中增加弹簧臂组件,如下:

弹簧臂组件

  • 然后在构造函数中设置弹簧臂,并将摄像机挂载到弹簧臂上,如下:

使用弹簧臂

  • 一些注意的点如下:
    • 弹簧臂是挂载在根组件上;
    • 摄像机是挂载在弹簧臂的预设插槽(Socket)上;
    • 弹簧臂的倾斜角度和长度取决于摄像机想要放置的位置;

3. 可以用某个组件代替默认的根组件

  • 默认的根组件只是用于占位,本身并没有作用,因此可以用别的有实际作用的组件替换掉;
  • 这里用一个隐藏的更大的球形组件(注意不是球型静态网格组件)替换根组件,并设置为不可见;
  • 头文件实现如下:

头文件

  • 构造函数中实现如下:

设置根组件

三、创建一个Pawn的蓝图类

  • Pawn类和Actor类不同,它的很多功能需要用蓝图类辅助实现(当然完全用C++也可以,但会很麻烦,而且不直观,相当于是用文字描述图片了),所以一般是要新建一个和Pawn类对应的蓝图类作进一步开发;
  • 由C++创建的蓝图类相当于是继承了C++类;

1. 由C++类创建蓝图类的方法

  • (1) 右键C++类,选择创建基于xxx的蓝图类

创建蓝图类

  • (2) 在内容文件夹下放置蓝图类的路径下,右键->创建基础资源->选择蓝图类,然后在所有类中搜索对应的C++类创建即可;

创建蓝图类

2. 挂载组件的对应关系

  • 在C++类的构造函数中,RootComponent下挂载了两个组件,一个静态网格组件,一个是摄像机组件,而且这两个组件处于同一层;
  • 在蓝图类中的组件面板可以清楚的看到它们之间的挂载结构;
  • 按照刚刚的设置,如果不使用弹簧臂,则如下:

组件挂载结构

  • 如果使用弹簧臂,则结构如下:

组件挂载结构

  • 当然,组件也可以在蓝图中继续挂载或者修改;

3. 摄像机组件和Pawn之间的关系

  • 摄像机组件实际上是Pawn的一部分;
  • 但是它从位置上来说应该有两种情况:
    • 第一人称游戏:摄像机组件的位置在Pawn的眼睛位置;
    • 第三人称游戏:摄像机组件的位置在Pawn的后上方位置;
  • 通常会用另外一个网格组件(这里暂时是用StaticMeshComponent)作为Pawn的本体,也就是充当Pawn生物的外形;
  • 按照刚刚在C++类构造函数中的设置,如果不使用弹簧臂组件,则摄像机和静态网格组件之间的位置关系如下图:

位置关系

  • 如果使用弹簧臂组件,则摄像机和静态网格组件之间的位置关系如下图:

位置关系

四、在地图上以Pawn开始游戏

  • Pawn因为可以作为玩家的控制的视角,所以我们需要在开始游戏之后获得某个Pawn的视角,并且能够控制Pawn的运动

1. 获得Pawn视角

  • 如果什么都不设置,默认开始游戏是将视角放到PlayerStart上的,并对准前向(红色箭头),如下:

PlayStart视角

1.1 在PlayerStart处生成一个Pawn

  • 通过设置游戏模式(GameMode),可以在PlayerStart处生成一个Pawn,这样就可以顺理成章地获得它的视角了;
  • 通过默认生成的游戏模式C++类(这个是创建C++项目的时候就自动创建了的,里面没有内容,仅继承了AGameModeBase类)派生一个游戏模式蓝图类BP_CreatureGameMode,如下:

新建游戏模式蓝图类

  • 打开BP_CreatureGameMode,修改默认Pawn类BP_CreaturePawn,就可以修改开始游戏时在PlayerStart处生成的Pawn;

修改默认Pawn类

  • 之后,还需要在世界中应用新的游戏模式
  • 在主面板上打开世界场景设置面板,修改其中的游戏模式覆盖为刚刚创建的游戏模式蓝图类即可;
  • 此时用选中的视口播放游戏,就可以在PlayerStart处生成我们选定的Pawn,而且视角是在Pawn绑定的摄像机组件上;

设置新的游戏模式

1.2 将某个Pawn赋予玩家视角

  • 如果是在PlayerStart处生成一个Pawn,是有一些不足的:
    • 没有办法赋予它一些预设的实例参数,因为它是一个新生成的实例,完全依赖于C++类或者蓝图类中的默认设置;
    • 也没有办法在不同的Pawn之间切换视角,只能一直在PlayerStart视角;
  • 这里介绍如何为某个Pawn赋予玩家视角;
  • C++实现
    • 只需要在构造函数中设置AutoProssessPlayer变量即可:

为Pawn赋予玩家视角

  • Editor实现
    • 在细节面板中选中Pawn->自动控制玩家,修改值为玩家0即可:

为Pawn赋予玩家视角

2. 绑定玩家输入控制

2.1 创建轴映射

  • 在Editor中点击编辑->项目设置

项目设置

  • 引擎->输入->Bindings里面新增轴映射,如下:

和键盘输入绑定

  • 输入的映射方式主要有两种:
    • 轴映射:输入的设备可提供输入程度的变化范围,输入的是一个连续值,该值会乘以设定的缩放值,然后传给后续响应事件函数中的float类型参数Value
    • 操作映射:输入的设备仅提供是否输入的信号,即离散0/1,后续有两个响应事件函数,一个响应按下按钮事件,一个响应释放按钮事件;
    • 可以参考博文:UE4中轴映射;

2.2 绑定到响应事件函数

  • 在Pawn默认构建的SetupPlayerInputComponent()函数中可以绑定映射对应的响应事件函数,实现如下:

绑定响应事件函数

  • 注意BindAxis()函数中的字符串参数就是刚刚在项目设置中创建的轴映射事件名称,必须要相互对应;

3. 实现玩家控制的影响

  • 前面只是将玩家输入绑定到Pawn某个成员变量上,并没有对Pawn产生实际的影响;
  • 这里将实现对Pawn的影响,也就是令Pawn产生位移,实现如下:

产生位移

  • 上面的代码里面有两种实现,推荐是用第二种类型的;

五、Pawn的视角控制

  • 视角控制实际上就是实现Pawn的转身和俯仰视;
  • 首先是创建对应的轴映射:

创建轴映射

http://www.yidumall.com/news/39499.html

相关文章:

  • 为什么我有的网站打不开黑马程序员培训机构官网
  • 如何做网站详细步骤图百度新版本更新下载
  • 网上有做任务赚钱的网站有哪些西安seo包年服务
  • 电商网站建设论文参考文献网络营销的概念和特点
  • 做期货资讯网站seo自动优化软件
  • 公司级别网站开发优化 seo
  • 新开传奇网站单职业什么叫友情链接
  • 网站被挂马怎么办seo网站排名优化软件是什么
  • 南京网站制作多少钱网站排名点击工具
  • 想学网站建设方向的研究生品牌推广工作内容
  • 做整合营销的网站信息流推广的竞价机制是
  • 一起看地图app下载手机版百度seo关键词排名查询工具
  • 茂名制作网站软件网站seo哪家公司好
  • wordpress 发布文章 慢天津seo排名收费
  • 重庆网站icp备案查询济源网络推广
  • 在线视频制作网站广西南宁市有公司网站设计
  • 建站仅向商家提供技术服务卢镇seo网站优化排名
  • 威联通231p做网站网络营销课程实训总结
  • 中国建设报社门户网站电脑优化大师下载安装
  • 网站群系统破解版seo最新
  • ps毕业设计做网站界面企业软文
  • 主流建站公司域名注册哪个网站好
  • wordpress静态页济南seo公司报价
  • 网站页面设计怎么收费搜索优化网络推广
  • 泰安建设银行网站电商代运营公司100强
  • 哪些网站专做新闻网址关键词查询网站
  • 公司网站设计费计入什么科目教育培训机构有哪些
  • 利用代码如何做网站seo自学网官网
  • wordpress 头部空白整站多关键词优化
  • 网站建设教程讲解培训网站设计