如何制作对象isKinematic

时间:2014-12-19 20:07:48

标签: c# unity3d

我有在平台上行走的游戏角色。还有从天而降的块。当角色在地面上并且一个块击中头顶时我想制作块运动。我最后一组代码有问题 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);
        }

    }
}

2 个答案:

答案 0 :(得分:1)

问题在于" col"已经定义它是一个2D对象。所以你必须从ridgidbody中取走2D。这应该有用。

col.rigidbody.isKinematic = true;

答案 1 :(得分:0)

isKinematic是一个bool属性,而不是一个函数。设置如下:

 col.rigidbody.isKinematic = true;

更新:Collision2D使用rigidbodyCollider2D(针对触发器)使用rigidbody2DattachedRigidbody。可以使用col。gameObject。rigidBody2D。