Controller,Pawn,Camera,HUD,变量,函数,骨架控制器

附加内容:

Controller,Pawn,Camera,HUD

Controller

Pawn,myCamera, myHUD,PlayerInput

 

Pawn

Controller,,PC

Camera

PCOwner

OutVT.POV.Location

OutVT.POV.Rotation

OutVT.POV.FOV

 

OutVT.Target

HUD

PlayerOwner

SizeX/SizeY

 

状态编程:

Controller或Pawn,GameInfo等都有可能存在状态代码,Controller和Pawn类用得最多。

注:状态函数都需要在类或父类中声明才有效,UDK自带的类中的函数,子类使用时有些也需要声明。

编译提示状态函数有错,可能是状态外的声明函数出错。

 

 

 

DefaultProperties原型变量附值

 

// Propertiesarchetype used by the player controller

varconstUDKMOBAPlayerPropertiesProperties;

 

defaultproperties

{

    Properties=UDKMOBAPlayerProperties_PC'UDKMOBA_Game_Resources_PC.Properties.PlayerProperties'

}

 

“=”附值后面跟着类UC文件名,“ ‘’ ”代表UPK包名UDKMOBA_Game_Resources_PC下的文件路径。

 

使用骨架控制器

file:///E:/udn%20web/udn%20script/udn.epicgames.com/Three/UsingSkeletalControllersCH.html

 

 

 

Search: 斜坡

 

(地面贴合)是根据地面的倾斜调整人物和/或他的脚部的方向,以便使他的脚部和地面倾斜相平行。

E:\udn web\udnscript\udn.epicgames.com\Three\NavigationMeshTechnicalGuideCH.html(180):

</li> <li> <strong>WalkableFloorZ</strong> - 认为可以走动的斜坡的法线最大Z 值。(Pawn 将会在Z &gt; 这个值的情况下从斜坡上滑下来)

 

 

 

Object 定义的部分默认常量

//=============================================================================

// Constants.

const MaxInt = 0x7fffffff;  //十六进制转十进制:

const Pi = 3.1415926535897932;

const RadToDeg = 57.295779513082321600;  // 180 / Pi

const DegToRad = 0.017453292519943296;        // Pi / 180

const UnrRotToRad = 0.00009587379924285;      // Pi / 32768

const RadToUnrRot = 10430.3783504704527;      // 32768 / Pi(弧度到虚幻角度转换:一个圆周弧度是2Pi,65535是虚幻的360度)

const DegToUnrRot = 182.0444;

const UnrRotToDeg = 0.00549316540360483;

const INDEX_NONE = -1;

 

// Aspect ratio constants

const AspectRatio4x3 = 1.33333;

const AspectRatio5x4 = 1.25;

const AspectRatio16x9 = 1.77778;

const InvAspectRatio4x3 = 0.75;

const InvAspectRatio5x4 = 0.8;

const InvAspectRatio16x9 = 0.56249;

部分向量函数

// Vector functions.

//

 

native(225)       static finalfunction  float    VSize         (vectorA );

native            static finalfunction  float    VSize2D       (vectorA );

native            static finalfunction  float    VSizeSq       (vectorA );

native            static finalfunction  float    VSizeSq2D (vector A);

native(226)       static finalfunction  vector   Normal        (vectorA );

native            static finalfunction  vector   VLerp         (vectorA, vector B,floatAlpha );

native            static finalfunction  vector   VSmerp        (vectorA, vector B,floatAlpha );

native(252)       static finalfunction  vector   VRand         ( );

native            static finalfunction  vector   VRandCone (vectorDir, float ConeHalfAngleRadians );

native            static finalfunction  vector   VRandCone2    (vectorDir, float HorizontalConeHalfAngleRadians,float VerticalConeHalfAngleRadians );

native(300)       static finalfunction  vector   MirrorVectorByNormal(vector InVect,vectorInNormal );

native(1500) static finalfunction  Vector   ProjectOnTo(Vector x,Vectory );

native(1501) static finalfunction  bool IsZero(Vector A );

 

atan2是正切函数的一个变种(维基百科,自由的百科全书)

三角函数中,两个参数的函数atan2正切函数的 一个变种。对于任意不同时等于0的实参数x和y,atan2(y,x)所表达的意思是坐标原点为起点,指向(x,y)的射线在坐标平面上与x轴正方向之间 的角的角度。当y>0时,射线与x轴正方向的所得的角的角度指的是x轴正方向绕逆时针方向到达射线旋转的角的角度;而当y<0时,射线与x轴 正方向所得的角的角度指的是x轴正方向绕顺时针方向达到射线旋转的角的角度。

在几何意义上,atan2(y, x) 等价于 atan(y/x),但 atan2 的最大优势是可以正确处理 x=0 而 y≠0 的情况,而不必进行会引发除零异常的 y/x操作。

部分函数:

第一人称视角Controller.GetPlayerViewPoint

鼠标操作

       //输出光标位置和视窗大小

       MousePosition2D =LocalPlayer.ViewportClient.GetMousePosition();

       //将MouseX限定在视图宽度范围内

       MousePosition2D.X =Clamp(MousePosition2D.X,0, SizeX);

       //将MouseY限定在视图高度范围内

       MousePosition2D.Y =Clamp(MousePosition2D.Y,0, SizeY);

       LocalPlayer.ViewportClient.GetViewportSize(OutViewSize);

       UDKMOBAGameInfo(WorldInfo.Game).Broadcast(self,MousePosition2D.X @ MousePosition2D.Y @OutViewSize.X @OutViewSize.Y);

       //获取鼠标世界位置。

       Canvas.DeProject(MousePosition2D,MouseWorldOrigin,MouseWorldDirection);

       // 执行轨迹获取实际鼠标世界位置。

       Trace(MouseHitLocation,HitNormal, MouseWorldOrigin +MouseWorldDirection *65536.f, MouseWorldOrigin ,true, vect(0,0,0));

       CursorDeproLoc =MouseHitLocation;


 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值