工具界面
Content browser资产管理器针对所有,Outliner仅针对当前map的scene资源
保存新的Map,将当前另存为
Content browser中import导入资源
Setting
鼠标中间Preference(偏好)-》level Editor-》viewport-》mouse Pan
默认地图Project setting(当前开发的项目设置)-》map-》default map
默认游戏模式Project setting-》map-》default model(当新c++继承GameModeBase时应修改默认模式:有了自己的Gamemodel,才能设置自己的pawn)
设置输入映射Project setting-》Engine-》Input
网络:Preference(偏好)-》Play-》Multiplayer options->play net mode->listen serve监听服务器->设置client的数量
材质
创建材质资产
Base Color基本颜色
Specular高光度
自发光颜色
动画
导入:选择Skeletal否则映射动画会有问题,Snap to Closest Frame启用捕捉到最接近的画面
创建动画蓝图资源:选择骨骼,选择 AnimInstance 作为父类
//动画蓝图&&State Machine
在Event G raph设置bool的逻辑
添加状态机:在animGraph创建动画状态机New State Machine》链接到Final Animation Pose
添加状态:双击进入状态机编辑:添加add state状态-》双击进入状态编辑(动画绑定到output输出节点)
连接状态:双击设置过渡引线逻辑
//
完成后添加到SkeletalMeshComponent作为
//Blend Spaces _BS混合空间
多个动画之间进行平滑过渡的工具(横轴方向,纵轴速度)
更改Axis设置,(轴名称,范围)
右边资产管理搜索对应的动画,拖放到对应的位置
运行测试:
点击播放,ctrl建拖放对应的位置。
混合空间适合处理连续变化的动画过渡,而状态机适合处理复杂的动画状态逻辑和条件切换。
Type
FRotator(Pitch,Yaw,Roll)
* Pitch 绕右轴(绕 Y 轴)旋转,向上和向下观察,点头(0=直视,+向上,-向下)
* Yaw绕上轴(Z 轴)旋转的角度,左右摇头(0=向前,+右,-左)
* Roll 绕前轴(绕 X 轴)旋转,倾斜头部,(0=直线,+顺时针,-逆时针)
FVector2D》TVector2<double>
字符串
FString是典型的"动态字符数组"字符串类型。
FName是对全局字符串表中不可变且不区分大小写的字符串的引用。相较于FString,它的大小更小,更能高效的传递,但更难以操控。
FText是指定用于处理本地化的更可靠的字符串表示。
TEXT()FString
调试:
日志: Saved/Logs 目录的 .txt 文件中
UE_LOG(类别名称(CoreGlobals.h 的引擎中找到这些类别),日志详细级别,Text)
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/logging-in-unreal-engine?application_version=5.3
Bool例子:UE_LOG(LogTemp, Warning, TEXT("The boolean value is %s"), (bGrowing ? TEXT("true") : TEXT("false")));
//
GEngine->AddOnScreenDebugM
essage发送消息(-1"键"值类型参数能防止该消息被更新或刷新,持续时间,颜色,文本)
IFP(inventory Framework plugin)简述
库存框架插件
Youtube教程:https://www.youtube.com/playlist?list=PLL_FKRZ7gmxZF9Yunq0nOIhKq893V_55I
文档:https://inventoryframework.github.io/
商城:https://www.unrealengine.com/marketplace/en-US/product/inventory-framework-plugin
在IFP_ExampleProject实例项目中有蓝图 || c++源码
C++plugin源码结构:
- Actor
- Components:AC_inventor
- Data:IFP_CoreData.h可以找到 EItemData所有物品类型
- Interfaces
- Items: DA_CoreItem(物品派生自),I_DA_consumable
- Widgets
安装:
- 购买安装到引擎中,(在c++的项目,插件库存,可以看到引擎安装的插件)
- 创建c++项目,new c++生成c++sln解决方案
- D:\Unreal_Engine5\UE_5.3\Engine\Plugins、……复制IFP的文件
- 在c++项目目录,plugin创建文件夹,把IFP文件拷贝(如果有奇怪错误,删除引擎中的IFP)(放到项目,因为不会弄乱其他项目)
- 使用IDE构建项目,.uproject重新生成项目工程文件,c++项目中出现plugin文件夹
配置Assest Manager:
- 添加item文件夹
- 资产类型:Items
- 资产基类DA_CoreItem
- 添加目录
为角色添加组件和容器:
- 为角色添加:库存组件(c++||blueprint版本)AC_inventory
- 细节面板的对组件的Container Settings 容器设置:Inventory Type 类型,Container name,dimensions尺寸,widget 小部件calss的蓝图名称(新建的)
- widget 小部件:添加WBP_DemoContainer 到hierarchy 并布局
- 下一步将组件绑定到widget小部件中: 在小部件Implemented Interfaces实现接口添加I_InventoryWidgets库存小部件接口实现,将获得两个函数(Receive External Component接收外部元件,GetContainers获取容器)
- 进入GetContainers中,并添加容器make Array,并将WBP_DemoContainer 图形绑定上
- 同样在角色Implemented Interfaces实现接口添加I_Inventory,将获得两个函数(meets currency check满足检查 , Get inventory component获取库存组件)
- 进入重写Get inventory component,并将库存组件绑定上
启动 || 停止 组件
- 启用:在示例项目,拷贝一些逻辑startComponent,这样可以通过按键展示widget了
- 停止:StopComponent
创建基本item物体
- 创建actor蓝图继承BP_SM_itemPhysical???,自动获得AC_inventorBP库存组件,并对它设置
- 在miscellaneous杂项创建data asset数据资产,继承DA_consumable(IFP的items type)消耗品,并设置image,和name,放到actor的容器
文档:
网络函数以C_为前缀(表示客户端)、S_为前缀(表示服务器)和MC _ 为前缀(表示多播)
自动复制的函数,函数的大部分代码存储在以接口Internal_为前缀的函数中。这些函数通常由服务器和客户端调用。