Example #1
0
    private void SwitchTexture(Transform tf = null)
    {
        var spriteRenderer = GetComponent <SpriteRenderer>();

        spriteRenderer.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f);
        spriteRenderer.transform.rotation   = Quaternion.Euler(Vector3.forward);
        if (AssignedPart == null)
        {
            return;
        }

        var partDetails = GuiHelpers.GetPartTypeDetails(AssignedPart.VisualType);
        var sprite      = Resources.Load <Sprite>(AttachedToBody ? partDetails.AssetName : partDetails.BeltAssetName);

        spriteRenderer.sprite = sprite;
        Vector3 parentScale = Vector3.one;

        if (tf != null)
        {
            spriteRenderer.transform.localScale = new Vector3(!AttachedToBody ? partDetails.SizeModifier * tf.localScale.x : 0.3f, !AttachedToBody ? partDetails.SizeModifier * tf.localScale.y : 0.3f, 1.0f);
        }
        else
        {
            spriteRenderer.transform.localScale = new Vector3(!AttachedToBody ? partDetails.SizeModifier : 0.3f, !AttachedToBody ? partDetails.SizeModifier : 0.3f, 1.0f);
        }

        if (HasCollider)
        {
            Destroy(GetComponent <PolygonCollider2D>());
            gameObject.AddComponent <PolygonCollider2D>();
        }
    }
    public void Display(List <Part> loot)
    {
        foreach (Transform child in transform)
        {
            Destroy(child.gameObject);
        }
        this.parts = loot;
        foreach (var part in parts)
        {
            var partVisual = new GameObject();
            partVisual.transform.parent = transform;

            var cr          = partVisual.AddComponent <CanvasRenderer>();
            var rect        = partVisual.AddComponent <RectTransform>();
            var img         = partVisual.AddComponent <Image>();
            var partDetails = GuiHelpers.GetPartTypeDetails(part.VisualType);
            img.sprite = Resources.Load <Sprite>(partDetails.AssetName);
            img.transform.localScale = new Vector3(partDetails.SizeModifier, partDetails.SizeModifier, 1.0f);
            img.transform.rotation   = Quaternion.Euler(Vector3.forward * partDetails.RotationEuler);
        }
    }