- 博客(24)
- 收藏
- 关注
原创 Controller的介绍
从应用范围上来说,PlayerState表示的是玩家的游玩数据,所以那些关卡内的其他游戏数据就不应该放进来(GameState是个好选择),另外Controller本身运行需要的临时数据也不应该归PlayerState管理。而玩家在切换关卡的时候,APlayerState也会被释放掉,所有PlayerState实际上表达的是当前关卡的玩家得分等数据。PlayerController:控制玩家,在任一刻,Player:PlayerController:PlayerState是1:1:1的关系。
2024-02-07 17:46:05
337
原创 Pawn介绍
从Actor中再派生出了APawn,并定义了3块基本的模板方法接口:1. 可被Controller控制2. PhysicsCollision表示3. MovementInput的基本响应接口。
2024-02-07 16:49:09
448
原创 动作蓝图的介绍
如果这个值是true。说明从idle(休闲)到run(移动)状态。3.动作蓝图需要关联到指定的角色蓝图,角色蓝图才会有这些动作。2.AnimGraph中根据这些值切换状态机。添加两个变量,并且设置好这两个变量变化的值。1.EventGraph 中设置某些变量值。idle状态中,播FPP_Idle状态。蓝图制作好后,需要关联到角色蓝图中。1.导入一些动作的资源。状态机里有这些状态。2.创建一个动作蓝图。
2024-02-01 14:34:57
234
原创 按键输入Input
类InputSettings可以取到这个数据。类UPlayerInput可以取到类InputSettings,类UPlayerInput也可以取到这个数据。类PlayerController可以取到类UPlayerInput,最终类PlayerController可以取到DefaultInput.ini配置。则当玩家安家一个按键,比如SpaceBar,可以取到ActionName=“Jump”的数据。
2024-01-26 16:27:18
519
1
原创 委托的介绍
/创建2个参数单播委托对象假如有2个类,类CallbackTarget和类A,委托的时候,相当于把类CallbackTarget的对象Target和函数指针SDTwoParamsCallback存起来。
2024-01-26 00:34:45
354
1
原创 蓝图的介绍
BlueprintCallable和BlueprintPure在c++中声明和定义,c++和蓝图可以调用。只是有无引脚的区别BlueprintImplementableEvent在c++声明调用,蓝图中定义。BlueprintNativeEvent 在c++中声明定义调用,蓝图中定义可覆盖c++定义六、蓝图访问C++函数/事件(UFUNCTION) - 哔哩哔哩。
2024-01-25 19:51:20
1792
1
原创 智能指针介绍
1. FRegistryObject::Register(TSharedRef<FMyBaseClass>)的参数是FMyBaseClass的一个共享指针或引用,因此需要把FMyBaseClass的对象转变为共享指针或引用,所以FMyBaseClass需要继承TSharedFromThis。共享指针是非侵入性的,意味对象不知道其是否为智能指针拥有。此通常是可以接受的,但在某些情况下,可能要将对象作为共享引用或共享指针进行访问。返回了对象的共享指针或引用。返回了对象的共享指针或引用。共享引用 是一类强大且。
2024-01-24 13:57:11
628
1
原创 接口(INTERFACE)
这可以通过针对陷阱、敌人和点数奖励器执行"ReactToTrigger"函数来实现。然而,陷阱可能派生自"AActor",敌人可能派生自专门的"APawn"或"ACharacter"子类,点数奖励可能派生自"UDataAsset"。3.IReactToTriggerInterface和UReactToTriggerInterface同名(XReactToTriggerInterface前缀U改成了I)新增函数为c++接口函数,声明为虚函数,以便子类重写。新加函数为蓝图可调用接口函数。
2024-01-24 10:43:47
428
1
原创 2个向量求四元组
1.假设v,u是已单位化后的向量(如果不是,需先单位化)。求q=[w,sinθ/2*e]2.利用三角函数倍角,半角公式。代入半角公式可得w值。3.利用点乘和差乘。
2023-08-17 23:37:19
354
1
原创 5 设计模式之中介者模式
实际上Colleague类不在自己类中调用其他Colleague对象的函数(这样会十分紊乱),而是通过第三方ProjectManager类来调用其他函数。if(c instanceof Designer){ --下一个成员调用。//持有一个调停者对象。//具体同事类 设计。//具体同事类 开发。//具体同事类 测试。
2023-05-18 10:31:56
110
1
原创 6 设计模式之备忘录模式
2.originator类有createMemento() (创建一个纪念品,把originator类中的元素保存好),和setMemento()(恢复originator类)3. memento类可以包含originator类,这样就形成了互相引用。1.originator类必包含memento类做成员变量。
2023-05-18 10:20:50
104
1
原创 3 设计模式之解释器模式
(如果每个类都实现自己的函数handle_XXX(),那么在调用之前得先判断对象类型,使用if,十分不好看。目标是对e和r对象进行操作,先获取e和r对象的值,再进行操作。保存有CBaseOperations类型的成员变量e,r(2.主要就是使用了虚函数的原理。
2023-05-11 10:52:25
81
原创 10.10.3 Phong明暗处理
该算法是先计算法向量,再计算每点光照强度,而Gouraud明暗处理则是先计算光照强度,然后对光照强度线性插值。优点:Gouraud明暗处理会带来马赫带效应,该算法可有效减少。3.根据光照模型,利用法向量N计算该点的光照强度。缺点:每点都需要重新计算光照强度,计算量大。1.先计算出法向量N1,N2,N3.2 线性插值计算出法向量N。
2023-05-05 11:37:59
532
1
原创 10.10.2 Gouraud处理
1.根据光照模型计算点1,2,3的光照强度。2.使用线性插值计算点4,5光照强度。3.使用线性插值计算点P光照强度。
2023-05-05 11:27:48
105
1
原创 vs2019 无法打开项目文件。 无法找到 .NET SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配
2.没有的话在vs2019安装这里勾选需要的。1. 搜索一下有没有这个。如果没问题,应该就可以了。4.cmd命令输入看看。
2023-04-18 16:25:22
11478
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