[UE4]Grabbable接口
首先,面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分。或者说,它是面向对象编程体系中的思想精髓之一。
接口是一组规则的集合,它规定了实现本接口的类或接口必须拥有的一组规则。体现了自然界“如果你是……则必须能……”的理念。
  例如,在自然界中,人都能吃饭,即“如果你是人,则必须能吃饭”。那么模拟到计算机程序中,就应该有一个IPerson(习惯上,接口名由“I”开头)接口,并有一个方法叫Eat(),然后我们规定,每一个表示“人”的类,必须实现IPerson接口,这就模拟了自然界“如果你是人,则必须能吃饭”这条规则。
一、Grabbable接口:可被抓取的接口。接口一般用形容词来命名。隐含的意思是Grabbable是物体的某一方面的属性,描绘的是物体某一个特征。
二、哪些类可以实现Grabbable接口?
1、所有能抓取的东西
2、比如:椅子、武器(拿起来要有方向规定,比如剑锋利的一面朝外,盾牌的盾面也要朝外,武器都有手握的把手,不是随便握的)、门(打开和关闭都是围绕一个轴转动)、抽屉(只能往前后方向移动,并且只能移动一定的距离,不能无限移动)、石头。实现接口的函数名称一样,但是函数实现根据不同的物品可以不一样。
三、在蓝图中新建接口
1、在内容视图,右键选择“Blueprints——》Blueprint Interface”。
     
 
四、在蓝图中实现接口,一个类可以实现多个多个接口,接口与接口之间互不影响。
  
五、实现接口的函数体,要在Add Event节点下,如图所示。
   
 
  
把原有的OnGrab改成On Grab Private,OnDrop改成On Drop Private,然后直接调用就可以了。使用一个自定义的函数体来实现接口函数体,可以有很多好处:可以使用局部变量、优化代码结构。
[UE4]Grabbable接口的更多相关文章
- [UE4]引用Grabbable接口
		一.当前:可抓取对象的类型是GrabTargetActor 二.修改目标:可抓取对象的类型改成Grabbable. 1.Fand Grab Target的返回值改成Grabbale(变量的数据类型可以 ... 
- ue4 c++ 接口
		使用UE4接口比起普通的高级语言,要多做很多工作,是因为要兼容蓝图的使用,有一些小坑需要注意,开始吧. 1.新建接口类 打开UE4编辑器,与往常一样,新建C++类,然后选择Object继承,然后取名字 ... 
- [UE4]小地图接口设计
		一.地图缩略图片 二.要显示的图标及其对应的Actor 三.比例尺 四.对位点,只需要一个对位点就可以了. 函数名称 SetupMap 函数功能 设置地图 参数类型 MapImage:地图缩略图 Ma ... 
- UE4学习心得:蓝图间信息通信的几种方法
		蓝图间通信是一个复杂关卡能否正常运行的关键,笔者在这里提供几种蓝图类之间的信息交互方法,希望能对读者有所帮助. 1.类引用 这是最直接的一种蓝图类之间的信息交互方式.首先在Editor中创建2个Act ... 
- ue4访问php接口
		继上一篇介绍ue4打开web url窗口,这篇就来介绍下怎么访问php接口. 要做的两步: 1.c++自己写个接受请求的方法 f Post lhc-URL Request就是自定义的c++方法, /* ... 
- UE4使用UMG接口操作界面
		原文链接:http://gad.qq.com/article/detail/7181131 本文首发腾讯GAD开发者平台,未经允许,不得转载 UE4的蓝图之强大让人欲罢不能,但是实际在项目的开发中,C ... 
- [UE4]接口
		一个椅子可以被抓起和放下,一扇门可以打开和关上.一个抽屉可以拉开和关上. 椅子.门.抽屉都可以用手拉,然后放下,但是它们的打开和关上的行为是不一样的,它们之间没有继承关系,没法共用“打开”和“关闭”的 ... 
- 【UE4 C++ 基础知识】<9> Interface 接口
		概述 简单的说,接口提供一组公共的方法,不同的对象中继承这些方法后可以有不同的具体实现. 任何使用接口的类都必须实现这些接口. 实现解耦 解决多继承的问题 蓝图使用 使用方法 三种调用方法的区别 调用 ... 
- [UE4]Get All Widgets Of Class、Get All Widgets with Interface,根据类名或者接口UI实例对象
		Get All Widgets Of Class.Get All Widgets with Interface,是系统蓝图函数库提供的方法,可以在任何蓝图中使用. 可以方便地获得UI实例对象,进而使用 ... 
随机推荐
- mac eclipse maven -solved
			最近开始用mac,在开始之初体验到了mac系统的丝滑流畅,但也感受到重新开始学习一个平台的坡度. 最近学习maven,创建项目时总是报错,网上查阅到的资料很少.最后在settings.xml中添加了阿 ... 
- SVG分组和引用
			这是我在掘金中的文章链接地址:https://juejin.im/post/5bcfe0fa51882577e3760467 
- git教程:工作区和暂存区
			Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工 ... 
- appium---android元素定位
			原文链接:https://www.cnblogs.com/meitian/p/6103391.html 一.常用识别元素的工具 uiautomator:Android SDK自带的一个工具,在tool ... 
- 我对CSS的认识
			花费了一段时间,终于对HTML有了一定的了解,随后又开始进行CSS的战斗感觉自己学起来有一点吃力.我就简单的讲一下我所学到的吧! CSS的概述. 层叠式样式表,用于控制网页样式并允许将样式信息并允许将 ... 
- CentOS 7 下安装 Nginx
			安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 CentOS 7 作为安装环境. 一. gcc 安装安装 nginx 需要先 ... 
- 使用CUPS打印服务
			目录 1. 测试环境 2 2. CUPS介绍 3 2.1 CUPS的配置文件 3 2.1.1 cupsd.conf 3 2.1.2 cups-files.conf 3 2.1.3 printcap 3 ... 
- ubuntu下安装无界面浏览器
			ubuntu下安装PhantomJS 1.下载: 32位:wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-li ... 
- qt+opencv 构建项目时报错——no such file or directory
			构建前,记得,一定一定一定要先点击执行qmake: 
- H3C_IRF
			1.IRF的优点: 跨设备负载均衡 规避环路 强大的网络扩展能力 带宽/可靠性增加 2.IRF域编号存在的意义: 域是一个逻辑概念,一个 IRF 对应一个 IRF 域 如果IRF 1 和IRF 2 之 ... 
