private void Update()
 {
     if (pickupItem != null && Input.GetKeyDown(KeyCode.LeftControl))
     {
         pickupItem.Use(this);
         pickupItem = null;
     }
 }
    private void OnTriggerEnter(Collider other)
    {
        if (pickupItem != null)
        {
            return;
        }

        if (other.gameObject.GetComponent <IPickupComponent>() != null)
        {
            pickupItem = other.gameObject.GetComponent <IPickupComponent>().Pickup();
            Destroy(other.gameObject.GetComponent <Renderer>());
        }
    }
Example #3
0
        //---------------------------------------------------------------------------

        public static Pickup Create(EPickups pickupType, Vector3 location, Vector3 force)
        {
            Pickup pickup = Create(pickupType.ToString(), location, force);

            IPickupComponent pickupComponent = null;

            Sprite sprite = m_Sprites[pickupType];

            pickup.AddComponent <SpriteComponent>().Init(sprite, Vector2.Zero, Vector2.One * 2);
            pickup.AddComponent <ShadowComponent>().Init(sprite, Vector2.One * 2, new Vector2(0, 3));
            pickup.AddComponent <LightingComponent>().Init(sprite, Vector2.Zero, Vector2.One * 2, Color.White, 0.5f);

            switch (pickupType)
            {
            case EPickups.Health:
                pickupComponent = pickup.AddComponent <HealthPickupComponent>();
                break;

            case EPickups.Mana:
                pickupComponent = pickup.AddComponent <ManaPickupComponent>();
                break;

            case EPickups.Coin:
                pickupComponent = pickup.AddComponent <CoinPickupComponent>();
                break;

            default:
                AssertManager.Get().Show("Value used by 'Create' does not fit range of EPickups");
                break;
            }

            if (pickupComponent != null)
            {
                pickup.GetComponent <CircleColliderComponent>().Enter += (source, target) =>
                {
                    pickupComponent.OnPickup(target);
                };
            }

            return(pickup);
        }