我正在尝试检测用户是否已接地。屏幕上有一个GameObject
,其上有一个BoxCollider2D
组件,位于Ground
图层上。然后我会在其上添加一个Rigidbody2D
和CircleCollider2D
字符以及此类:
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
的检查。