- 蓝图组件 blueprint component为啥不能set actor location
- 组件不是 Actor,没有 "自身位置" 的概念 组件(如 Scene Component、Mesh Component 等)是依附于 Actor 存在的 "附属物",它本身不是独立的 Actor,因此没有 "世界空间位置"(World Location)的属性,只有 "相对位置"(Relative Location)------ 即相对于其所属 Actor(或父组件)的位置。而
Set Actor Location是Actor 类的函数,作用是移动整个 Actor(包括其所有组件),组件本身并不具备这个函数。
如何间接实现类似需求?
如果需要通过组件来移动其所属的 Actor,可以分两步:
- 在组件中通过**
Get Owner**节点获取它所依附的 Actor(返回值是一个 Actor 对象); - 对获取到的 Actor 调用
Set Actor Location,即可移动整个 Actor(包括该组件)。
那添加了蓝图组件的actor能继承它暴露的变量么?
举例说明:
假设你有一个蓝图组件 BP_MyComponent,其中暴露了一个公开变量 MyValue(整数)。当 Actor BP_MyActor 添加了这个组件后:
- 错误方式 :在
BP_MyActor中直接拖拽MyValue变量使用(无法直接访问,因为变量属于组件,而非 Actor)。 - 正确方式 :
- 在
BP_MyActor的蓝图中,添加Get BP_MyComponent节点(获取组件实例); - 从该组件节点的输出引脚中,找到
MyValue变量,直接连接使用(或通过 "获取 MyValue" 节点访问)。
- 在