首页 > 其他分享 >为什么 InputComponent->BindAxis(TEXT("ViewHorizontalOffSet"),this,&AMarioController::ViewO

为什么 InputComponent->BindAxis(TEXT("ViewHorizontalOffSet"),this,&AMarioController::ViewO

时间:2024-04-03 12:33:48浏览次数:17  
标签:ViewOffset 函数 绑定 UFUNCTION Unreal OnComponentBeginOverlap BindAxis

在Unreal Engine中,InputComponent->BindAxis和事件绑定(如OnComponentBeginOverlap)使用不同的系统和要求。这些差异导致了在绑定函数时对UFUNCTION()宏的不同需求。

BindAxis和UFUNCTION()宏
BindAxis: 用于绑定输入轴(如游戏手柄的移动或旋转)。当绑定轴输入时,BindAxis函数直接引用成员函数指针来处理输入值。因为这种直接的函数指针绑定发生在编译时,而非运行时,因此不需要UFUNCTION()宏。在C++编译时期,编译器已经知道函数的地址,所以可以直接将其绑定到输入事件。

为什么不需要UFUNCTION():BindAxis对函数的直接指针绑定并不需要函数被Unreal的反射系统所知晓。因此,用于输入绑定的函数不需要标记为UFUNCTION(),这减少了反射系统的开销,并保持了代码的简洁性。

事件绑定(如OnComponentBeginOverlap)和UFUNCTION()宏
事件绑定:如OnComponentBeginOverlap等事件绑定通常需要与Unreal Engine的反射系统交互。这使得引擎在运行时能够识别和调用相应的函数。这种情况下,函数必须使用UFUNCTION()宏进行标记。

UFUNCTION()宏的必要性:标记为UFUNCTION()的函数会被Unreal的反射系统记录,使得这些函数能在运行时被动态调用。这对于响应引擎和编辑器中的事件至关重要,比如物体碰撞、网络复制等。这样的系统设计允许更高的灵活性和动态性,例如在蓝图中调用这些函数。

总结来说,输入绑定(如BindAxis)直接使用函数指针,不需要通过Unreal的反射系统,因此不需要UFUNCTION()宏。而对于需要在运行时通过Unreal Engine的反射系统进行动态调用的事件响应函数(如OnComponentBeginOverlap),则必须使用UFUNCTION()宏来确保它们能被正确识别和调用。

标签:ViewOffset,函数,绑定,UFUNCTION,Unreal,OnComponentBeginOverlap,BindAxis
From: https://www.cnblogs.com/VisionSeven/p/18112427

相关文章

  • mathematical-expression(MAE)数学表达式 数学函数 解析编译库,有效的快速和简单易用的数
    数学表达式SwitchtoEnglishDocument介绍本框架是一种针对数学公式解析的有效工具,能够解析包含嵌套函数,包含函数,数列步长累加等数学公式,返回值是一个数值的结果对象,同时也可以进行比较运算的操作,再进行比较的时候,返回值是一个布尔值结果对象。PS请尽量使用1.3.1版......
  • pandas中describe() 函数的应用
    describe()函数用于生成关于DataFrame中数值型列的统计摘要。它提供了各种描述性统计信息,如均值、标准差、最小值、最大值、四分位数等,以帮助我们更好地了解数据的分布情况。下面是一个示例,说明如何使用describe()函数:importpandasaspd#创建一个DataFramedata=......
  • 函数的递归操作
    函数自身调用自身的操作,称为函数的递归操作!一般递归存在两个条件:        1.递归的起始值(需要看具体问题)        2.递归的结束条件(一定得有)具体参考以下案例:1.有五个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。  问第4个人岁数。他说比第3个人大......
  • day12- 函数
    我们学习编程的时候,一学到函数就感觉很难,其实函数很简单,听我给你细细道来,在我们之前的学习中,我们最常用的一个操作,打印输出print(),其实这就是我们最先接触的函数,只不过这是由Python源码中编写好的函数,那我们来看下print()函数到底是怎么写的?从中我们可以看到用到def关键字,然......
  • 粒子群算法(主要针对连续型函数优化问题)
    文章主要参考了以下博文:https://zhuanlan.zhihu.com/p/5648197181.简介粒子群算法是一种解决最优化问题的通用方法,其优点是求解速度快,数值相对稳定,算法简单。粒子群算法分为连续型粒子群算法和离散型粒子群算法,分别用于解决连续型问题和离散型问题。粒子群优化算法源自对鸟......
  • callback回调函数的使用
    callback回调函数的使用二、例子收拾二、例子收拾/**回调方法*/asyncfunctionsubmitForm(callback:(data:Record<string,string>[],callback:()=>void)=>void){loading.value=truecallback(formData,()=>{loading.value=false......
  • 函数或方法参数传递问题
    ★一般情况函数参数的传入顺序依次为:必备参数=>默认参数=>不定长参数=>关键字参数案例#函数传入参数顺序必备默认不定长defdouble_sum(x,y=88,*args,**kwargs):print(x)print(y)print(args)print(kwargs)double_sum(10,20,......
  • 常用Hash函数速度比较
    常用Hash函数速度比较结论常见的这些Hash函数,没有数量级上的差别,当然这只是针对在长度为20000以内的字符串所得出的结论.如果是对文件进行摘要,请还是使用非可逆的Hash函数,而不是crc/murmur这类​crc​的性能非常出色,但是与murmur3​的性能没有拉开差距,由于......
  • 构造函数init到底是什么作用 是下面的方法都可以从init里面获取参数吗?(AI+Python)
    大家好,我是Python进阶者。一、前言前几天在Python白银交流群【无敌劈叉小狗】问了一个Python基础的问题,问题如下:问一下构造函数init到底是什么作用是下面的方法都可以从init里面获取参数吗?二、实现过程这里【黄志诚】分享了自己的一个经验:全局呀,相当于初始化一个参数,全局都......
  • 【C语言】函数(涉及生命周期与作用域)
    文章目录函数(function)**函数的概念****函数的作用**在本阶段一般会涉及到两类函数:库函数和自定义函数自定义函数**函数的语法形式****形参和实参****实参和形参的关系**函数返回值**函数返回值类型说明****return语句**数组做函数参数**函数嵌套调用和链式访问**函......