// Check Before Each Function - Then This Could Be Private public void Initialize() { colliderType = Polygon.GetColliderType(gameObject); List <Polygon> result = Polygon.GetListFromCollider(gameObject); // Split collider if there are more polygons than 1 if (result.Count > 1) { PerformResult(result); } switch (textureType) { case TextureType.Mesh: PolygonGenerator2D.GenerateMesh(gameObject, Polygon.CreateFromCollider(gameObject), new Vector2(1, 1)); MeshRenderer meshRenderer = GetComponent <MeshRenderer> (); meshRenderer.material = material; break; case TextureType.Sprite: if (GetComponent <SpriteRenderer> () != null) { gameObject.AddComponent <SpriteMesh2D> (); } break; default: break; } }
private void CreatePolygon(Polygon newPolygon) { GameObject newGameObject = new GameObject(); newGameObject.AddComponent <Rigidbody2D> (); newGameObject.transform.parent = transform; newGameObject.AddComponent <ColliderLineRenderer2D> ().color = Color.black; PolygonGenerator2D.GenerateCollider(newGameObject, newPolygon); Slicer2D smartSlicer = newGameObject.AddComponent <Slicer2D> (); smartSlicer.textureType = Slicer2D.TextureType.Mesh; smartSlicer.material = material; PolygonGenerator2D.GenerateMesh(newGameObject, newPolygon, new Vector2(1, 1)); }
void Start() { // Generate Mesh from collider PolygonGenerator2D.GenerateMesh(gameObject, Polygon.CreateFromCollider(gameObject), Vector2.zero); // Setting Mesh material if (material != null) { MeshRenderer meshRenderer = GetComponent <MeshRenderer> (); meshRenderer.material = material; meshRenderer.sortingLayerName = sortingLayerName; meshRenderer.sortingLayerID = sortingLayerID; meshRenderer.sortingOrder = sortingOrder; } }
void Update() { if (added == false) { SpriteRenderer spriteRenderer = GetComponent <SpriteRenderer> (); if (spriteRenderer == null) { if (texture != null) { added = true; PolygonGenerator2D.GenerateMesh(gameObject, Polygon.CreateFromCollider(gameObject), scale); MeshRenderer meshRenderer = GetComponent <MeshRenderer> (); if (meshRenderer == null) { meshRenderer = gameObject.AddComponent <MeshRenderer> (); } meshRenderer.material = new Material(Shader.Find("Sprites/Default")); meshRenderer.material.mainTexture = texture; meshRenderer.material.color = color; meshRenderer.sortingLayerName = sortingLayerName; meshRenderer.sortingLayerID = sortingLayerID; meshRenderer.sortingOrder = sortingOrder; } } else { texture = spriteRenderer.sprite.texture; color = spriteRenderer.color; scale = new Vector2(spriteRenderer.sprite.rect.width / spriteRenderer.sprite.pixelsPerUnit, spriteRenderer.sprite.rect.height / spriteRenderer.sprite.pixelsPerUnit); sortingLayerID = spriteRenderer.sortingLayerID; sortingLayerName = spriteRenderer.sortingLayerName; sortingOrder = spriteRenderer.sortingOrder; Destroy(spriteRenderer); } } }