1.C++日志调试:
-
输出字符串到Output Log中
FString filePath
UE_LOG(LogTemp, Log, TEXT("%s"), *filePath);
UE_LOG(LogTemp, Error, TEXT("Hello,World!"));
-
输出字符串到屏幕上
FString filePath;
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Green,FString::Printf(TEXT("DLL_Init")));
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Green,FString::Printf(TEXT("%s"),*filePath));
-
自定义Log日志
.h文件
DECLARE_LOG_CATEGORY_EXTERN(MyProjectLog, Log, All);
.cpp
DEFINE_LOG_CATEGORY(MyProjectLog);
需要打印日志的.cpp添加申明自定义日志的头文件
FString filePath
UE_LOG(MyProjectLog, Log, TEXT("%s"), *filePath);
UE_LOG(MyProjectLog, Error, TEXT("Hello,World!"));
2.
- 如果要在蓝图定义一个接口,需要在头文件中使用 UPROPERTY(EditAnywhere), UPROPERTY 宏使得变量对 虚幻引擎 可见
- Action Mappings (动作映射)想象成"是或否"的输入,类似于鼠标按键或摇杆按键。 当在短时间内按键、松开、双击或按住不放时,它们会进行该项操作的汇报。 离散事件的动作,诸如跳跃、射击或与物体互动都可以使用这种类型的映射。 Axis Mappings (坐标轴映射)是持续不断的 - 您可以把它们想象成为"数量"输入,例如摇杆上的杆,或者鼠标指针的位置。 它们会在每一帧汇报其值,即使在不移动时也是如此。 一般涉及到量级或方向的内容,比如行走、到处看、开车等都可以用这种方式来处理。
- 4. 定义一个布尔类型时:bool bGrowing; b要小写,后面的字母大写
- 5. 需要用到数学表达式时:FMath::Sin
CurrentVelocity.X = FMath::Clamp(AxisValue, -1.0f, 1.0f)*100.0f;
- 关于clamp的用法:
Math.clamp(- 5 , 2 , 15 ); // returns 2 ,小于最小值时,输出最小值
Math.clamp( 4 . 6 , 2 , 15 ); // returns 4.6 ,在范围内输出本值
Math.clamp( 103 , 2 , 15 ); // returns 15 ,大于最大值时,输出最大值
- F7在VS中编译
- UActorComponent:UObject的子类,主要作为Actor的组件,用来控制Actor移动,渲染Actor等等。主要有两种基本的组件USceneComponent和UPrimitiveComponent。
USceneComponent:拥有一个transform,定义了位移,偏转,缩放。
UPrimitiveComponent:具有某种形式的表现,如网格,粒子等可见的东西。
9. 在UE4中实现移动鼠标或者按键来控制摄像头的移动,一般步骤
9.1 在头文件中声明函数及变量用于追溯输入,比如说 MoveForward(float AxisValue); PitchCamera(float AxisValue);
9.2 在源文件中定义声明的的函数
9.3 在SetupPlayerInputComponent 类中,绑定输入事件及代码,例如 InputComponent->BindAction("ZoomIn", IE_Pressed, this, &APawnWithCamera::ZoomIn);
9.4 在Tick中更新数据
10.静态加载指的是必须在构造函数中完成的加载方式,动态加载值得是可以在Runtime期间加载的方式,UE4源码里面,前者其实是对后者的一层封装,即FObjectFinder()是对LoadObject()的封装。But,FClassFinder()不是对LoadClass()的封装,FClassFinder()内部调用的是LoadObject()。
11. 开发调试时输出日志:GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Yellow, TEXT("Hello World, this is FPSGameMode1"));首参数-1,表示无需更新或刷新此消息,第二个参数表示持续时间
12.Character 基类定义两个必要函数AddControllerYawInput、AddControllerPitchInput;可直接进行绑定, InputComponent->BindAxis("Turn", this, &AFPSCharacter::AddControllerYawInput); InputComponent->BindAxis("LookUp", this, &AFPSCharacter::AddControllerPitchInput);
13.UPROPERTY()内参数的意思,参见http://blog.csdn.net/u010133610/article/details/54171590