下面这个设置好像只有一个有作用,无法同时控制两个物体。
//Take control of the default Player
AutoPossessPlayer = EAutoReceiveInput::Player0;
这个程序是让物体附加一个相机,应该移动和视图都是针对物体的,和之前的Game-Controlled Cameras还是有区别的,Game-Controlled Camera没有依附特定的物体,直接写在程序的两个变量上进行控制,而这个例子使用的是UCameraComponent,attach到根节点。
放上代码,和之前的例子没有什么区别,那么这个C++ Programming Tutorials中的七个例子还剩下两个例子,First Person Shooter Tutorial和User Interface With UMG.这两个例子暂时先不写,已经能写基本的程序,需要弄清楚它们的类是干什么的。很明显的tutorial上有个错误是编译不过的,但是自己参考API修改过来了。
Performing 3 actions (4 in parallel)
@progress 'Compiling C++ source code...' 0%
[2/3] Compile PawnWithCamera.cpp
[1/3] Compile PawnWithCamera.gen.cpp
/home/wang/Documents/Unreal Projects/UnrealLearn/Source/UnrealLearn/PawnWithCamera.cpp:75:43: error:
no member named 'SafeNormal' in 'FVector2D'
MovementInput = MovementInput.SafeNormal() * 100.0f;
~~~~~~~~~~~~~ ^
1 error generated.
@progress 'Compiling C++ source code...' 25%
@progress 'Compiling C++ source code...' 50%
@progress 'Compiling C++ source code...' 75%
可以看到编译的时候SafeNormal编译提示上说FVector2D没有这个方法,所以查看Document发现应该使用GetSafeNormal(),所以会查阅还是很重要的,之前就有很多的头文件都是通过查找获取来的,这点官网还做得比较好,附上代码。