@davidluzgouveia가 annonymously의 게시물에 대해 언급 한 내용으로 판단하여 프로젝트를 시작합니다. 경로 추적과 경로 찾기는 매우 다릅니다. 경로 찾기는 대담하게 게시 한 내용보다 많으며 경로 찾기를 위해 Dijkstra의 알고리즘을 살펴볼 것입니다. 경로 추적을 위해 나는 선택한 물리 엔진을 전적으로 사용합니다. 내가 설정 한 방법은 단위 클래스가 걷는 각 위치가 2D 오프셋을 통해 하위 클래스 경로에 설정되어 있다는 것입니다. 그렇습니다 .2D이며 3D가 아닙니다. .
3D 설명 :
각 유닛에는 지형 및 월드 오브젝트와의 충돌을 위해 독점적으로 설정된 하나의 메인 콜 라이더가 있습니다. 캡슐 모양이며 프로그램 적으로 말하면 반경과 높이가 있습니다. 모델의 중심에 지어졌으며 모델의 앞쪽과 위쪽을지나 확장되어야합니다. 그러나 나는 또한 지상에서 항상 얼마나 멀리 떨어져 있는지에 대한 표면 오프셋과 한 번에 약간 튀어 오르기 전에 미끄러질 수있는 양의 부유물을 가지고 있습니다. 지형 충돌 문제에 대해 일종의 고정 수정을 적용하는 것처럼 들리지만 이유가 있습니다.
어쨌든이 캡슐 물체에 힘을 가해 야하며 항상지면 위에 떠 있어야합니다. 그것은 더 이상 갈 수 없다고 말하는 것이 아니며 더 이상 갈 수 없다는 것입니다. (제 경우에는) 호버링해야하는 이유는 강체와 래그 돌 물리 엔진에서 유닛의 다리가 절차 적으로 애니메이션되기 때문입니다. 따라서 캡슐에 간단한 힘을 가하면 제 몸의 다리가 스스로 위치를 바꿀 것입니다. 그들은 또한 별도의 중력 응용 프로그램을 갖습니다! 이것이하는 일은 내 캐릭터가 기울어 진 경우 한 발이 다른 발보다 더 낮을 수 있다는 것입니다.
이것이 바로 당신이 해야하는 방법입니다. 당신이 묻는 것에 의해 판단하십시오. 일부 기능을 사용하지 않으려는 경우 특히 RTS 또는 FPS이고 아무도 발을 보지 못하거나 돌보지 않는 경우에 좋습니다. 그러나 일반적으로 유닛에는 캐릭터의 움직임과 거의 독점적으로 작동하는 하나의 MAIN 충돌 오브젝트가 있어야합니다.
구체적으로 2D :
엔진이 움직이기위한 주요 지점 또는 일종의 기준이 여전히 있어야합니다. 각 유닛에 필요한 몇 개의 위치가있는 경로 지정 서브 클래스를 제공 할 수 있습니다. 레벨 코드에서 지정할 수 있습니다 (예 : location1 (x, y) location2 (x, y) 등). (작업중인 게임 종류를 모름) 레벨에서 위치를 지정하고 각 단위가 레벨에 지정된 순서대로 처리하고 각 위치에 도달 한 후 원하는 위치를 다음에 도착해야합니다.
각 유닛의 첫 번째 위치에 위치 목록이있는 것처럼 모든 단위가 동일한 위치로 이동하지 않아도되기 때문에이를 수정할 수있는 방법이 많이 있습니다. 그러나 같은 방법으로 레벨 코드에서도이를 수행 할 수 있습니다 (unit1.location1 (x, y) unit1.location2 (x, y) grunt.l1 (x, y) knight.loc3 (x, y) 도대체 무엇이)
몇 가지 아이디어! 관련성이 적지 만 3D 버전을 읽는 것이 좋습니다.
편집 : 나는 이것을 읽을 수있는 사람을 위해 두 가지를 모두 공급하기로 결정했습니다 (그렇습니다 사실) .... (나는 원래 당신의 질문을 훑어 보았고 그것을 다시 읽을 때까지 꽤 2D 특정하다는 것을 알지 못했습니다.>)