유니티에서 전투기를 만들고 있습니다. 내가 펀치를 할 때 상대방을 때리는 경우 Unity가이를 탐지 할 수있는 방법을 찾아야합니다. 문제는 그렇게 할 방법을 찾지 못하는 것입니다. 메쉬가 서로 또는 더 나은 방식으로 접촉하고 있는지 감지 할 수있는 방법이 없습니까?Unity3D의 파이터 게임 - 파이터 히트 상대 [유니 코드]
의견이 있으십니까?
감사합니다, 로버트 댄
유니티에서 전투기를 만들고 있습니다. 내가 펀치를 할 때 상대방을 때리는 경우 Unity가이를 탐지 할 수있는 방법을 찾아야합니다. 문제는 그렇게 할 방법을 찾지 못하는 것입니다. 메쉬가 서로 또는 더 나은 방식으로 접촉하고 있는지 감지 할 수있는 방법이 없습니까?Unity3D의 파이터 게임 - 파이터 히트 상대 [유니 코드]
의견이 있으십니까?
감사합니다, 로버트 댄
나는 Physics.SphereCastAll을 살펴 것입니다. 구형 주조는 레이 캐스팅과 유사합니다. 구형 주조 두꺼운 레이 캐스트 주조를 고려하십시오. 배후의 아이디어는 펀치가 진행되는 방향에서 펀치가 발생하는 영역에서 영역을 캐스팅하는 것입니다. 콜리 더가 함수에서 반환되면 충돌이 발생하여 무언가에 충돌 했으므로 충돌 조건이 다른 조건 (즉, 다른 플레이어)을 충족하는지 확인해야합니다.
가장 확실한 해결책은 공격중인 메시에 메시 충돌 장치와기구 학적 강체를 추가하고 OnCollisionEnter를 사용하여 다른 강체와의 충돌을 탐지하는 것입니다.
Yeeeaah, 내 마음을 넘어 섰지 만 캐릭터에 캡슐 콜 리더가있는 캐릭터 컨트롤러가있어 메쉬 콜라이더 및/또는 리짓 바디로 그 작업을 할 수없는 것처럼 보입니다 –
상황에 대한 자세한 정보를 제공해 주시겠습니까? 캐릭터 컨트롤러, 공격자 또는 수비수는 누가 사용합니까? 충돌을 감지 할 별도의 gameObject (손 또는 다리와 같은)가 있습니까? –
늦게 답장을 드려 죄송합니다. 저는 한 명의 선수를 보유하고 있고 다른 선수는 인공 지능이 있어야합니다. 그러나 아직 그 선수는 아직 멀었습니다. 나는 내 플레이어에서만 숯 컨트롤러가 필요하다고 생각한다. 분리되지는 않는다. 다음은 게임에 대한 링크입니다 : http://nemar.tskoli.is/robertsi252/tmf3d/ "u"를 눌러 펀치하십시오. 테스트 단계에 있으므로 모든 낯선 것을 신경 쓰지 마세요. :) –
답변 해 주셔서 감사합니다. 한가지, SphereCastAll과 SphereCast의 차이점은 무엇입니까? 나는 오직 한 명의 상대방을 가지고 있기 때문에 한 축을 움직이고 있기 때문에 SphereCast도 잘 작동하지 않을까요? –
SphereCast는 플레이어가 스스로 레이어를 가지고있는 경우 작동합니다. SphereCastAll은 SphereCast와 충돌하는 모든 GameObjects를 기반으로 Collider 객체를 반환하지만 SphereCast는 내가 믿는 부울 값을 반환합니다. 귀하의 경우 플레이어 A를 레이어 A에, 플레이어 B를 레이어 B에 (예를 들어) 배치 할 수 있습니다. SphereCast 함수에서는 레이어 B 이외의 다른 모든 레이어를 무시하면됩니다. 이것은 1 << layerB로 수행합니다. 여기서 layerB는 실제 Layer 색인입니다. LayerMask.NameToLayer (나는 믿는다)에 대한 레이어 문서에서 더 많은 정보를 찾을 수있다. 더 궁금한 점이 있으면 알려주세요. – cmhley
안녕하세요, 귀하의 답변에 감사드립니다. 그것은 특정 지점에 큰 일을하고 있습니다 :) 문제는 지금 내가 Mecanim 애니메이터를 사용하고 있다는 것입니다. mecanim 애니메이터는 "펀치"애니메이션 재생을 기다리지 만, 그 동안에는 "펀치"버튼을 누르면 많은 구형 캐스트를 캐스팅 할 수 있습니다. Mecanim이 너무 새롭기 때문에 나는 javascript에 대한 많은 정보를 찾을 수 없습니다. 나는이 애니메이션 상태에 있다면, 구형 캐스트를 던지라고하는 스크립트를 만들려고합니다. –