查看: 816|回复: 11

[编程指南] 【函数 | Unreal Engine】

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

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


本页面的内容:

      
函数声明
函数说明符
元数据修饰符
函数参数说明符

函数实现

委托

定时器
     函数声明
函数 可以两种基本形式存在:普通 C++ 函数或 UFunction</code>。C++ 函数和 UFunction</code> 均在 .h</code> 类头文件中进行声明。C++ 函数通过标准 C++ 语法进行声明。UFunctions</code> 使用的是一种专用的语法,声明中将使用 函数说明符 来说明函数的额外信息。
UFUNCTION([specifier, specifier, ...], [meta(key=value, key=value, ...)])ReturnType FunctionName([Parameter, Parameter, ...])
UFunctions</code> 行为与 C++ 函数相同。C++ 函数中拥有一个 C++ 实现,可从 C++ 代码中进行调用,并可包含对其他 C++ 函数的调用或在它们的函数主体中对 UFunctions</code> 的调用。然而 UFunctions</code> 在一些地方存在不同。例如,它们可从 蓝图可视化脚本编辑 系统中被调用或覆写。任何使用 BlueprintCallable</code>、BlueprintImplementableEvent</code> 或 BlueprintPure</code> 说明符(在下方的 函数说明符 中了解更多细节)进行声明的 UFunction</code> 均会被公开到蓝图。UFunctions</code> 也可在类的默认属性中作为委托进行指定。此技术常用于将输入行为或坐标轴与 Input</code> 类中的函数结合起来。UFunctions</code> 还用作复制回呼。意味着与其相关的变量发生变化并沿网络复制时,UFunction</code> 将被调用。UFunctions</code> 还是唯一一种可作为 exec 函数进行声明的函数类型,玩家可在游戏进行时通过游戏内控制台对其进行调用。

函数说明符
在声明函数时,声明上可添加修饰符以控制引擎和编辑器的不同方面的属性表现。

BlueprintAuthorityOnly

BlueprintCallable

BlueprintCosmetic

BlueprintImplementableEvent

BlueprintNativeEvent

BlueprintPure

Category

Client

CustomThunk

Exec

NetMulticast

Reliable

Server

Unreliable

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



BlueprintInternalUseOnly

BlueprintProtected

DeprecatedFunction

DeprecationMessage

UnsafeDuringActorConstruction

函数参数说明符<dl >Out
声明由引用传递的参数,使函数对其进行修改。


Optional
通过任选关键词可使部分函数参数变为任选,方便调用。任选参数的数值(调用方未指定)取决于函数。例如,SpawnActor</code> 函数使用任选位置和旋转,默认为生成的 Actor 根组件的位置和旋转。添加 = [value]</code> 参数可指定任选参数的默认值。例如:function myFunc(optional int x = -1)</code>。在多数情况下,如无数值被传递到任选参数,将使用变量类型的默认值或零(例如 0、false、""、none)。
函数实现
类头文件中声明的函数在类源文件中获得定义。
委托
代理允许您在C++对象上以通用的但类型安全的方式调用成员函数。通过使用代理,您可以将其动态地绑定到任何对象的成员函数上,然后在该对象上调用函数,即时调用者不知道该对象的类型也没关系。

复制代理对象是非常安全的。代理可以进行值传递,但是一般不推荐这样做,因为这样就必须在堆上为其分配内存。因此 任何时候您都应该通过引用传递代理。

既支持单播代理也支持多播代理,同时还支持可以安全地序列化到磁盘上的“动态”代理。

单播代理

多播代理

动态代理(UObject, 可序列化)

在 代理 页面中查看参考和使用信息。
定时器
利用 定时器 可单次或以设定间隔反复执行操作。使用定时器可延迟执行操作或在一段时间内执行操作。例如使玩家在获得特定道具后进入无敌状态,10 秒钟后恢复正常。或者在玩家进入充满毒气的房间后每秒对其造成伤害。这些功能均可通过定时器实现。

在 游戏性定时器 页面中查看参考和使用信息。
回复

使用道具 举报

0

主题

814

帖子

2688

积分

vip会员

Rank: 1

积分
2688
发表于 2016-7-2 19:22:53 | 显示全部楼层
看一下,谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

905

帖子

2972

积分

vip会员

Rank: 1

积分
2972
发表于 2016-7-3 22:51:58 | 显示全部楼层
怎么样呢急
回复 支持 反对

使用道具 举报

0

主题

831

帖子

2740

积分

vip会员

Rank: 1

积分
2740
发表于 2016-7-4 11:19:53 来自手机 | 显示全部楼层
感谢分享,学习一下!
回复 支持 反对

使用道具 举报

0

主题

862

帖子

2834

积分

vip会员

Rank: 1

积分
2834
发表于 2016-7-8 11:34:31 来自手机 | 显示全部楼层
我现在有的是钱,我要下了!
回复 支持 反对

使用道具 举报

0

主题

908

帖子

3041

积分

vip会员

Rank: 1

积分
3041
发表于 2016-7-12 14:05:04 来自手机 | 显示全部楼层
全就行啊,,支持 一下
回复 支持 反对

使用道具 举报

0

主题

896

帖子

2937

积分

vip会员

Rank: 1

积分
2937
发表于 2016-7-18 07:44:36 来自手机 | 显示全部楼层
不错 可以下来研究研究
回复 支持 反对

使用道具 举报

0

主题

885

帖子

2952

积分

vip会员

Rank: 1

积分
2952
发表于 2016-7-19 14:47:51 来自手机 | 显示全部楼层
谢谢楼主分享哈!
回复 支持 反对

使用道具 举报

0

主题

849

帖子

2777

积分

vip会员

Rank: 1

积分
2777
发表于 2016-7-21 07:05:23 | 显示全部楼层
这个必须顶,,,,
回复 支持 反对

使用道具 举报

0

主题

813

帖子

2681

积分

vip会员

Rank: 1

积分
2681
发表于 2016-7-23 11:20:06 | 显示全部楼层
很好的东西!
回复 支持 反对

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部