
如果是一名程序员,可能很自然地会想到想要像C++变量一样将Blueprint(蓝图)变量设为const(常量),从而使其无法设置。
最初,蓝图旨在允许广泛的披露,但如果只是创建它,则可以从任何蓝图中设置变量。
可以使它的行为类似于C++中的常量,尽管这需要更多的努力,本内容可能与你的版本会略有不同,但基本应该是一样的。
保持变量私有
首先像往常一样创建一个变量,并从创建的变量的详细信息中勾选私有。

这使得无法从其他蓝图设置和获取此变量。
但是,在这种情况下,不一定能够设置,但无法回答想要得到的请求。
创建一个新函数来获取变量
在这里添加一个新功能,使名称易于理解,例如Get [ValueName]。

在函数详细信息中勾选纯函数和常量。另外,在函数中按下显示高级设置按钮,勾选常量部分。
这将函数纯化为一个值不能改变的Const函数,并成为一个专门的获取值的节点。
实际上调用
现在剩下的就是实际调用该函数。

正如通过检查该参与者所拥有的变量列表所看到的那样,不再可能直接调用此VectorValue。也就是说,这个变量只能通过纯函数Get Vector Value从外部引用,这与C++中的常量行为完全相同。
从C++制作时
实际上,从C++创建变量时,可以从一开始就设置引用级别。
通过使用UPROPERTY()宏和关键字BlueprintReadOnly,将仅从蓝图中调用Get,但是,请注意,使用此方法将使其在蓝图中完全只读,并且无法向其写入任何内容。
顺便说一下,如果在C++中创建一个常量函数,蓝图函数会自动被净化,创建蓝图API时请牢记这一点。
…
以上是3D天堂网关于使UE引擎蓝图变量为纯常量的全部内容,如果你有任何反馈,请随时在本页面下方留言。