[unreal4入门系列之十二] 在UE4中创建非玩家角色(NPC)
现在我们来创建一些NPC(non-playable characters,非玩家角色)。在这个游戏中,当我们靠近NPC时,它们会做出相应的反应。
创建C++类
1) 在UE编辑器中,打开文件-新建C++类,选择从Character(角色)类继承,然后命名子类为NPC。
2) 编写代码。打开NPC.h文件:
添加头文件:(注意包含头文件必须在#include "NPC.generated.h"这一行前面加)
#include "UObjectGlobals.h"
在原来的代码基础上添加如下代码:
- public:
- //在目录Collision下创建球体属性(随处可见,蓝图只读),该属性用作碰撞体
- UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Collision) USphereComponent* ProxSphere;
- //在目录NPCMessage下创建字符串属性(随处可见,蓝图可读写)
- UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = NPCMessage) FString NpcMessage;
说明:FString是UE4的专用字符串类型,当你在UE4中开发游戏中,应该优先使用FString而不是STL里面的String。因为UE4的FString等内置类型保证了跨平台功能。
3) 重新编译UE4项目。
创建蓝图类
1) 在内容浏览器,右击NPC类,然后从这里创建一个蓝图类。注意给每个蓝图类都命名一个独有的名字,因为之后我们给不同的NPC赋予不同的模型网格和不同的消息。
2) 现在打开蓝图编辑器,选择从添加组件中选择Mesh网格,然后在细节面板更改Skeletal Mesh(骨骼网格)为SK_Mannequin。
3) 像之前一样调整胶囊碰撞体到适合位置。
4) 在组件面板中选择蓝图自身。然后在默认选项卡,找到NpcMessage属性。这是从我们C++代码中创建的属性并且可以在蓝图中应用。在UPROPERTY()函数里面添加了一个NpcMessage的字符串变量,并且指定了在蓝图类中可读写,所以在细节面板中可以进行编辑了。
5) 你可以继续创建一个NPC蓝图类(或者直接从原来的NPC蓝图类中复制一个新的蓝图类),并且可以分别设置不同的NPCMessage。接着将这两个蓝图类拖动到场景中。
后面我们会讲解如何将每个NPC自身的消息在游戏中显示给玩家看。
转自:http://www.52vr.com/article-563-1.html
[unreal4入门系列之十二] 在UE4中创建非玩家角色(NPC)相关推荐
- [unreal4入门系列之十四] 在UE4中添加碰撞触发事件
一.在HUD中显示消息 1) 在MyHUD.h中定义一个结构来表示我们的消息: #pragma once #include "GameFramework/HUD.h" #inclu ...
- Reflex WMS入门系列三十二:导出到Excel
Reflex WMS入门系列三十二:导出到Excel 如同SAP系统的风格 --- 凡是有list的界面,都能导出到Excel ---, Reflex WMS系统也提供了类似的功能.几乎在任何的Lis ...
- 【Python】【入门篇】十二、Python中协程
目录 十二.Python中协程 12.1 协程的定义 12.2 协程 12.3 协程池 12.4 总结 十二.Python中协程 12.1 协程的定义 协程(Coroutine):是一种比线程更加轻量 ...
- [unreal4入门系列之十六] UE4中的集合:TSet容器
一.TSet<T>是什么 UE4中,除了TArray动态数组外,还提供了各种各样的模板容器.这一节,我们就介绍集合容器--TSet<T>.类似于TArray<T>, ...
- [unreal4入门系列之十五] UE4中的动态数组:TArray容器
为什么使用UE4提供的容器类? 如果你用过C++的STL库,你就知道STL提供了各种各样的容器/数据结构,使得你对处理很多数据的时候非常快捷高效.UE4同样也提供了类似的库,库里面的类型是以T开头的, ...
- [unreal4入门系列之十] UE4添加角色到场景中
现在我们已经有了一个场景并且运行了,我们需要添加一个角色到场景中.要这样做,我们必须从UE4的GameFramework类继承它. 一. 打开上次创建的关卡 如果你已经关闭了项目,并且保存了上次创建的 ...
- [unreal4入门系列之八] 使用VS编译UE4编辑器并添加物体到场景中
接下来,我们将会创建一个放置我们的游戏角色的基本场景. 编译UE4编辑器 1) 现在,我们创建一个空白的UE4项目来开始.首先点击桌面的Epic Games Launcher,打开启动器,点击左上角的 ...
- 【深度学习之美】激活引入非线性,池化预防过拟合(入门系列之十二)
12.1 两个看似闲扯的问题 在开讲本章内容之前,先请你思考两个问题呗:第一个问题,你能用直线画出一张漂亮的笑脸吗?第二个问题是,你知道那副著名的对联:"诸葛一生唯谨慎,吕端大事不糊涂&qu ...
- Ae 入门系列之十二:三维合成
在 Ae 中,可以将图层设置为 3D 图层并添加动态的摄像机和灯光,从而制作基于三维空间的动画. ◆ ◆ ◆ 二维与三维 二维 2D 在一个平面上的内容就是二维.只有上下.左右两个方向,没有前后. ...
最新文章
- Google 排名第一的语言,引数十万人关注:搞定它,技术大牛都甘拜下风
- Java虚拟机详解(八)------虚拟机监控和分析工具(2)——可视化
- iOS自动偏移64个像素
- 【翻译】asp.net core中使用MediatR
- 两个运放制作加法器_集成电路的分类及其制作工艺
- viewgroup的使用方法
- 华为手表表盘的数字什么意思_手表的陀飞轮、月相、逆跳都是什么意思?
- 【fabric实战指南二】Fabric v1.0 部署过程原理详解
- Jquery第一章环境的搭建和介绍第一节
- 电脑配置知识_电脑小知识:装机不求人!10 分钟电脑配置挑选速成攻略|硬盘|电脑|cpu|装机|固态硬盘|机械硬盘...
- Autodesk Map 3D 2012 新功能介绍
- python判断中文函数_如何判断(或如何编写)一个没有副作用的python函数?
- 19个免费好用的CSS代码样式生成器工具
- 固态硬盘系统经常假死_Win7固态硬盘假死卡顿解决方法
- python绘制正态分布图像
- 基于JAVA响应式交友网站计算机毕业设计源码+数据库+lw文档+系统+部署
- 智慧物联网下的工控安全解决方案
- 【STC单片机学习】第十一课:蜂鸣器
- 女王大学计算机科学,女王大学计算机科学专业本科课件.pdf
- 双非怎么保研哈工大计算机,针对双非学生计算机保研信息分享
热门文章
- [转]html5: postMessage解决跨域和跨页面通信的问题
- 在解决方案中所使用 NuGet 管理软件包依赖
- docker 端口被占用问题解决
- iis 网页HTTP 错误 404.3 - Not Found解决方案
- Requirement already satisfied 解决方法
- 我应该使用i标签代替span吗? [关闭]
- gj11 多线程、多进程和线程池编程
- Facebook 对前端工程师的要求是啥?一起来看看
- 聚集索引:SQL Server 进阶 Level 3
- ExpandableListView的使用以及信息的高亮显示