【问题标题】:What replaced BulletSharp.ContactAdded?是什么取代了 BulletSharp.ContactAdded?
【发布时间】:2013-12-13 15:29:38
【问题描述】:

我最近将项目的物理库 (BulletSharp) 从 2.80 更新到了 2.82,但留下了一堆无效调用(调试抽屉中有大约 20 个构建错误)。除了碰撞检测调用之外,我已经修复了几乎所有这些问题。

来自 CollisionReporter.cs:

PhysicsMain.PreSimulate += new PhysicsSimulateEvent(PreSimulate);
PhysicsMain.PostSimulate += new PhysicsSimulateEvent(PostSimulate);
PhysicsMain.ContactAdded += new ContactAdded(ManifoldPoint_ContactAdded);
LevelManager.OnLevelUnload += new LevelEvent(OnLevelUnload);

然后从 PhysicsMain.cs 中的 CreateWorld() 函数调用它:

ManifoldPoint.ContactAdded += new ContactAdded(ManifoldPoint_ContactAdded);

我在 PhysicsMain.cs 顶部附近也有这条线:

public static event ContactAdded ContactAdded;

我还应该指出 ManifoldPoint_ContactAdded() 是一个布尔值。

bool ManifoldPoint_ContactAdded(ManifoldPoint point, ... ) {

我遇到的问题是 Bullet(无论如何是 BulletSharp)停止使用 BulletSharp.ContentAdded 中断了调用。该文档没有提供有关替代它们的信息。

有人知道我必须使用什么来代替 BulletSharp.ContactAdded 吗?

编辑:这似乎在 PhysicsMain.cs 中引发“无重载匹配委托”错误。

PhysicsMain.ContactMade += ContactMade;

我认为这是罪魁祸首:

public static event /*ContactAdded*/ ContactAddedEventHandler ContactMade;

【问题讨论】:

    标签: c# bulletphysics


    【解决方案1】:

    ContactAdded 委托 was renamed 到 ContactAddedEventHandler 以匹配 .NET 标准。你只需要写出处理方法的名字,所以这两个都是正确的:

    ManifoldPoint.ContactAdded += new ContactAddedEventHandler(ManifoldPoint_ContactAdded);
    ManifoldPoint.ContactAdded += ManifoldPoint_ContactAdded;
    

    .NET 中的事件通常不返回任何值,因为可以将多个方法连接到事件并返回不同的值。这与将单个方法设置为处理程序的 C++ 不同。由于 Bullet 目前不使用 bool 返回值,因此使用 void 代替。所以你的方法应该是 void 并且不返回任何值。

    我认为 BulletSharp 直到最近才发展到这样的突破性变化可能被认为是一件坏事的地步。还是很抱歉。

    【讨论】:

    • 我尝试将其更改为 void 只是为了得到构建错误或根本不工作。我应该引入一个布尔值来表示是否发生了碰撞还是有更好的方法?
    • 您遇到了什么错误?你有没有改变“return false;”到“return;”?在内部,Bullet 并不关心返回值,但为了向后兼容,他们保留了它。在 BulletSharp 中,省略了返回值。
    • 我已经这样做了,我昨天编辑了我的帖子,显示我遇到了什么错误(它是“PhysicsMain.ContactMade += ContactMade;”和一个无重载匹配委托错误)。
    猜你喜欢
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多