private static void AddPointCollider(GameObject go, CollisionObject collision, SuperImportContext importContext) { var xpos = importContext.MakeScalar(collision.m_Position.x); var ypos = importContext.MakeScalar(collision.m_Position.y); go.transform.localPosition = new Vector3(xpos, ypos); go.transform.localEulerAngles = new Vector3(0, 0, importContext.MakeRotation(collision.m_Rotation)); go.AddComponent <SuperColliderComponent>(); }
private static void AddBoxCollider(GameObject go, CollisionObject collision, SuperTile tile, SuperImportContext importContext) { var box = go.AddComponent <BoxCollider2D>(); box.offset = importContext.MakePointPPU(collision.m_Size.x, -collision.m_Size.y) * 0.5f; box.size = importContext.MakeSize(collision.m_Size); var xpos = importContext.MakeScalar(collision.m_Position.x); var ypos = importContext.MakeScalar(collision.m_Position.y); go.transform.localPosition = new Vector3(xpos, ypos); go.transform.localEulerAngles = new Vector3(0, 0, importContext.MakeRotation(collision.m_Rotation)); go.AddComponent <SuperColliderComponent>(); }
private static void AddEllipseCollider(GameObject go, CollisionObject collision, SuperTile tile, SuperImportContext importContext) { // Add a circle collider if width == height. Otherwise, we have to use am approximate polygon representation. if (collision.m_Size.x == collision.m_Size.y) { var cirlce = go.AddComponent <CircleCollider2D>(); cirlce.offset = importContext.MakePointPPU(collision.m_Size.x, -collision.m_Size.y) * 0.5f; cirlce.radius = importContext.MakeScalar(collision.m_Size.x) * 0.5f; var xpos = importContext.MakeScalar(collision.m_Position.x); var ypos = importContext.MakeScalar(collision.m_Position.y); go.transform.localPosition = new Vector3(xpos, ypos); go.transform.localEulerAngles = new Vector3(0, 0, importContext.MakeRotation(collision.m_Rotation)); go.AddComponent <SuperColliderComponent>(); } else { AddPolygonCollider(go, collision, tile, importContext); } }