Exemple #1
0
        public Node <INode> GetNode(string nodeName)
        {
            switch (nodeName)
            {
            case AddForce.NAME:
                INode nodeAddForce = new AddForce() as INode;
                return(new Node <INode> (nodeAddForce));

            case AddTorque.NAME:
                INode nodeAddTorque = new AddTorque() as INode;
                return(new Node <INode> (nodeAddTorque));

            case RigidBody.NAME:
                INode nodeRigidBody = new RigidBody() as INode;
                return(new Node <INode> (nodeRigidBody));

            case Velocity.NAME:
                INode nodeVelocity = new Velocity() as INode;
                return(new Node <INode> (nodeVelocity));

            case CollisionEnter.NAME:
                INode nodeCollisionEnter = new CollisionEnter() as INode;
                return(new Node <INode> (nodeCollisionEnter));

            case CollisionStay.NAME:
                INode nodeCollisionStay = new CollisionStay() as INode;
                return(new Node <INode> (nodeCollisionStay));

            case CollisionExit.NAME:
                INode nodeCollisionExit = new CollisionExit() as INode;
                return(new Node <INode> (nodeCollisionExit));

            case FixedUpdate.NAME:
                INode nodeFixedUpdate = new FixedUpdate() as INode;
                return(new Node <INode> (nodeFixedUpdate));

            case AddImpulseForce.NAME:
                INode nodeImpulse = new AddImpulseForce() as INode;
                return(new Node <INode> (nodeImpulse));

            case Character.NAME:
                var nodeCharacter = new Character() as INode;
                return(new Node <INode> (nodeCharacter));

            case CharacterForward.NAME:
                var nodeCharacterForward = new CharacterForward() as INode;
                return(new Node <INode> (nodeCharacterForward));

            case CameraRaycast.NAME:
                var nodeCameraRayCast = new CameraRaycast() as INode;
                return(new Node <INode> (nodeCameraRayCast));

            case AddImpulseTorque.NAME:
                var nodeAddImpulseTorque = new AddImpulseTorque() as INode;
                return(new Node <INode>(nodeAddImpulseTorque));

            default:
                return(null);
            }
        }
Exemple #2
0
        private void OnTriggerExit2D(Collider2D other)
        {
            var source = other.gameObject.GetComponent <ISource>();

            if (source != null)
            {
                CollisionExit.SafeRaise(this, new EventArgsGeneric <ISource>(source));
            }
        }
Exemple #3
0
        internal void OnCollisionExit(Collision collision)
        {
            CollisionExit?.Invoke(collision);

            var rigidbody = AttachedRigidBody;

            if (rigidbody)
            {
                rigidbody.OnCollisionExit(collision);
            }
        }
Exemple #4
0
 private void OnCollisionExit(Collision other)
 {
     foreach (var tag in tagsToCompare)
     {
         if (other.gameObject.CompareTag(tag) && objCollided == other.gameObject)
         {
             collidedWith = false;
             CollisionExit.Invoke();
         }
     }
 }
 /// <summary>
 /// Notifies one entitiy listenning onExitCollision event
 /// It will only invoke collision events in the entity that
 /// is involved in that specific collision
 /// Usefull for when only one side of the collision needs to be notified
 /// If there are no listeeners correspoding to that index, nothing happens
 /// </summary>
 /// <param name="index">index of the entity to signal. Index in the Delegate[] is the same in the links list</param>
 /// <param name="collidable">collider that collided with that entity</param>
 void NotifyOnCollisionExit(int index, ICollidable collidable)
 {
     if (CollisionExit != null)
     {
         Delegate[] list = CollisionExit.GetInvocationList();
         //Check if the index of the entity is valid
         if (index < list.Length && index > -1)
         {
             Collision collision = new Collision();
             collision.other = collidable;
             list[index].DynamicInvoke(collision);
         }
     }
 }
Exemple #6
0
        public void OnCollisionExit(CollisionInfo collisionInfo)
        {
            if (!(collisionInfo.Body.GetUserData() is ISceneObject hittedSceneObject))
            {
                LogUtils.Log(MessageBuilder.Trace("Could not get data from a body."));
                return;
            }

            if (hittedSceneObjects.ContainsKey(hittedSceneObject.Id))
            {
                hittedSceneObjects.Remove(hittedSceneObject.Id);
                CollisionExit?.Invoke(collisionInfo, hittedSceneObject);
            }
        }
Exemple #7
0
 internal void Collision(Collider2D other, CollisionPairState state, HitState hitState)
 {
     if (state.enter)
     {
         CollisionEnter?.Invoke(other, hitState);
     }
     if (state.stay)
     {
         CollisionStay?.Invoke(other, hitState);
     }
     if (state.exit)
     {
         CollisionExit?.Invoke(other, hitState);
     }
 }
Exemple #8
0
 internal void OnCollisionExit(Collision collision)
 {
     CollisionExit?.Invoke(collision);
 }
Exemple #9
0
 private void OnCollisionExit(Collision other) => CollisionExit?.Invoke(other);
Exemple #10
0
 protected void CollisionExitInvoke() => CollisionExit?.Invoke();
Exemple #11
0
 private void OnCollisionExit(Collision collisionInfo)
 {
     Debug.Log("COLLIDING EXIT");
     CollisionExit?.Invoke(this, collisionInfo);
 }
 private void OnCollisionExit(Collision collision)
 {
     CollisionExit?.Invoke(this, new CollisionEventArgs(collision));
 }
Exemple #13
0
 void OnCollisionExit(Collision collision) =>
 CollisionExit?.Invoke(collision);
Exemple #14
0
 private void OnCollisionExit(Collision collision)
 {
     CollisionExit?.Invoke(gameObject, collision);
 }