udk教程

第六步:

现在我们已经成功了部署整体架构,还记得我们之前的那个'Isometric'吗?我们现在就得来处理它,完成最后一步,实现自己的摄像机模式。

找到我们之前编写的KWCamera.uc文件,对继承的Camera类点右键,选择转到定义。

(或者打开KingdomWorld\\Development\\Src\\Engine\\Classes\\Camera.uc)

按下键盘的Ctrl+F找到UpdateViewTarget方法,复制进我们的KWCamera.uc 因为我们要在中间部分修改,所以不好直接调用super.UpdateViewTarget()了。

找到switch( CameraStyle )部分,添加我们前面定义的那个'Isometric'的case 1. /**************************************************************

***

2. *自定义摄像机模式开始

3. *****************************************************************/

4. //从自定义的Pawn类(KWPawn)的GetDefaultCameraMode传来 5. case 'Isometric': 6. //修改摄像机位置

7. Rot.Pitch = (-55.0f *DegToRad) * RadToUnrRot; 8. Rot.Roll = (0 *DegToRad) * RadToUnrRot; 9. Rot.Yaw = (30.0f *DegToRad) * RadToUnrRot; 10.

11. //修改摄像机的位置和角色的偏移

12. Loc.X = PCOwner.Pawn.Location.X - 64; 13. Loc.Y = PCOwner.Pawn.Location.Y - 64;

14. Loc.Z = PCOwner.Pawn.Location.Z + 156; //距离位置 15.

16. //设置缩放

17. Pos = Loc - Vector(Rot) * FreeCamDistance; 18. OutVT.POV.Location = Pos; 19. OutVT.POV.Rotation = Rot; 20. break;

21./*****************************************************************

22.*自定义摄像机模式结束

23.*****************************************************************/

复制代码

由于复制过来的代码使用了一个成员变量OutVT.POV.FOV = DefaultFOV;

所以,在Camera类里,找到赋值他的地方添加进我们重写的KWCamera类里。添加DefaultProperties方法。这样方便我们以后如果对这个值进行修改而不动底层的东西。

1. DefaultProperties 2. {

3. DefaultFOV=90.f 4. }

复制代码

/***************************************************************** *

* UpdateViewTar

>>灞曞紑鍏ㄦ枃<<
12@gma联系客服:779662525#qq.com(#替换为@)