现在我们来创建一些NPC(non-playable characters,非玩家角色)。在这个游戏中,当我们靠近NPC时,它们会做出相应的反应。

创建C++类

1) 在UE编辑器中,打开文件-新建C++类,选择从Character(角色)类继承,然后命名子类为NPC。

2) 编写代码。打开NPC.h文件:
添加头文件:(注意包含头文件必须在#include "NPC.generated.h"这一行前面加)

#include "UObjectGlobals.h"

在原来的代码基础上添加如下代码:

  1. public:
  2. //在目录Collision下创建球体属性(随处可见,蓝图只读),该属性用作碰撞体
  3. UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Collision) USphereComponent* ProxSphere;
  4. //在目录NPCMessage下创建字符串属性(随处可见,蓝图可读写)
  5. 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)相关推荐

  1. [unreal4入门系列之十四] 在UE4中添加碰撞触发事件

    一.在HUD中显示消息 1) 在MyHUD.h中定义一个结构来表示我们的消息: #pragma once #include "GameFramework/HUD.h" #inclu ...

  2. Reflex WMS入门系列三十二:导出到Excel

    Reflex WMS入门系列三十二:导出到Excel 如同SAP系统的风格 --- 凡是有list的界面,都能导出到Excel ---, Reflex WMS系统也提供了类似的功能.几乎在任何的Lis ...

  3. 【Python】【入门篇】十二、Python中协程

    目录 十二.Python中协程 12.1 协程的定义 12.2 协程 12.3 协程池 12.4 总结 十二.Python中协程 12.1 协程的定义 协程(Coroutine):是一种比线程更加轻量 ...

  4. [unreal4入门系列之十六] UE4中的集合:TSet容器

    一.TSet<T>是什么 UE4中,除了TArray动态数组外,还提供了各种各样的模板容器.这一节,我们就介绍集合容器--TSet<T>.类似于TArray<T>, ...

  5. [unreal4入门系列之十五] UE4中的动态数组:TArray容器

    为什么使用UE4提供的容器类? 如果你用过C++的STL库,你就知道STL提供了各种各样的容器/数据结构,使得你对处理很多数据的时候非常快捷高效.UE4同样也提供了类似的库,库里面的类型是以T开头的, ...

  6. [unreal4入门系列之十] UE4添加角色到场景中

    现在我们已经有了一个场景并且运行了,我们需要添加一个角色到场景中.要这样做,我们必须从UE4的GameFramework类继承它. 一. 打开上次创建的关卡 如果你已经关闭了项目,并且保存了上次创建的 ...

  7. [unreal4入门系列之八] 使用VS编译UE4编辑器并添加物体到场景中

    接下来,我们将会创建一个放置我们的游戏角色的基本场景. 编译UE4编辑器 1) 现在,我们创建一个空白的UE4项目来开始.首先点击桌面的Epic Games Launcher,打开启动器,点击左上角的 ...

  8. 【深度学习之美】激活引入非线性,池化预防过拟合(入门系列之十二)

    12.1 两个看似闲扯的问题 在开讲本章内容之前,先请你思考两个问题呗:第一个问题,你能用直线画出一张漂亮的笑脸吗?第二个问题是,你知道那副著名的对联:"诸葛一生唯谨慎,吕端大事不糊涂&qu ...

  9. Ae 入门系列之十二:三维合成

    在 Ae 中,可以将图层设置为 3D 图层并添加动态的摄像机和灯光,从而制作基于三维空间的动画. ◆  ◆  ◆ 二维与三维 二维 2D 在一个平面上的内容就是二维.只有上下.左右两个方向,没有前后. ...

最新文章

  1. Google 排名第一的语言,引数十万人关注:搞定它,技术大牛都甘拜下风
  2. Java虚拟机详解(八)------虚拟机监控和分析工具(2)——可视化
  3. iOS自动偏移64个像素
  4. 【翻译】asp.net core中使用MediatR
  5. 两个运放制作加法器_集成电路的分类及其制作工艺
  6. viewgroup的使用方法
  7. 华为手表表盘的数字什么意思_手表的陀飞轮、月相、逆跳都是什么意思?
  8. 【fabric实战指南二】Fabric v1.0 部署过程原理详解
  9. Jquery第一章环境的搭建和介绍第一节
  10. 电脑配置知识_电脑小知识:装机不求人!10 分钟电脑配置挑选速成攻略|硬盘|电脑|cpu|装机|固态硬盘|机械硬盘...
  11. Autodesk Map 3D 2012 新功能介绍
  12. python判断中文函数_如何判断(或如何编写)一个没有副作用的python函数?
  13. 19个免费好用的CSS代码样式生成器工具
  14. 固态硬盘系统经常假死_Win7固态硬盘假死卡顿解决方法
  15. python绘制正态分布图像
  16. 基于JAVA响应式交友网站计算机毕业设计源码+数据库+lw文档+系统+部署
  17. 智慧物联网下的工控安全解决方案
  18. 【STC单片机学习】第十一课:蜂鸣器
  19. 女王大学计算机科学,女王大学计算机科学专业本科课件.pdf
  20. 双非怎么保研哈工大计算机,针对双非学生计算机保研信息分享

热门文章

  1. [转]html5: postMessage解决跨域和跨页面通信的问题
  2. 在解决方案中所使用 NuGet 管理软件包依赖
  3. docker 端口被占用问题解决
  4. iis 网页HTTP 错误 404.3 - Not Found解决方案
  5. Requirement already satisfied 解决方法
  6. 我应该使用i标签代替span吗? [关闭]
  7. gj11 多线程、多进程和线程池编程
  8. Facebook 对前端工程师的要求是啥?一起来看看
  9. 聚集索引:SQL Server 进阶 Level 3
  10. ExpandableListView的使用以及信息的高亮显示