查看: 175|回复: 6

[编程指南] 【接口 | Unreal Engine】

[复制链接]

1

主题

273

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
73034
发表于 2016-6-26 02:01:56 | 显示全部楼层 |阅读模式


本页面的内容:

      
接口声明
接口说明符
元数据修饰符

在 C++ 中实现接口

确定特定 Actor 是否实现接口

蓝图可实现类
     
接口类的声明和常规类的声明非常相似。语法中唯一的主要区别是描述符被传递到 UINTERFACE</code> 宏,而非 UCLASS</code> 宏。
UINTERFACE([specifier, specifier, ...], [meta(key=value, key=value, ...)])class ClassName :ParentName接口声明
在 .h 文件中(如 ItemInterface.h</code>):
#pragma once#include "ItemInterface.generated.h"UINTERFACE(Blueprintable)class UItemInterface : public UInterface{    GENERATED_UINTERFACE_BODY()};class IItemInterface{    GENERATED_IINTERFACE_BODY()public:    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category="Item")    FItemStruct GetItem() const;};
在 .cpp 文件中(如 ItemInterface.cpp</code>):
#include "ItemInterface.h"UItemInterface::UItemInterface(const FObjectInitializer ObjectInitializer) :Super(ObjectInitializer){}
声明包含一个类的标准 C++ 类声明。在标准声明上,描述符(如类说明符和元数据)将被传递到 UINTERFACE 宏。它们用于为被声明的接口创建 UInterface,它可被看作引擎对类的专有表达。而且,GENERATED_UINTERFACE_BODY() 宏必须被放置在类体的最前方。

对于引擎将要识别的接口,必须创建两个类,一个继承自 UInterface 的 UINTERFACE 类、一个纯粹的接口类。

UINTERFACE 需带 U 前缀,因其从 UObject 扩展而来。接口需以 I 为前缀。

如需要蓝图实现此接口,则 Blueprintable</code> 说明符为必需。

接口说明符
在声明接口时,声明上可添加修饰符以控制引擎和编辑器的不同方面的接口表现。接口使用声明类时的修饰符的子集。

Blueprintable

DependsOn

MinimalAPI

NotBlueprintable

元数据修饰符
对元数据修饰符的使用按常规类、函数和接口修饰符而不同。



CannotImplementInterfaceInBlueprint
在 C++ 中实现接口
在 C++ 中声明类时,直接从接口(并非 UInterface 类)进行继承。
class AItem : public AActor, public IItemInterface{    GENERATED_BODY()public:    FItemStruct GetItem_Implementation() const;};确定特定 Actor 是否实现接口
为保证 C++ 和实现接口的蓝图类之间的兼容性,使用以下代码:
obj-GetClass()-ImplementsInterface(UItemInterface::StaticClass());
必须使用类的 UInterface 版本确定接口是否已实现。
蓝图可实现类
如需蓝图实现此节点,必须使用 Blueprintable</code> 元数据说明符,接口中的每个函数必须为一个 BlueprintNativeEvent</code> 或 BlueprintImplementableEvent</code>。否则,实现接口的蓝图类可能无法实现接口的所有方法。
回复

使用道具 举报

0

主题

873

帖子

2889

积分

vip会员

Rank: 1

积分
2889
发表于 2016-7-2 19:23:54 来自手机 | 显示全部楼层
好东西,多些楼主分享
回复 支持 反对

使用道具 举报

0

主题

879

帖子

2886

积分

vip会员

Rank: 1

积分
2886
发表于 2016-7-3 23:10:23 | 显示全部楼层
什么游戏看看
回复 支持 反对

使用道具 举报

0

主题

890

帖子

2882

积分

vip会员

Rank: 1

积分
2882
发表于 2016-7-4 11:28:39 | 显示全部楼层
来看看
回复 支持 反对

使用道具 举报

0

主题

844

帖子

2772

积分

vip会员

Rank: 1

积分
2772
发表于 2016-7-7 11:16:06 来自手机 | 显示全部楼层
怎么下载额
回复 支持 反对

使用道具 举报

0

主题

871

帖子

2916

积分

vip会员

Rank: 1

积分
2916
发表于 2016-7-17 20:37:33 | 显示全部楼层
回复看看!!!!!!!!!楼主辛苦
回复 支持 反对

使用道具 举报

0

主题

1245

帖子

3991

积分

vip会员

Rank: 1

积分
3991
发表于 2016-7-18 09:34:38 来自手机 | 显示全部楼层
挺不错的!就是不知道价格
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部