zoukankan      html  css  js  c++  java
  • spend tons of time to debug this asshole/ UE4 C++ event dispatch

    within the customer engine ver. 4.19 base, I try to do the array bucket to handle all the overlap collision and somehow to overlapend and begin is inversed, can not figure out why and finaly look at the source code "PrimitiveComponent.h" and figure out why.. because they fckign make the Overlap Delegate in the different shape!! FCK YOU EPIC.

    DECLARE_DYNAMIC_MULTICAST_DELEGATE_FiveParams( FComponentHitSignature, UPrimitiveComponent*, HitComponent, AActor*, OtherActor, UPrimitiveComponent*, OtherComp, FVector, NormalImpulse, const FHitResult&, Hit );
    /** Delegate for notification of start of overlap with a specific component */
    DECLARE_DYNAMIC_MULTICAST_DELEGATE_SixParams( FComponentBeginOverlapSignature, UPrimitiveComponent*, OverlappedComponent, AActor*, OtherActor, UPrimitiveComponent*, OtherComp, int32, OtherBodyIndex, bool, bFromSweep, const FHitResult &, SweepResult);
    /** Delegate for notification of end of overlap with a specific component */
    DECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams( FComponentEndOverlapSignature, UPrimitiveComponent*, OverlappedComponent, AActor*, OtherActor, UPrimitiveComponent*, OtherComp, int32, OtherBodyIndex);

    the 3 above are hit, overlapbegin, overlapend. ..but somehow if you use the older one the overlapend still works

    好了不吐槽了,要解决的问题就是个碰撞的dispatch,但是4.19的格式跟之前的不一样,上面贴的是源码里面的,官方的是:

    void ALightSwitchCodeOnly::OnOverlapBegin(UPrimitiveComponent* OverlappedComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult);

    就是位置不一样,但是可以运行,但是碰撞检测不一样...以为见鬼了一开始
  • 相关阅读:
    Oracle-函数
    Oracle-存储过程
    Linux-文件系统概述
    Oralce-PL/SQL编程-游标
    Oracle -操作数据库
    Oralce常用系统函数
    SQL语言基础-基本概念
    Linux-进程管理
    Linux-用户管理
    shell里的IFS内置环境变量
  • 原文地址:https://www.cnblogs.com/sunchuankai/p/11822983.html
Copyright © 2011-2022 走看看