2013-12-13 6 views
0

최근에 내 프로젝트의 물리 라이브러리 (BulletSharp)가 2.80에서 2.82로 업데이트되었으며 잘못된 호출 (디버그 서랍에 약 20 개의 빌드 오류가 있음)이 남아있었습니다. 나는 거의 모든 것들을 충돌 탐지 호출과 별도로 고쳤습니다. CollisionReporter.cs에서BulletSharp.ContactAdded를 대체 한 요소는 무엇입니까?

:

ManifoldPoint.ContactAdded += new ContactAdded(ManifoldPoint_ContactAdded); 

나는 또한 PhysicsMain의 상단이 라인을 가지고 : 다음 PhysicsMain.cs에서 CreateWorld() 함수에서이 호출

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

.cs :

public static event ContactAdded ContactAdded; 

또한 ManifoldPoint_ContactAdded()는 부울 값입니다.

bool ManifoldPoint_ContactAdded(ManifoldPoint point, ...) { 

내가 함께 보내고있어 문제는 총알이다 (BulletSharp 어쨌든) 전화를 끊었다 BulletSharp.ContentAdded 사용을 중단. 이 문서에는 대신 무엇을 대체하는지에 대한 통찰력이 없습니다.

아무도 내가 BulletSharp.ContactAdded 대신에 사용해야하는 것을 알고 있습니까?

편집 : PhysicsMain.cs에 "위임과 일치하지 않는 대리인"오류가 표시되는 것 같습니다.

PhysicsMain.ContactMade += ContactMade; 

나는이 비난하는 생각 :

public static event /*ContactAdded*/ ContactAddedEventHandler ContactMade; 

답변

1

ContactAddedEventHandler에 ContactAdded 위임 was renamed는 .NET 표준에 맞게. 당신은 비록 처리기 메서드의 이름을 작성해야하므로이 두 가지가 올바른지 : 여러 가지 방법으로 이벤트에 매여 될 수 있기 때문에 .NET에서

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

이벤트는 일반적으로 모든 값을 반환하지 않습니다 다른 값을 반환합니다. 이것은 하나의 메소드가 핸들러로 설정된 C++과 다릅니다. Bullet은 현재 bool 반환 값을 사용하지 않으므로 대신 void가 사용됩니다. 따라서 메소드가 무효화되고 어떤 값도 반환되지 않아야합니다.

저는 BulletSharp가 최근에야 그러한 깨어진 변화가 나쁜 것으로 간주 될 수있는 개발 시점에 도달했다고 생각합니다. 어쨌든 죄송합니다.

+0

빌드 오류가 발생하거나 전혀 작동하지 않도록 void로 변경하려고했습니다. 충돌이 있었는지 또는 더 좋은 방법이 있는지를 말할 때 부울을 소개해야합니까? – bricky149

+0

어떤 오류가 있습니까? 당신은 "거짓 거짓말"을 바꿨습니까? 내부적으로 Bullet은 반환 값에 대해 신경 쓰지 않지만 하위 호환성을 위해 내부에 남겨 둡니다. BulletSharp에서는 반환 값이 생략됩니다. –

+0

나는 이미 그것을했는데 어제 내가 얻은 오류 ("PhysicsMain.ContactMade + = ContactMade;"및 No Overload Matches Delegate 오류 포함)를 보여주는 어제 게시물을 편집했습니다. – bricky149