private static CGSize getAdjustedAdSize(CGSize originalSize, bool sizeAdjust, IMobileSdkAdsUnityPlugin.AdType adType)
		{
			if (!sizeAdjust) {
				return originalSize;
			}

			int screenWidth = 0;
			int screenHeight = 0;
			
			#if UNITY_IPHONE && !UNITY_EDITOR
			screenWidth = getScreenWidth_(isScreenPortrait());
			screenHeight = getScreenHeight_(isScreenPortrait());
			#elif UNITY_ANDROID && !UNITY_EDITOR
			screenWidth = getDensitySize (Screen.width);
			screenHeight = getDensitySize (Screen.height);
			#endif

			screenWidth = Math.Min (screenWidth, screenHeight);
			int adjustedWidth = (adType == IMobileSdkAdsUnityPlugin.AdType.MEDIUM_RECTANGLE) ? screenWidth - 20 : screenWidth; 
			int adjustedHeight = (int)Math.Round(originalSize.height * (double)adjustedWidth / (double)originalSize.width);

			return new CGSize (adjustedWidth, adjustedHeight);
		}
		private static CGSize getAdSize(IMobileSdkAdsUnityPlugin.AdType adType, IMobileIconParams iconParams, bool sizeAdjust)
		{
			CGSize adSize = new CGSize();

			switch (adType) {
			case IMobileSdkAdsUnityPlugin.AdType.BANNER:
				adSize = getAdjustedAdSize(new CGSize(320, 50), sizeAdjust, IMobileSdkAdsUnityPlugin.AdType.BANNER);
				break;
			case IMobileSdkAdsUnityPlugin.AdType.BIG_BANNER:
				adSize = getAdjustedAdSize(new CGSize(320, 100), sizeAdjust, IMobileSdkAdsUnityPlugin.AdType.BIG_BANNER);
				break;
			case IMobileSdkAdsUnityPlugin.AdType.TABLET_BANNER:
				adSize = new CGSize(468, 60);
				break;
			case IMobileSdkAdsUnityPlugin.AdType.TABLET_BIG_BANNER:
				adSize = new CGSize(728, 90);
				break;
			case IMobileSdkAdsUnityPlugin.AdType.MEDIUM_RECTANGLE:
				adSize = getAdjustedAdSize(new CGSize(300, 250), sizeAdjust, IMobileSdkAdsUnityPlugin.AdType.MEDIUM_RECTANGLE);
				break;
			case IMobileSdkAdsUnityPlugin.AdType.BIG_RECTANGLE:
				adSize = new CGSize(336, 280);
				break;
			case IMobileSdkAdsUnityPlugin.AdType.SKYSCRAPER:
				adSize = new CGSize(120, 600);
				break;
			case IMobileSdkAdsUnityPlugin.AdType.WIDE_SKYSCRAPER:
				adSize = new CGSize(160, 600);
				break;
			case IMobileSdkAdsUnityPlugin.AdType.SQUARE:
				adSize = new CGSize(250, 250);
				break;
			case IMobileSdkAdsUnityPlugin.AdType.SMALL_SQUARE:
				adSize = new CGSize(200, 200);
				break;
			case IMobileSdkAdsUnityPlugin.AdType.HALFPAGE:
				adSize = new CGSize(300, 600);
				break;
			case IMobileSdkAdsUnityPlugin.AdType.ICON:

				#if !UNITY_EDITOR
				int iconDefaultWidth = 57;			// アイコン1つあたりのデフォルトサイズ
				int iconMinimumWidth = 47;			// アイコン1つあたりの最小サイズ
				int iconDefaultMargin = 18;			// デフォルトアイコン間隔
				int iconMinimumMargin = 4;			// 最小アイコン間隔
				int iconAdTitleReserveSpace = 3;    // タイトル表示エリアの予備マージン

				// アイコン広告の表示サイズをアイコンパラメータから計算して求める
				int iconAdWidth = 0;
				int iconAdHeight = 0;

				// スクリーンの論理サイズを取得
				int screenWidth = 0;
				int screenHeight = 0;
				#endif

				#if UNITY_IPHONE && !UNITY_EDITOR
				screenWidth = getScreenWidth_(isScreenPortrait());
				screenHeight = getScreenHeight_(isScreenPortrait());

				// 幅を計算する
				if (iconParams.iconViewLayoutWidth > 0) {
					iconAdWidth = iconParams.iconViewLayoutWidth;
				} else {
					int iconWidth = (iconParams.iconSize > 0) ? Math.Max(iconParams.iconSize, iconMinimumWidth) : iconDefaultWidth;
					iconAdWidth =  (iconWidth + iconDefaultMargin) * 1;
				}
				
				// 高さを計算する
				// アイコン一つあたりの幅を計算
				int iconImageWidth = 0;
				if (iconParams.iconSize > 0) {
					iconImageWidth  = Math.Max(iconParams.iconSize, iconMinimumWidth);
				} else {
					if (iconAdWidth >= (iconDefaultWidth + iconDefaultMargin) * 1) {
						iconImageWidth = iconDefaultWidth;
					} else {
						iconImageWidth = iconMinimumWidth;
					}
				}
				
				// アイコンの表示間隔を取得(アイコン広告の表示サイス - アイコン一つあたりの幅 * アイコンの数) / アイコンの数 の結果と最低マージンとの比較で大きい方をマージンとして設定
				int iconImageMargin = Math.Max((int)Math.Ceiling((double)(iconAdWidth - iconImageWidth * 1) / 1) , iconMinimumMargin);

				#elif UNITY_ANDROID && !UNITY_EDITOR
				screenWidth = getDensitySize (Screen.width);
				screenHeight = getDensitySize (Screen.height);

				// 幅を計算する
				if (iconParams.iconViewLayoutWidth > 0) {
					iconAdWidth = iconParams.iconViewLayoutWidth;
				} else {
					if (iconParams.iconNumber < 4) {
						int iconWidth = (iconParams.iconSize > 0) ? Math.Max(iconParams.iconSize, iconMinimumWidth) : iconDefaultWidth;
						iconAdWidth =  (iconWidth + iconDefaultMargin) * iconParams.iconNumber;
					} else {
						iconAdWidth =  Math.Min(screenWidth, screenHeight);
					}
				}
				
				// 高さを計算する
				// アイコン一つあたりの幅を計算
				int iconImageWidth = 0;
				if (iconParams.iconSize > 0) {
					iconImageWidth  = Math.Max(iconParams.iconSize, iconMinimumWidth);
				} else {
					if (iconAdWidth >= (iconDefaultWidth + iconDefaultMargin) * iconParams.iconNumber) {
						iconImageWidth = iconDefaultWidth;
					} else {
						iconImageWidth = iconMinimumWidth;
					}
				}
				
				// アイコンの表示間隔を取得(アイコン広告の表示サイス - アイコン一つあたりの幅 * アイコンの数) / アイコンの数 の結果と最低マージンとの比較で大きい方をマージンとして設定
				int iconImageMargin = Math.Max((int)Math.Ceiling((double)(iconAdWidth - iconImageWidth * iconParams.iconNumber) / iconParams.iconNumber) , iconMinimumMargin);
				#endif


				#if !UNITY_EDITOR
				// 高さの取得
				if (!iconParams.iconTitleEnable) {
					iconAdHeight = iconImageWidth;
				} else {
					int iconTitleOffset = (iconParams.iconTitleOffset > 0) ? iconParams.iconTitleOffset : 4;
					int iconTitleFontSize = (iconParams.iconTitleFontSize > 0) ? Math.Max(iconParams.iconTitleFontSize, 8) : 10;
					int iconTitleShadowDy = (iconParams.iconTitleShadowEnable) ? iconParams.iconTitleShadowDy : 0;
					
					// タイトルが一行に収まるか計算
					if ((iconImageWidth + iconImageMargin) >= (iconDefaultWidth + iconDefaultMargin / 2)) {
						iconAdHeight = iconImageWidth + iconTitleOffset + iconTitleFontSize + iconTitleShadowDy + iconAdTitleReserveSpace;
					} else {
						iconAdHeight = iconImageWidth + iconTitleOffset + iconTitleFontSize * 2 + iconTitleShadowDy + iconAdTitleReserveSpace;
					}
				}
				adSize = new CGSize(iconAdWidth, iconAdHeight);
				#endif
				break;
			}
			return adSize;
		}
