0
votes

Im using Inventory system by Brackeys here, then i try to custom an equipment object just like the documentation says. I need that item enable Renderer Sprites component when object drag to weapon holder (inventory), and disable Renderer Sprites when object drag out from weapon holder. I'm implementation GetComponent(SpriteRenderer).enabled = true; for activating Renderer Sprites and GetComponent(SpriteRenderer).enabled = false; to disable, but the script seems don't work, when the object drag out from inventory, Renderer Sprites Component still active. here the part of script for enable/disable Renderer Sprites

#pragma strict

//This script allows you to create equipment effects that will be called either OnEquip or WhileEquipped. This is usefull for magic effects and stat handling.

@script AddComponentMenu ("Inventory/Items/Equipment Effect")
@script RequireComponent(Item)

private var effectActive = false;

function Update () 
{
    if (effectActive == true)
    {
       //-----> THIS IS WHERE YOU INSERT CODE YOU WANT TO EXECUTE AS LONG AS THE ITEM IS EQUIPPED. <-----


    }
}

function EquipmentEffectToggle (effectIs : boolean)
{
    if (effectIs == true)
    {
       effectActive = true;

       Debug.LogWarning("Remember to insert code for the EquipmentEffect script you have attached to " + transform.name + ".");

       //-----> THIS IS WHERE YOU INSERT CODE YOU WANT TO EXECUTE JUST WHEN THE ITEM IS EQUIPPED. <-----

         GetComponent(SpriteRenderer).enabled = true;




    }
    else
    {
       effectActive = false;

       //-----> THIS IS WHERE YOU INSERT CODE YOU WANT TO EXECUTE JUST WHEN THE ITEM IS UNEQUIPPED. <-----

         GetComponent(SpriteRenderer).enabled = false;

       //Destroy(gameObject);

    }
}

is it correct implementation ? what should i do ?

1
if you're still there, pls delete this question, cheersFattie

1 Answers

0
votes

you should read up on collisions and triggers....have them toggle the renderer enabled or disabled in the script.or better yet have the inventories do that....i don't think it's very efficient they way you're trying.

i.e. set the inventories as Triggers and have OnTriggerEnter(collider col) do col.gameObject.GetComponent().enabled = true;

and OnTriggerExit(collider col) do col.gameObject.GetComponent().enabled = false;

if you're using Unity's 2D components then it's OnTriggerEnter2D(Collider2D col) and so on..... this is just an example and far from 100% fullproof code.just a nudge towards a possible way.you probably need to set some more things.