예제 #1
0
        public override void OnFixedUpdate()
        {
            if (Menu.IsPaused)
            {
                return;
            }

            if (isHeld)
            {
                Transform.Position = target.Position + Direction + Vector2.Up * .1;
            }
            else
            {
                lifeTime            -= Render.Delta;
                activateGravityTime -= Render.Delta;


                if (lifeTime <= 0)
                {
                    GameObject.Destroy();
                    return;
                }

                // Follow target and direction
                Transform.Position += direction * 0.8;


                if (activateGravityTime < 0)
                {
                    direction.y -= .06;
                }
            }

            foreach (var collision in collider.OverlapAll(Transform.Position))
            {
                if (collision.transform == target)
                {
                    return;
                }

                var blade  = collision.gameobject.GetComponent <Blade>();
                var player = collision.gameobject.GetComponent <Character>();

                if (blade == true || player == true)
                {
                    if (blade)
                    {
                        blade.GameObject.Destroy();
                    }
                    if (player)
                    {
                        player.GameObject.Destroy();
                    }

                    GameObject.Destroy();
                }
                else if (!isHeld)
                {
                    GameObject.Destroy();
                }
            }
        }