成员的赋值方式 1)代码获取 2)拖拽到属性面板
指针使用之前,判断是否为空,可先输出日志,来进行判断
if(指针名 == nullptr)//可省略nullptr
{
...
//日志输出提示
...
}
1. 从Component获取Actor
这个组件所在的Actor可作为类的数据成员
AActor* Actor = GetOwner();
注意:1. 如果报错,或者没有提示,即没有添加头文件“GameFramework / Actor.h”
如何查看某一***所在的头文件
注意:2. GENERATED_BODY() 报错出现红线,【此声明没有存储类型或类型说明符】 解决方法:引用----->添加引用----->UE4
2. 从Actor获取Component
(1)通过Class类型查找组件
UInputComponent* InputComponent;
InputComponent = GetOwner()->FindComponentByClass<UInputComponent>();
疑问区
- 通过FindComponentByClass,获取Actor上的组件,有没有条件的限制,比如这个组件必须已在Actor上,或者运行过程中生成?
比如InputComponent组件,是在运行过程中生成的。
Unreal编辑器是否可见,不是一一对应的。
下面的AddInstanceComponent可以防止组件在Unreal编辑器中灰色状态下无法编辑
GetOwner()->AddInstanceComponent(InputComponent);
-
如何查看组件所在的头文件
在Unreal官方文档中,搜索框内,输入组件名称
例如:主组件UPrimitiveComponent
头文件.png
-
参数为 OUT,向外传递,用引用语法,OUT标识,无意义,但好看。

网友评论