2014-12-19 8 views
0

플랫폼을 걷고있는 게임 캐릭터가 있습니다. 하늘에서 떨어지는 블록들도 있습니다. 캐릭터가 땅에있을 때 블록이 머리 위에 닿았을 때 나는 Kinematic 블록을 만들고 싶다. 나는 코드가 내 문자에 코드 rigidbody2D.isKinematic("Block",true);의 마지막 세트에 문제가 있고 그것을 치면 블록이개체를 만드는 방법은 키네틱입니다

using UnityEngine; 
using System.Collections; 

public class Stop : MonoBehaviour { 
    bool grounded = false; 
    public Transform groundCheck; 
    float groundRadius = .5f; 
    public LayerMask whatIsGround; 

    void FixedUpdate() 
    { 
     grounded = Physics2D.OverlapCircle(groundCheck.position, groundRadius, whatIsGround); 
    } 
    void OnCollisionEnter2D(Collision2D col) 
    { 
     if (grounded && col.gameObject.tag == "Block") 
     { 

      rigidbody2D.isKinematic("Block",true); 
     } 

    } 
} 
+0

당신은 블록) "rigidbody2D.isKinematic를"대체 스크립트가 ... 첨부 된 게임 오브젝트에 부착 된 강체를 참조하고 ; " – Savlon

+0

이 오류가 발생합니다."Assets/Prefab/Stop.cs (19,29) : 오류 CS1061 : Type UnityEngine.Collision2D '에 rigidbody2D에 대한 정의가없고 확장 메서드 rigidbody2D'가 없습니다. (이 지시문이나 어셈블리 참조가 누락 되었습니까?) " –

답변

1

"col"은 이미 2D 개체라는 것을 정의하고 있습니다. 그래서 당신은 ridgidbody에서 2D를 가져 가야합니다. 이것은 효과가있다. col.rigidbody2D.isKinematic = TRUE; "와"(사실,

col.rigidbody.isKinematic = true; 
0

isKinematic이 부울 속성이 아닌 기능입니다 얼음장 그래서 그것을 원한다. 다음과 같이 설정 :

col.rigidbody.isKinematic = true; 

UPDATE : Collision2Drigidbody를 이용한다. Collider2D (트리거 용)은 rigidbody2D 또는 attachedRigidbody을 사용합니다. 둘 중 하나는 col을 사용할 수 있습니다. gameObject .rigidBody2D.

+0

이 오류가 발생합니다."Assets/Prefab/Stop.cs (19,29) : 오류 CS1061 : 'UnityEngine.Collision2D'유형에는 'rigidbody2D'에 대한 정의가없고 'UnityEngine.Collision2D'유형의 확장 방법 'rigidbody2D'가 없습니다. d가 발견되었습니다 (사용 지시문이나 어셈블리 참조가 누락 되었습니까?) " –

+0

죄송합니다. 나는 Unity를 편리하게 사용하지 않기 때문에 메모리와 워드 프로세서를 실행할 수 없다. 시도하십시오 col.attachedRigidbody2D.isKinematic 또는 col.gameObject.rigidbody2D.isKinematic –

+0

충돌 및 트리거를 혼합. 지금 업데이트되었습니다. –

관련 문제