Exemplo n.º 1
0
    /**
     *  when clicked on itemBG (a button) it calls this function and passes itself as parameter
     *
     */
    public void setItemSelected(GameObject itemBG)
    {
        Button bgBtn = itemBG.GetComponent <Button>();

        bgBtn.Select();

        Color col = itemBG.GetComponent <Image>().color;

        col.a = 230;
        itemBG.GetComponent <Image>().color = col; //"selected highlight"

        string id = itemBG.GetComponent <identifier>().id;

        if (prevSelected != null)
        {
            string prevId = prevSelected.GetComponent <identifier>().id;

            if (id != prevId)
            {
                Color c = prevSelected.GetComponent <Image>().color;
                c.a = 0.5f;
                prevSelected.GetComponent <Image>().color = c; //"selected highlight"
            }
        }

        prevSelected = itemBG;


        if (itemBG.transform.childCount > 0)
        {
            GameObject item      = itemBG.transform.GetChild(0).gameObject; //the only child is the item itself
            ItemBehav  itemBehav = item.GetComponent <ItemBehav>();
            itemName.text        = itemBehav.itemName;
            itemDescription.text = itemBehav.description;
            float s = item.GetComponent <ItemBehav>().sizeScale;
            selectedItem.GetComponent <RectTransform>().localScale = new Vector3(s, s, s) * (backpack.fullScreenMode? 2:1);
            selectedItem.GetComponent <SpriteRenderer>().sprite    = item.GetComponent <SpriteRenderer>().sprite;
        }
        else   //empty bg
        {
            itemName.text        = "";
            itemDescription.text = "";
            selectedItem.GetComponent <SpriteRenderer>().sprite = null;
        }
    }
Exemplo n.º 2
0
    /** this function should only be called by ItemSpawner, as it deals with base level data
     *
     *  returns instance of instantiated item based on what type it is
     */
    public GameObject getItemInstance(int eCode)
    {
        GameObject i = null;

        switch (itemType[eCode])
        {
        case 0:     //inanimate
            if (itemMold == null)
            {
                Debug.LogError("itemMold is null... Can't create item instance");
                return(null);
            }
            i = Instantiate(itemMold) as GameObject;     //duplicate

            SpriteRenderer sr = i.GetComponent <SpriteRenderer>();
            sr.sprite = S0_SPRITE[eCode];

            ItemBehav item = i.GetComponent <ItemBehav>();
            item.itemName    = itemName[eCode];
            item.description = itemDescriptions[eCode];
            item.setSizeScale(sizeScale[eCode]);     //what we need is the setting of sizeScale variable here
            item.setType(itemType[eCode]);
            //TODO

            break;

        case 1:     //items that have an animator & will use animations
            if (inGameItemMold == null)
            {
                Debug.LogError("(in-game)itemMold is null... Can't create item instance");
                return(null);
            }

            i = Instantiate(inGameItemMold) as GameObject;     //duplicate
            Animator animator = i.GetComponent <Animator>();

            AnimatorOverrideController animatorOverrideController = new AnimatorOverrideController(animator.runtimeAnimatorController);

            if (S0_ANIM[eCode] != null)
            {
                animatorOverrideController["State0anim"] = S0_ANIM[eCode];
            }

            if (S1_ANIM[eCode] != null)
            {
                animatorOverrideController["State1anim"] = S1_ANIM[eCode];
            }

            if (S2_ANIM[eCode] != null)
            {
                animatorOverrideController["State2anim"] = S2_ANIM[eCode];
            }

            animator.runtimeAnimatorController = animatorOverrideController;
            animator.Update(0.0f);

            ItemBehav itemG = i.GetComponent <ItemBehav>();
            itemG.itemName = itemName[eCode];
            itemG.setSizeScale(sizeScale[eCode]);
            itemG.setColliderScale(colliderScale[eCode]);
            itemG.setType(itemType[eCode]);
            //TODO movement

            break;

        default:
            Debug.LogError("can't find itemType: " + itemType[eCode]);
            break;
        }



        return(i);
    }