Raycast Hit Collider始终为NULL

时间:2017-03-31 21:03:47

标签: c# unity3d

我正在尝试检测用户是否已接地。屏幕上有一个GameObject,其上有一个BoxCollider2D组件,位于Ground图层上。然后我会在其上添加一个Rigidbody2DCircleCollider2D字符以及此类:

public class CharacterEnvironment : MonoBehaviour {

    float distToGround;

    // Use this for initialization
    void Start() {
        var collider = GetComponent<CircleCollider2D>();
        distToGround = collider.bounds.extents.y;
    }

    // Update is called once per frame
    void Update() {
        RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.down, distToGround + 0.1f, LayerMask.NameToLayer("Ground"));
        Debug.Log(hit.collider);
        if (hit && hit.collider != null) {
            Debug.Log(hit.collider);
        }
    }
}

当我的光线投射运行时,hit.collider始终为null,即使对象停留在地面对象的顶部。我的计算错了吗?

修改:我在if语句中添加了对hit的检查。

0 个答案:

没有答案