- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
虚幻引擎 4 提供了三个说明符来控制通过 UPROPERTY()
暴露给蓝图的 C++ 类成员的可见性和可编辑性。
UE4 source code 中的文档(另见 UE4 wiki 、 UE4 documentation )对可编辑性做了以下说明:
VisibleAnywhere
、 VisibleInstanceOnly
、 VisibleDefaultsOnly
:... cannot be edited at all.
EditAnywhere
、 EditInstanceOnly
、 EditDefaultsOnly
:... can be edited ...
BlueprintReadOnly
:... can be read by blueprints, but not modified.
BlueprintReadWrite
:... can be read or written from a blueprint.
Visible*
说明符已经将 的使用限制为只读 在蓝图中,为什么它与 BlueprintReadOnly
结合使用?第二个说明符不是多余的吗?例子:UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly)
UMyActorComponent* MyActorComponent;
Edit*
说明符的使用,它允许 在蓝图中读取和写入 ,以及 BlueprintReadOnly
限制在蓝图中读取。两个说明符不是相互对立的吗?例子:UPROPERTY(EditAnywhere, BlueprintReadOnly)
UMyActorComponent* MyActorComponent;
Visible*
/Edit*
说明符是否在与 BlueprintRead*
说明符不同的上下文中有效? (问题不是关于 InstanceOnly
(实例的属性窗口)、DefaultsOnly
(原型(prototype)的属性窗口)和 Anywhere
(实例和原型(prototype))) 最佳答案
tl; 博士
Visible*
/Edit*
说明符允许您(通常是游戏设计师)直接在蓝图编辑器中访问/修改变量以快速配置类属性。 BlueprintRead*
允许您在执行可视化脚本时获取/设置 事件图 中变量的值。 Visible*
/
Edit*
和
BlueprintRead*
都将类中的变量暴露给
虚幻引擎 ,但做不同的事情。事实上,问题2和3都可以通过问题1来回答。让我们看看你的问题1:
Since the
Visible*
specifiers already restrict the usage to read only in Blueprints, why it is used in conjunction withBlueprintReadOnly
? Isn't the second specifier superfluous? Example:
UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly)
UMyActorComponent* MyActorComponent;
ActorComponent
暴露给引擎。在这里,我将首先解释一个非
Component
成员变量,因为
Component
的说明符“似乎”与非
Component
变量的工作方式不同。
TpsCharacter
类,它具有以下 3 个
float
变量:
// The zooming speed
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Camera Zoom")
float ZoomSpeed;
// The FOV after zoom in
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Camera Zoom")
float ZoomInFov;
// The default FOV
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Camera Zoom")
float DefaultFov;
EditDefaultsOnly
,这意味着,在我们基于这个 C++ 类创建一个名为
TpsCharacter_BP
的蓝图类并打开这个蓝图后,这三个变量的值在这个蓝图类的
细节面板 中是可编辑的,如如图所示:
Visible*
说明符,它们是只读的(在
详细信息面板 中显示为灰色),因此您无法更改它们的值。
MyActorComponent
。就像我说的,
Component
的说明符的工作方式有些不同。
Component
与其所有者类一起出现在 组件面板 中,而不是像非 Component
变量一样出现在 详细信息面板 中。 Visible*
既没有 Edit*
也没有 Component
说明符,则此 Component
本身将 始终 出现在编辑器中,但 您无法访问此组件内的属性/变量。此 Component
的 和 详细信息面板 将为空。 Visible*
说明符允许您通过其 详细信息面板 访问 Component
的属性,就像访问我的 TpsCharacter_BP
类中的 3 个变量一样。但是,当您将其声明为 Edit*
时, 详细信息面板 将显示有线设置,允许您修改此 Component
的 指针值 而不是其内容。这绝对是你应该 总是 避免的一件事。 Component
的经验法则:
永远不要将 声明为
Edit*
因为它允许您更改指针值以指向其他事物;总是做
Visible*
。对于非
Component
对象,您可以自由设置
Edit*
。
BlueprintRead*
说明符。
Visible*
的存在是多余的吗?
BlueprintReadOnly
是否与
Edit*
说明符相对?绝对没有。它们在不同的上下文中是否有效?是的。
BlueprintRead*
说明符允许您在蓝图编辑器中的
事件图表 中读取/写入变量,即在您执行蓝图可视化脚本时。对于上面的
TpsCharacter
类,由于所有 3 个变量都声明为
BlueprintReadOnly
,因此我可以在
事件图 中获取它们的值,如下所示:
MyActorComponent
执行相同操作。通过使用
BlueprintReadWrite
,您还可以在
事件图 中设置这些变量的值。
关于unreal-engine4 - 为什么 UPROPERTY 说明符 Visible*/Edit* 与 BlueprintRead* 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52017047/
当我尝试在 Unreal 中构建项目时出现以下错误,我包含了一些闪电。 “照明构建失败。Swarm 未能启动。编译 Unreal Lightmass”。 我已经使用文档中的设置说明从 Linux 上的
我是虚幻的新手,我在虚幻中有这个项目。我添加了几个新的 cpp 文件,其中包括一些标准头文件,如 string.h、stdlib 等。Intellisense 没有给出错误,但项目无法编译。 这是错误
在 Unreal Editor 中找不到 GameMode。 只有 AActorComponent 位于 C++ Classes 目录中。 我错过了什么吗? Screenshot of Unreal
我已经按照此处的说明在 Ubuntu 20.04 上安装了虚幻引擎 4: https://docs.unrealengine.com/en-US/SharingAndReleasing/Linux/B
每次我打开任何虚幻引擎项目或虚幻引擎编辑器本身时,Epic 启动器都会启动,如何防止这种情况发生?看不到任何可以让它保持冷静的选项。使用虚幻引擎编辑器每次操作都要关闭它 2 次。 最佳答案 在虚幻引擎
使用 UE 4.23.1 基本上,我遵循的是一个非常简单的教程。我扩展了多个基类,似乎在我的任何扩展中,所有组件(例如,物理、碰撞、静态网格等)的变量都在我进行完整项目编译时全部重置。 例如:我用自定
我正在尝试使用蓝图禁用 actor 的物理特性。我知道我可以使用 Set Simulate Physics 来做到这一点,但是这个函数需要一个 Primitive 零件。目前我有 actor 对象引用
我需要找到某个方块,但我不记得它是哪个蓝图,那么如何在所有蓝图中找到任何东西? 如果这是不可能的,则可能是功能请求。 最佳答案 “取消选中搜索最右侧的框。选中时,它仅搜索当前 BP。” https:/
请问有没有办法用visual Studio调试虚幻引擎源码 源代码 : ( )。 每次我尝试在他们的源代码中设置断点都只是说它无法到达这个断点。 最佳答案 确保您已在引擎安装的安装选项中安装了用于调试
要在编辑器中执行此操作,请打开自动化选项卡,连接到 session 并选择要运行的测试。 您如何从命令行执行此操作? (注意,不编译 UnrealEngine/Engine/Build/BatchFi
我想使用控制装置让我的角色瞄准。但由于某种原因,我的角色在错误的轴上旋转,我不知道为什么。 我尝试将轴(主轴和辅助轴)更改为一些随机值,但我无法让它工作,而且我也看了很多教程,我不认为我做错了什么。
我刚刚支付了 19 美元的费用来开始使用虚幻引擎 4,并且已经在界面上玩了几个小时了。 我决定终于是时候开始编写一些代码了,但我担心我可能没有能力这样做。 我的机器已有 5 或 6 年历史,运行 Wi
我想使用控制装置让我的角色瞄准。但由于某种原因,我的角色在错误的轴上旋转,我不知道为什么。 我尝试将轴(主轴和辅助轴)更改为一些随机值,但我无法让它工作,而且我也看了很多教程,我不认为我做错了什么。
在 Unreal 4.23 中,我在创建我的项目的 Android 版本时遇到了这个错误: UATHelper: Packaging (Android (ASTC)): ERROR: The foll
我正在为一个项目从 Unity 迁移到 Unreal。为了让自己熟悉,我正在学习本教程。 https://docs.unrealengine.com/en-US/Programming/QuickSt
我知道虚幻引擎使用反射系统来拥有 C++ 脚本这一事实。我也知道它使用宏来定义引擎应如何反射(reflect)变量。以下是我不知道的: 这些宏是在代码执行中定义元数据(填充列表、定义结构等...),还
我正在寻找一种在虚幻引擎项目的项目构建/ cooking 时轻松定义宏/预处理器指令的方法。 例如,如果我希望定义的 C++ 宏 MY_BUILDTIME_VAR 在某些构建中为 0,在其他构建中为
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想要改善这个问题吗?更新问题,以便将其作为on-topi
基本上,我想在对象的每个刻度上增加 Z 轴。我可以在 Blueprint 中做到这一点,但我似乎无法弄清楚如何从滴答和增量 ActorLocation 访问类的开始播放部分。 // Fill
我在做一些 UE4 开发的入门类(class),我有一个关于 UE4 中 C++ 使用的问题。 我正在做一个创建基本位置记者的教程。 下面是 GetOwner() 的定义。 FORCEINLINE_D
我是一名优秀的程序员,十分优秀!