| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> UE4学习监督——C++人物移动 -> 正文阅读 |
|
[游戏开发]UE4学习监督——C++人物移动 |
上一次我们尝试新建一个关卡。这一次我们尝试创建一个可以移动的人物。 首先需要做一些准备工作,针对vs不能自动补全头文件这一问题可以安装reshaper插件,可帮助补全。如果不安装插件且不知道头文件名称可复制相关类名查询API。 网络上相关教程很多,在此我只选取官方Demo给出的源码,尝试以这种方式让人物动起来。 首先我们在内容浏览器中创建一个新的C++类,命名为HeroDemo,继承自Character类。 我们在头文件中做一些声明:
UPROPERTY通常用于说明一些状态,如是否在其他位置可以编辑、是否可以被蓝图读取等,其中Category通常表示在编辑器的名称。 USpringArmComponent 为一个组件类,它提供相机的弹簧臂,可以实现视角的移动等。 UCameraComponent 为相机组件类,在可以提供视野等。 FORCEINLINE 是c++关键字 用于内联函数。区别于inline,FORCEINLINE 根据程序员判断进行内联,而非根据编辑器性能和优化分析。 头文件已经编写完成,现在我们开始完成具体内容。
CreateDefaultSubobject 该函数是个模板函数,用于创建组件或子对象,然后返回指向新建组件内存区域的指针。 关于bOrientRotationToMovement 用于更新人物的旋转。 关于SocketName问题 指弹簧臂末端位置 下面开始绑定按键
BindAction用于绑定触发事件,如跳跃等。 第一个参数为名称,之后再编辑器中需要设置 第二个为触发条件,如IE_Pressed和IE_Released表示按下/松开触发。 第三个为执行主体,通常为this 第四个为调用函数。 这里调用了ACaharacter和Apawn的一些函数,这也是为何继承Character类的原因,因为UE4底层已经给我们编写好了基础的移动,我们只需要调用就可以。当然或许高层次的开发会需要重写底层代码,在此不做考虑。 然后需要在编辑器中设置绑定 点击编辑->项目设置->输入,并进行如下设置: 向后和向左移动只需要将值设为复数即可完成。 下面编写移动的函数
两段代码很相似。大体模式是首先获得控制器的旋转,之后选择性输入一个方向的旋转。FRotationMatrix为矩阵结构,可以让一个物体轻松地转向另一个物体。这里应该是让actor转向controller的方向,从而实现人物转动。GetUnitAxis()将获取的控制器左右旋转角度转化为旋转后x/y轴方向的单位向量存为Direction(要去的方向)。最后AddMoveMentInput添加移动,两个方向为方向和长度。在Pawn和Character类中,底层为我们写好按帧刷新读取,故不用额外操作。 到此代码已经完成,下面回到编辑器编译,运行。成功。 向量存为Direction(要去的方向)。最后AddMoveMentInput添加移动,两个方向为方向和长度。在Pawn和Character类中,底层为我们写好按帧刷新读取,故不用额外操作。 [外链图片转存中…(img-sdlH6uKn-1635072344978)] 到此代码已经完成,下面回到编辑器编译,运行。成功。 以上许多都是个人理解和感受,如有不正确、不到位的地方希望大家指正。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/28 0:50:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |