建设带数据搜索的网站,设计类专业哪个好,wordpress关闭搜索功能,介绍小说的网站模板下载地址写在前面
Actor是可以放进地图的最基本类#xff0c;这里主要是介绍一下Actor的使用。
一、空间坐标系
1. Actor的变换操作 Actor的变换变换操作主要包括四个部分#xff1a; 位置#xff1b;旋转#xff1b;缩放#xff1b; 上面三者都是对应三个轴进行变换#xff1…写在前面
Actor是可以放进地图的最基本类这里主要是介绍一下Actor的使用。
一、空间坐标系
1. Actor的变换操作 Actor的变换变换操作主要包括四个部分 位置旋转缩放 上面三者都是对应三个轴进行变换红色代表前X轴绕X轴旋转是Roll绿色代表右Y轴绕Y轴旋转是Pitch蓝色代表上Z轴绕Z轴旋转是Yaw 移动性 有三个可选项静态游戏过程中Actor不可移动属性也不可以更改固定游戏过程中Actor不可移动但可以更改它的一些属性可移动游戏过程中Actor可以移动可以参考博客UE4 Actor移动性以及光源移动性类型 地图中的每一个单位代表1厘米
2. 世界坐标系和局部坐标系
(1) 在Editor中点击地图上面的的小按钮可以切换世界坐标系和局部坐标系 两个坐标系对Actor变换影响如下 对于位移变换和缩放变换两个坐标系均无影响对于旋转变换而言旋转的发生均参照世界坐标系对世界坐标系无影响但对局部坐标系有影响局部坐标系相当于是跟着物体在旋转始终与物体保持最初的相对位置 (2) 在代码中也可以使用两种坐标系 使用局部坐标系也就是将变换的视角代入Actor本身操作是相对于Actor而言的是常用的写法例如
AddActorLocalOffset(FVector(1, 0, 0));
AddActorLocalRotation(FRotator(1, 0, 0));使用世界坐标系也就是用上帝视角进行Actor的变换X轴、Y轴和Z轴永远不变且唯一这种用法比较少一般是用来和地图上的其他东西对齐例如
AddActorWorldOffset(FVector(1, 0, 0));
AddActorWorldRotation(FRotator(1, 0, 0));二、创建一个Actor的C类
创建的C类也是放在Source文件夹中的Public和Private文件夹中选择Actor作为继承的父类头文件中已经默认定义了三个函数 默认的构造函数BeginPlay()函数当Actor在游戏中创建完实例后就会执行的内容Tick()函数Actor在游戏中的每一帧都会执行的内容 .cpp文件中也已经默认实现了三个函数如下 三、实现功能
在头文件中增加若干成员变量如下 一些注意的点如下 UStaticMeshComponent是挂载的组件说明符虽然是VisibleAnywhere但实际上在Editor细节面板上该变量下仍可以自由设置属性以改变物体的形状带Visible说明符的属性在Editor面板上是类似于只读类型不希望用户通过Editor直接修改值的属性均设置为Visible说明符ToolTip说明符是在Editor中给变量以鼠标悬停提示默认是变量上方的注释内容当然也可以显式设置中文注释可能会出现乱码在声明变量时不要设置初值而是在构造函数中设置初值 在.cpp文件中实现具体内容如下 一些注意的点如下 虽然变量在构造函数中进行了初始化但设置了Edit说明符的变量的初始值仍然会改变在Editor的细节面板上修改的值会直接覆盖C中的初始值优先级顺序大概是C类初始值 - 蓝图类若用C类创建蓝图类的蓝图面板中的设置值 [Default级] - 主面板的实例细节面板中的设置值 [Instance级]所有变量都应该进行初始化调试代码时可以尝试用输出到屏幕的方式
四、在Editor中使用
直接拖动FloatActor类到地图中可以生成实例当然也可以先用FloatActor生成对应的蓝图类然后再将蓝图类拖到地图中以生成实例 为实例设置基本的形状和材质否则当游戏开始时是看不到的注意移动性应当设置为可移动因为C中设置了移动的功能在细节面板中搜索Float Variables分组可以看到自定义的AFloatActor的成员变量如下 最后点击播放即可如果勾选了Should Float这个正方体就会沿水平面漂浮移动播放时按Shift F1可以将鼠标退出游戏界面