private void OnCollisionBarrier( A_Collider target )
    {
        if( target.Type != A_Collider.EType.Barrier )
        {
            return;
        }

        ReferenceManager.GameManager.AddGameLevelExperienceFromEnemyShot();
        refEnemyShot.Explosion();
    }
    public float GetDamage( A_Collider target )
    {
        if( target.Type == A_Collider.EType.PlayerShot )
        {
            if( DebugManager.IsInsanelyForce )
            {
                return 99999;
            }
            return (target as PlayerShotCollider).power * damageRate;
        }

        return 0;
    }
    public override void OnCollision(A_Collider target)
    {
        if( target.Type == A_Collider.EType.Player )
        {
            target.Hit( this );
        }

        if( target.Type == A_Collider.EType.PlayerShot )
        {
            var playerShot = target as PlayerShotCollider;
            if( playerShot.IsEnemyCollision )
            {
                return;
            }
        }

        float damage = GetDamage( target );
        refEnemyControllerBaseList.ForEach( (obj) =>
        {
            obj.TakeDamage( damage );
        });
    }
 public override void OnCollision(A_Collider target)
 {
 }
    private void OnCollisionPlayer( A_Collider target )
    {
        if( this.radius <= 0.0f || target.Type != EType.Player )
        {
            return;
        }

        if( collisionType == CollisionType.Graze )
        {
            this.radius = this.cachedRadius;
            collisionType = CollisionType.Miss;

        //			var sub = this.cachedTransform.position - target.cachedTransform.position;
        //			float distance = sub.x * sub.x + sub.y * sub.y + sub.z * sub.z;
        //			float radius = this.radius * this.radius + target.radius * target.radius;
        //
        //			if( distance < radius )
        //			{
        //				this.InternalHit( target );
        //			}

            ReferenceManager.RefPlayerStatusManager.Graze( Trans );
            ReferenceManager.refScoreManager.CreateStarItem( Trans.position );
            GameManager.AddGrazeCount();
        }
        else
        {
            this.InternalHit( target );
        }
    }
 public override void OnCollision(A_Collider target)
 {
     OnCollisionBarrier( target );
     OnCollisionPlayer( target );
 }
 private void InternalHit( A_Collider target )
 {
     target.Hit( this );
     refEnemyShot.Explosion();
 }
 public override void Hit(A_Collider target)
 {
     base.Hit (target);
     refPlayer.Miss();
 }
 public override void OnCollision(A_Collider target)
 {
     collisionFunc();
 }
 public abstract void OnCollision( A_Collider target );
 public virtual void Hit( A_Collider target )
 {
 }
    public override void OnCollision(A_Collider target)
    {
        if( !isCollisionDead )	return;

        ObjectPool.Instance.GetGameObject( prefabExplosion, refParent.transform.position, prefabExplosion.transform.rotation );
        Destroy( refParent );
        SendMessage( CollisionMessage, SendMessageOptions.DontRequireReceiver );
        isEnemyCollision = true;
    }