Beispiel #3
0
        private static CGSize getAdSize(IMobileSdkAdsUnityPlugin.AdType adType, IMobileIconParams iconParams, bool sizeAdjust)
        {
            CGSize adSize = new CGSize();

            switch (adType)
            {
            case IMobileSdkAdsUnityPlugin.AdType.BANNER:
                adSize = getAdjustedAdSize(new CGSize(320, 50), sizeAdjust, IMobileSdkAdsUnityPlugin.AdType.BANNER);
                break;

            case IMobileSdkAdsUnityPlugin.AdType.BIG_BANNER:
                adSize = getAdjustedAdSize(new CGSize(320, 100), sizeAdjust, IMobileSdkAdsUnityPlugin.AdType.BIG_BANNER);
                break;

            case IMobileSdkAdsUnityPlugin.AdType.TABLET_BANNER:
                adSize = new CGSize(468, 60);
                break;

            case IMobileSdkAdsUnityPlugin.AdType.TABLET_BIG_BANNER:
                adSize = new CGSize(728, 90);
                break;

            case IMobileSdkAdsUnityPlugin.AdType.MEDIUM_RECTANGLE:
                adSize = getAdjustedAdSize(new CGSize(300, 250), sizeAdjust, IMobileSdkAdsUnityPlugin.AdType.MEDIUM_RECTANGLE);
                break;

            case IMobileSdkAdsUnityPlugin.AdType.BIG_RECTANGLE:
                adSize = new CGSize(336, 280);
                break;

            case IMobileSdkAdsUnityPlugin.AdType.SKYSCRAPER:
                adSize = new CGSize(120, 600);
                break;

            case IMobileSdkAdsUnityPlugin.AdType.WIDE_SKYSCRAPER:
                adSize = new CGSize(160, 600);
                break;

            case IMobileSdkAdsUnityPlugin.AdType.SQUARE:
                adSize = new CGSize(250, 250);
                break;

            case IMobileSdkAdsUnityPlugin.AdType.SMALL_SQUARE:
                adSize = new CGSize(200, 200);
                break;

            case IMobileSdkAdsUnityPlugin.AdType.HALFPAGE:
                adSize = new CGSize(300, 600);
                break;

            case IMobileSdkAdsUnityPlugin.AdType.ICON:

                                #if !UNITY_EDITOR
                int iconDefaultWidth        = 57;                   // アイコン1つあたりのデフォルトサイズ
                int iconMinimumWidth        = 47;                   // アイコン1つあたりの最小サイズ
                int iconDefaultMargin       = 18;                   // デフォルトアイコン間隔
                int iconMinimumMargin       = 4;                    // 最小アイコン間隔
                int iconAdTitleReserveSpace = 3;                    // タイトル表示エリアの予備マージン

                // アイコン広告の表示サイズをアイコンパラメータから計算して求める
                int iconAdWidth  = 0;
                int iconAdHeight = 0;

                // スクリーンの論理サイズを取得
                int screenWidth  = 0;
                int screenHeight = 0;
                                #endif

                                #if UNITY_IPHONE && !UNITY_EDITOR
                screenWidth  = getScreenWidth_(isScreenPortrait());
                screenHeight = getScreenHeight_(isScreenPortrait());

                // 幅を計算する
                if (iconParams.iconViewLayoutWidth > 0)
                {
                    iconAdWidth = iconParams.iconViewLayoutWidth;
                }
                else
                {
                    int iconWidth = (iconParams.iconSize > 0) ? Math.Max(iconParams.iconSize, iconMinimumWidth) : iconDefaultWidth;
                    iconAdWidth = (iconWidth + iconDefaultMargin) * 1;
                }

                // 高さを計算する
                // アイコン一つあたりの幅を計算
                int iconImageWidth = 0;
                if (iconParams.iconSize > 0)
                {
                    iconImageWidth = Math.Max(iconParams.iconSize, iconMinimumWidth);
                }
                else
                {
                    if (iconAdWidth >= (iconDefaultWidth + iconDefaultMargin) * 1)
                    {
                        iconImageWidth = iconDefaultWidth;
                    }
                    else
                    {
                        iconImageWidth = iconMinimumWidth;
                    }
                }

                // アイコンの表示間隔を取得(アイコン広告の表示サイス - アイコン一つあたりの幅 * アイコンの数) / アイコンの数 の結果と最低マージンとの比較で大きい方をマージンとして設定
                int iconImageMargin = Math.Max((int)Math.Ceiling((double)(iconAdWidth - iconImageWidth * 1) / 1), iconMinimumMargin);
                                #elif UNITY_ANDROID && !UNITY_EDITOR
                screenWidth  = getDensitySize(Screen.width);
                screenHeight = getDensitySize(Screen.height);

                // 幅を計算する
                if (iconParams.iconViewLayoutWidth > 0)
                {
                    iconAdWidth = iconParams.iconViewLayoutWidth;
                }
                else
                {
                    if (iconParams.iconNumber < 4)
                    {
                        int iconWidth = (iconParams.iconSize > 0) ? Math.Max(iconParams.iconSize, iconMinimumWidth) : iconDefaultWidth;
                        iconAdWidth = (iconWidth + iconDefaultMargin) * iconParams.iconNumber;
                    }
                    else
                    {
                        iconAdWidth = Math.Min(screenWidth, screenHeight);
                    }
                }

                // 高さを計算する
                // アイコン一つあたりの幅を計算
                int iconImageWidth = 0;
                if (iconParams.iconSize > 0)
                {
                    iconImageWidth = Math.Max(iconParams.iconSize, iconMinimumWidth);
                }
                else
                {
                    if (iconAdWidth >= (iconDefaultWidth + iconDefaultMargin) * iconParams.iconNumber)
                    {
                        iconImageWidth = iconDefaultWidth;
                    }
                    else
                    {
                        iconImageWidth = iconMinimumWidth;
                    }
                }

                // アイコンの表示間隔を取得(アイコン広告の表示サイス - アイコン一つあたりの幅 * アイコンの数) / アイコンの数 の結果と最低マージンとの比較で大きい方をマージンとして設定
                int iconImageMargin = Math.Max((int)Math.Ceiling((double)(iconAdWidth - iconImageWidth * iconParams.iconNumber) / iconParams.iconNumber), iconMinimumMargin);
                                #endif


                                #if !UNITY_EDITOR
                // 高さの取得
                if (!iconParams.iconTitleEnable)
                {
                    iconAdHeight = iconImageWidth;
                }
                else
                {
                    int iconTitleOffset   = (iconParams.iconTitleOffset > 0) ? iconParams.iconTitleOffset : 4;
                    int iconTitleFontSize = (iconParams.iconTitleFontSize > 0) ? Math.Max(iconParams.iconTitleFontSize, 8) : 10;
                    int iconTitleShadowDy = (iconParams.iconTitleShadowEnable) ? iconParams.iconTitleShadowDy : 0;

                    // タイトルが一行に収まるか計算
                    if ((iconImageWidth + iconImageMargin) >= (iconDefaultWidth + iconDefaultMargin / 2))
                    {
                        iconAdHeight = iconImageWidth + iconTitleOffset + iconTitleFontSize + iconTitleShadowDy + iconAdTitleReserveSpace;
                    }
                    else
                    {
                        iconAdHeight = iconImageWidth + iconTitleOffset + iconTitleFontSize * 2 + iconTitleShadowDy + iconAdTitleReserveSpace;
                    }
                }
                adSize = new CGSize(iconAdWidth, iconAdHeight);
                                #endif
                break;
            }
            return(adSize);
        }