0

나는 두 개의 간단한 애니메이션을 만들었고 무분별한 재질을 가진 간단한 캡슐 충돌자를 적용했습니다. 이제이 메시가 서로 충돌하고 호출 된 함수가 콘솔에 메시 충돌을 발생시키는 메시지를 표시합니다 collsion 플레이어가 단지 현실적인 인간의 being.So처럼 움직이지 않는 발생할 때 나누었다 내가 어떻게, 만약 내가 제대로 이해하고 두 번째 선수가 it..I가 충돌 감지스크립트를 통한 캐릭터의 이동

function OnCollisionEnter(Bam : Collision) 
    { 
    if(Bam.collider.gameObject.name == "cube") 
    { 
     print("cube collision"); 
    } 
    if(Bam.collider.gameObject.name=="Terrain") 
    { 
    print("wall collision"); 
    } 
    if(Bam.collider.gameObject.name=="simple_anim") 
    { 
    print("with the mesh"); 
    } 
     } 
+0

두 명의 플레이어가 충돌하면 위의 코드에서 인쇄본을 받게됩니까? 또는 다른 말로하면 : 당신이 증명 한 코드가 효과가 있습니까? 그리고 그가 현실적인 인간처럼 움직일 때 플레이어가해야 할 일을보다 정확하게 정의 할 수 있습니까? – Joetjah

+0

이 코드는 잘 작동하지만 ... 한 선수가 다른 플레이어에게 펀치를 내리면 희생자 플레이어가 다른 비디오 게임처럼 약간의 움직임을 보여야합니다. 내가 어떻게 할 수 있니? –

답변

1

이 코드를 작성한 히트 플레이어를 이동할 수 있습니다 너는 다른 플레이어를 때려 눕히고 싶니? 그렇다면, 당신은이 스크립트를 시도 할 수 있습니다 : Collission를 들어

var velBack : float = 15; 
function OnTriggerEnter(col:Collider) { 
    if (col.tag == "Player") 
    { 
     dir = (col.transform.position - transform.position).normalized; 
     var charMotor = col.GetComponent(CharacterMotor); 
     charMotor.SetVelocity(dir*velBack); 
    } 
} 

:

var velBack : float = 15; 
function OnTriggerEnter(hit : ControllerColliderHit) { 
    if (hit.gameObject.tag == "Player") 
    { 
     dir = (hit.gameObject.transform.position - transform.position).normalized; 
     var charMotor = hit.gameObject.GetComponent(CharacterMotor); 
     charMotor.SetVelocity(dir*velBack); 
    } 
} 

당신이 바로 객체의 태그의를 설정해야합니다.

+0

네, 맞습니다만 onTriggerEnter 함수를 사용하지 않습니다. onCollisionEnter를 사용하고 있습니다. condtion을 사용하면 플레이어가 충돌하고 CharacterMoter에서 오류가 발생합니다. –

+0

안녕하세요, 편집 된 코드를 사용해보세요. 나는 그것을 테스트하지 않고 만들었습니다 (최소한 4 시간 동안은 가능하지 않을 것입니다). 그래서 완전히 정확하지 않을 수도 있습니다 ... – Joetjah

+0

나는 어떤 컨트롤러도 사용하지 않았습니다 ... 바로 이것에 대해서 아마 필요합니다. 제 3 자 컨트롤러 ..의 그것? ????? –