找回密码
 立即注册
查看: 248|回复: 0

Unreal Engine 4 基础移动蓝图开发

[复制链接]
发表于 2022-7-24 11:14 | 显示全部楼层 |阅读模式
1蓝图动画


事件:动画蓝图每帧更新


函数:获得拥有者Pawn,返回的是拥有这个动画实例的Pawn


//AnimInstance.h
        UFUNCTION(BlueprintCallable, Category = "Animation", meta=(NotBlueprintThreadSafe))
        virtual APawn* TryGetPawnOwner() const;

//AnimInstance.cpp
APawn* UAnimInstance::TryGetPawnOwner() const
{
        USkeletalMeshComponent* OwnerComponent = GetSkelMeshComponent();
        if (AActor* OwnerActor = OwnerComponent->GetOwner())
        {
                return Cast<APawn>(OwnerActor);
        }

        return NULL;
}

  • 先获取到动画蓝图所属的组件(OwnerComponent)
  • 然后再获取OwnerComponent的所属OwnerActor
  • 最后还要把OwnerActor(AActor类型)向下强制类型转换成APawn。

函数:获取向量(有大小和方向)


函数:获取向量的大小


判断对象是否有效


提升为变量





2 关卡蓝图


函数:切换视角
从target视角切换到new view target视角


函数:获取玩家控制器


战斗场景的引用


获得玩家的引用,传递给1gamemode
将1gamemode里面的playerone类提升为变量,设置为玩家,由此获得玩家的引用


关卡蓝图中整体流程
在关卡中首先游戏开始,然后切换摄像机视角,接下来获取1gamemode里面的玩家,并将其提升为变量,(蓝图通信)给其他类使用。



3 gamemode

函数:在鼠标光标下执行碰撞查询,查找对象类型
Hit result 命中结果
返回值:bool类型,是否命中


bool GetHitResultUnderCursorForObjects
(
    const TArray< TEnumAsByte< EObjectTypeQuery > > & ObjectTypes,
bool bTraceComplex,
FHitResult & HitResult
) const


Break hit result作用是展开hit result的信息
Hit actor是击中的actor,然后将其强制转换为敌人基类,因为鼠标击中的目标可能是敌人类也可能是玩家类,玩家类是不可以转换为敌人类的,目的是只能点击敌人。

GetHitResultUnderCursorForObjects返回值是判断是否击中,branch为true说明击中,然后将击中的actor转换为敌人类


自定义事件:Mouse Click,玩家控制器在获取当前的1gamemode引用之后会执行此事件


鼠标点击之后执行branch判断,然后执行 转换敌人类(只有点击敌人的时候才会执行,点击其他actor的时候不会执行,因为其他类无法转换成敌人类)


AI行为树:跟随移动
Pawn:谁要移动或跟随
Destination:要移动到或跟随的目的地
Target actor:目的地的actor
Acceptance radius:离目的地的距离
Stop on overlap:是否停止


玩家的引用和选中敌人的引用都有了,然后进行移动


Get actor location是获取位置
Get actor forward vector是获取向前的方向向量






第二个ai move to 是再移动回开始的位置
Set actor rotation 是设置最开始的旋转角度方向



4 playercontroller


鼠标左键点击事件,该事件要放在playercontroller类里面,不可以放在gamemode里面,因为gamemode没有玩家控制权,只有玩家控制器才可以控制玩家进行一系列行为。



获取gamemode然后转换为我们自定义的gamemode


鼠标左键点击之后,我们就获取了1gamemode的引用,然后执行自定义事件mouse click

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-25 13:55 , Processed in 0.168589 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表