public override void RebuildAllColliders() { UpdateCollidable(); DestroyCollider(); var alphaTex = destructibleSprite.AlphaTex; if (alphaTex != null) { var spriteRenderer = D2D_Helper.GetOrAddComponent <SpriteRenderer>(child); var sprite = Sprite.Create(alphaTex, new Rect(0, 0, alphaTex.width, alphaTex.height), Vector2.zero, 1.0f, 0, SpriteMeshType.FullRect); spriteRenderer.sprite = sprite; collider = child.AddComponent <PolygonCollider2D>(); // Disable the collider if it couldn't form any triangles collider.enabled = IsDefaultPolygonCollider2D(collider) == false; D2D_Helper.Destroy(sprite); D2D_Helper.Destroy(spriteRenderer); UpdateColliderSettings(); } }
private static void MakeDestructible(UnityEditor.MenuCommand mc) { if (mc != null && mc.context != null) { var spriteRenderer = mc.context as SpriteRenderer; if (spriteRenderer != null) { D2D_Helper.GetOrAddComponent<D2D_DestructibleSprite>(spriteRenderer.gameObject); } } }
public void RebuildCollider(Texture2D alphaTex) { DestroyPolygonCollider2D(); if (alphaTex != null) { if (polygonCollider2D == null) { var spriteRenderer = D2D_Helper.GetOrAddComponent <SpriteRenderer>(gameObject); var sprite = Sprite.Create(alphaTex, new Rect(0, 0, alphaTex.width, alphaTex.height), Vector2.zero, 1.0f, 0, SpriteMeshType.FullRect); spriteRenderer.sprite = sprite; polygonCollider2D = gameObject.AddComponent <PolygonCollider2D>(); // Disable the collider if it couldn't form any triangles polygonCollider2D.enabled = IsDefaultPolygonCollider2D(polygonCollider2D) == false; D2D_Helper.Destroy(sprite); D2D_Helper.Destroy(spriteRenderer); } } }