Woody_Dark 2024-02-12 21:52 采纳率: 37.5%
浏览 5

蓝图重叠功能如何写C++

img


这是UE的角色与NPC重叠小功能,角色创建标签,与Actor重叠,如何写成C++代码

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-02-12 21:54
    关注

    引自免费微信小程序:皆我百晓生

    在Unreal Engine 4(UE4)中处理角色与Actor重叠的逻辑通常涉及到组件的Overlap事件和HitDelegate。以下是一个简化的C++示例,展示如何检测角色(假设为ACharacter的一个子类)与带有特定标签的Actor发生重叠时触发某个动作:

    // 首先,在你的自定义角色类(例如MyCharacter.h)中声明必要的成员变量和函数
    
    // 假设我们有一个用于存储重叠Actor信息的指针
    UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Overlap")
    class AActor* OverlappedActor;
    
    // 创建一个Hit Delegate,它将在角色与Actor重叠时被调用
    UFUNCTION()
    void OnActorOverlapBegin(AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult);
    
    // 在构造函数中绑定Overlap事件
    MyCharacter::MyCharacter()
    {
        // 获取角色的根组件(如CapsuleComponent)
        UCapsuleComponent* Capsule = GetCapsuleComponent();
    
        if (Capsule)
        {
            // 绑定Overlap开始事件
            Capsule->OnComponentBeginOverlap.AddDynamic(this, &MyCharacter::OnActorOverlapBegin);
        }
    }
    
    // 定义Overlap开始时的回调函数
    void AMyCharacter::OnActorOverlapBegin(AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult)
    {
        // 检查是否与带有特定标签的Actor重叠
        if (OtherActor && OtherActor->ActorHasTag("YourDesiredTagName")) // 替换"YourDesiredTagName"为实际标签名
        {
            // 存储重叠的Actor
            OverlappedActor = OtherActor;
    
            // 这里添加你希望在重叠发生时执行的代码
            // ...
        }
    }
    

    要确保在Unreal引擎编辑器中正确设置Actor的标签,可以在Actor的详细面板中找到“标签和层”选项进行配置。

    请注意,上述代码仅作为基本示例,并未涵盖所有可能的边界条件检查和错误处理。根据项目需求,你可能还需要在OnActorOverlapEnd等其他事件中实现相应的逻辑以解除重叠状态。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月12日

悬赏问题

  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error