public override void execute()
    {
        Character character = mReceiver as Character;

        if (!character.isType(CHARACTER_TYPE.CT_OTHER))
        {
            return;
        }
        if (character.isType(CHARACTER_TYPE.CT_MYSELF))
        {
            if (mTarget == null)
            {
                Vector2 screenPos = UnityUtility.worldPosToScreenPos(character.getWorldPosition() + GameDefine.AIM_OFFSET);
                mScriptAiming.setAiming(screenPos, mScriptAiming.getOriginHeight(), false);
            }
            else
            {
                Vector2 screenPos     = UnityUtility.worldPosToScreenPos(mTarget.getWorldPosition());
                Vector2 screenPosHead = UnityUtility.worldPosToScreenPos(mTarget.getWorldPosition() + GameDefine.AIM_OFFSET);
                float   distance      = MathUtility.getLength(screenPosHead - screenPos);
                if (distance < mScriptAiming.getOriginHeight() / 2)
                {
                    distance = mScriptAiming.getOriginHeight() / 2;
                }
                mScriptAiming.setAiming((screenPos + screenPosHead) / 2.0f, distance, true);
            }
        }
    }