GA里需要延迟触发需要使用task,虚幻自带了一些task函数,如果我们想自己实现某些功能需要自定义task。创建一个c++类,继承自UAbilityTask。 task类里需要有3个关键函数:一个静态函数,一个激活任务执行的函数,一个结束任务执行的函数。 UFUNCTION(BlueprintCallable, Category = "Abili…
输入映射上下文与输入操作 首先创建输入映射上下文与输入操作。输入映射上下文把按键转换为对应的数据传给输入操作,输入操作可绑定触发事件。 移动由四个方向键驱动前后左右所以值类型应该为Axis2D,跳跃仅捕获是否按下按键,值类型应为数字(布尔),旋转视角是鼠标在2D平面内旋转,旋转的输入操作值类型为Axis2D。其他设置不需要更改。 在输入映射上下文映…
FTimerHandle TimeHandle; void Timerfunction(); void Mytimer::Timerfunction() { } void Mytimer::Timerfunction2(Ftext Text,int32 int) { } //在eventbeginplay里 GetWorld()->GetTi…
单播代理 声明单播代理 DECLARE_DELEGATE(Delegateone); DECLARE_DELEGATE_OneParam(Delegatetwo, float); DECLARE_DELEGATE_TwoParams(Delegatethree, FString, float); DECLARE_DELEGATE_RetVal(fl…
使用GAS 启用插件Gameplay Ability。 在*.Build.cs中的PublicDependencyModuleNames.AddRange(new string[]后面的大括号里添加"GameplayAbilities" , "GameplayTags" , "GameplayTasks"。 AbilitySystem组件 要使用g…
本文简单介绍溶解材质。 stepStep材质表达式会为每个X值返回一个0或1,依据是其究竟大于还是小于Y的参考值。一个线性梯度值(0到1)连接到 X 输入。Y(0.25)值相当于引用值。梯度中所有低于0.25的值返回0(黑色);所有等于大于0.25的值返回1(白色)。 首先创建一个材质,混合模式改为已遮罩,光照模式改为无光照。找一张噪声图连接到st…
本文简单介绍使用ui制作小地图的方法。 本文方法来源于【【UE5】【蓝图】UMG-小地图制作分享】 图片小地图 制作地图的图片 图片小地图是以静态图片为基础的小地图。 首先,在做好的地形关卡中切换为顶视图,点击最左侧的“三”字菜单,选择高分辨率截图,将地图截图截下来。然后使用图片处理工具将透明网格区域去掉,只留下地形部分。 ui设计 创建一个控件蓝…
某个角色发射射线检测后检测到另一个角色,本文将介绍如何计算被击中点与被击中actor向前向量之间的夹角。这个夹角可以用来当作混合空间动画的水平轴与垂直轴,来实现受击动画等效果。 这里把这个部分放到一个函数里,因为线较多,且可以复用。 首先,需要获取两个向量一个为actor向前向量,一个为actor位置指向受击点的向量,然后将该向量单位化(这两个节点…
本文简单介绍如何在虚幻引擎里让角色释放投掷物,并且在持有投掷物期间显示其轨迹。 投掷物 开始投掷 按下按钮E进入投掷状态。首先应该移动摄像机位置,将正背后的摄像机移动到靠近肩部。然后播放抬手动画,并且将旋转朝向运动关闭(关闭掉此项功能后角色朝向就不受角色的运动方向影响)、使用控制器旋转打开(打开后鼠标移动就能使视角旋转)。因为抬手动画的混入时间大概…
本文介绍如何实时检测里AI最近的角色。 检测所有感知范围内的actor OnTargetPerceptionUpdated感知系统接收到更新时将触发此事件并返回发出更新信号的Actor。它还会返回 AI刺激(AI Stimulus) 结构体,可将其分解来获得附加信息。只有每次感受到新刺激或者刺激从范围中自然离开时才会触发此事件。如果actor在感知…