private void OnTriggerStay(Collider collider)
        {
            if (IsCatched)
            {
                return;
            }

            _objIi = collider.GetComponent <IInteraction>();

            if (_objIi != null && _objIi.IsRaised)
            {
                IsCatched             = true;
                _objColider           = collider.GetComponent <BoxCollider>();
                _objColider.isTrigger = true;

                _objCanCollect = collider.GetComponent <ICanCollect>();
                if (ObjCanCollect)
                {
                    var player = transform.GetComponentInParent <CharacterController>();
                    transform.position = player.transform.position;
                }
                else
                {
                    ServiceLocator.Resolve <WeaponController>().Off();
                    ServiceLocator.Resolve <PocketPCController>().Off();
                }
                _objRb          = collider.GetComponent <Rigidbody>();
                _objRb.velocity = default;
                _objTr          = collider.transform;
                _objTr.SetParent(gameObject.transform);
            }
        }
Exemple #2
0
 /// <summary>
 /// Kijkt of we een collectable hebben aangeraakt met een object dat een collectable kan collecteren
 /// </summary>
 /// <param name="collideObjects">Lijst met alle objecten waar we mee kunnen colliden</param>
 /// <param name="canCollectObject">object dat kan colliden en beweegt</param>
 private static void DetectCollectable(List <ICollide> collideObjects, ICanCollect canCollectObject)
 {
     foreach (ICollectable collectable in collideObjects.OfType <ICollectable>().ToList())
     {
         if (canCollectObject is ICanCollect && canCollectObject.CollisionRectangle.Intersects(collectable.CollisionRectangle))
         {
             collectable.IsCollected = true;
             canCollectObject.HasTouchedCollectable = true;
             collideObjects.Remove(collectable);
         }
     }
 }