我最近将项目的物理库(BulletSharp)从2.80更新为2.82,并且留下了一堆无效调用(在调试抽屉中有大约20个生成错误)。除了碰撞检测电话之外,我几乎将它们全部解决了。什么取代了BulletSharp.ContactAdded?
从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, ...) {
我与它遇到的问题是子弹(BulletSharp反正)使用BulletSharp.ContentAdded这打破了电话停了下来。该文档没有提供有关替代它们的信息。
有没有人知道我必须使用而不是BulletSharp.ContactAdded?
编辑:这似乎在PhysicsMain.cs中引发了“no overload matches delegate”错误。
PhysicsMain.ContactMade += ContactMade;
我觉得这是难辞其咎的:
public static event /*ContactAdded*/ ContactAddedEventHandler ContactMade;
我试着将它改为void,只是为了得到构建错误或者根本不工作。我应该引入一个布尔值来表示是否有碰撞或者有更好的方法吗? – bricky149
你得到什么错误?你有没有改变“返回假”;到“返回”?在内部,Bullet并不关心返回值,但他们为了向后兼容而留下。在BulletSharp中,返回值被省略。 –
我已经这样做了,我昨天编辑了我的帖子,显示我得到了什么错误(这是与“PhysicsMain.ContactMade + = ContactMade;”和没有重载匹配委托错误)。 – bricky149