private void OnCollisionEnter(Collision other)
        {
            if (!callEventOnCollision)
            {
                return;
            }

            var entity = other.collider.GetComponent <IEntity>();

            if (entity != null)
            {
                var param = MetaObject.Get <string>("target");
                if (entity.GetEntityTypes().Any(t => t == param) || param == "any")
                {
                    if (SpellieEvent.logEnabled)
                    {
                        Debug.Log("[SpellieEvent] onHit (Collision): " + other.collider.name);
                    }
                    sourceElement.GetEvent("onHit").InvokeAll(this, caster, entity);
                    Pierce();
                }
            }
            else
            {
                if (!((MetaObject)sourceElement).Get <bool>("ghost"))
                {
                    Destroy(gameObject);
                }
            }
        }
示例#2
0
        private void OnEnable()
        {
            // Register this object
            SpellieSingleton.Instance.spawnedObjects.Add(this);
            var objTransform = transform;

            // Process object variables
            try
            {
                useGlobalPosition = MetaObject.Get <bool>("use_global");
            }
            catch
            {
                useGlobalPosition = false;
            }

            _currentRotation = objTransform.rotation;
            _currentScale    = objTransform.localScale;
        }