构造函数与运行函数的区别以及使用笔记

                               

这个函数没有官方中文名,大家都称之为为蓝图构造函数(Construction Script)。

       Construction Script如果直接翻译的话,就是构造脚本,在引擎中作为初始化函数来使用,Actor被生成的一瞬间运行的逻辑,且只运行一次。

       Begin Play (事件蓝图)是在游戏运行时运行的逻辑,他可以按时间运行,按次运行

构造函数和Begin Play的区别在于,同样是初始化,但是构造函数是在对象生成的时候就进行的初始化,或者说在类被实例化(创建出新的实例或者对象)时会执行一次,而Begin Play则是在游戏开始时进行的初始化。也就是说构造函数要更加早于Begin Play事件,并且构造函数相比之下更加的灵活,而且甚至可以在游戏运行之前就进行初始化。

蓝图中的构造脚本(Consttruction Script)和C++中类的构造函数不是一个东西!!!以下是C++的不同讲解:

      这个蓝图构造函数在C++中实际上是OnConstruction这个函数。这是一个创建于AActor的虚函数,形参表中只有(const FTransform& Transform)这一个参数。可以在自己的类中直接重写这个函数,然后在里面写逻辑即可。

      蓝图构造函数不同于C++原生的构造函数的地方在于,C++原生的构造函数仅仅只在被实例化的时候会执行一次,而蓝图构造函数则能在编辑器中被反复调用。

     对于蓝图构造函数,当你将类拖放到场景中时,它就被实例化了,这时就会调用一次。而当你拖动物体,旋转物体,缩放物体甚至修改它的参数,对他进行编译时,都会调用这个蓝图构造函数。这样能够反复利用的原理让这个函数有了更广泛的应用空间。

      通常使用蓝图构造函数时都是设置物体的大小或者材质的,比如说在某个Actor里为它的StaticMeshComponent设置一个特定的材质,或者创建动态材质,或者为某个actor里它的Material Instance(材质实例)效果切换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值