Tilemap Collider中獲取到ContactPoint,然后通過WorldToCell獲取對應的TILE位置,但是相同的ContactPoint回傳的TILE位置卻不同。
也就是相同的世界坐標獲取到的TILE位置會不同,求解。
或者有沒有其他解決方案可以獲取Tilemap Collider對應的TILE呢。
void OnCollisionEnter2D(Collision2D other)
{
Tilemap _tileMap = other.gameObject.GetComponent<Tilemap>();
int contactCount = other.contactCount;
ContactPoint2D[] contacts = new ContactPoint2D[contactCount];
other.GetContacts(contacts);
for (int i = 0; i < contactCount; i++)
{
Vector3Int tile = _tileMap.WorldToCell(contacts[i].point);
_tileMap.SetTile(tile, null);
Debug.Log("ContactPoint with " + contacts[i].point);
Debug.Log("TilePos with " + tile);
}
Destroy(gameObject);
}

uj5u.com熱心網友回復:
Camera.main.ScreenPointToRay(Input.mousePosition).GetPoint()轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/14094.html
標籤:Unity3D
