用点检测2d物体是否有物体
- 功能要求是点击空白处取消选中,点击棋子选中
- 所以我做了一个射线检测。
- 但是脑子的惯性让我用的是3D的射线检测。
- 但我们这是一个2D游戏啊。
Vector3 mousePos = pos;mousePos.z = 10f; // 假设你需要转换到距离相机10单位的世界位置Vector3 worldPos = Camera.main.ScreenToWorldPoint(mousePos);Debug.Log("世界坐标位置:" + worldPos);Collider2D hit = Physics2D.OverlapPoint(worldPos);if (hit != null && hit.gameObject.GetComponent<Piece>() != null){return true;}return false;
- 我一开始为了进行检测,用的是3D那个射线,而且还把棋子的碰撞体改成boxCollider了,但是完全得不偿失。
角色走路
- 走路碰撞体还是用Capusle胶囊体比较好。
- 不然boxCollider很容易和地缝卡在一起。导致角色无法动弹