void Start() { adInfo = manager.SPAds.Find(ad => ad.SceneName == "IconScene"); // 初回のみResister(),Start(),Show()を呼び、 // 2度目以降は、SetVisibility()を使用してください if (adInfo.AdViewId == null) { IMobileSdkAdsUnityPlugin.registerInline(adInfo.TestPID, adInfo.TestMID, adInfo.TestSID); IMobileSdkAdsUnityPlugin.start(adInfo.TestSID); var iconParam = new IMobileIconParams(); iconParam.iconNumber = 5; iconParam.iconSize = 52; iconParam.iconTitleEnable = false; adInfo.AdViewId = IMobileSdkAdsUnityPlugin.show(adInfo.TestSID, IMobileSdkAdsUnityPlugin.AdType.ICON, IMobileSdkAdsUnityPlugin.AdAlignPosition.CENTER, IMobileSdkAdsUnityPlugin.AdValignPosition.MIDDLE, iconParam); } else { IMobileSdkAdsUnityPlugin.setVisibility(adInfo.AdViewId.Value, true); } }
/// <summary> /// 広告の表示領域を返します /// </summary> /// <returns>広告の表示領域</returns> /// <param name="left">Left</param> /// <param name="top">Top</param> /// <param name="adType">AdType</param> /// <param name="iconParams">IMobileIconParams</param> internal static Rect getAdRect(int left, int top, IMobileSdkAdsUnityPlugin.AdType adType, IMobileIconParams iconParams){ iconParams = iconParams ?? new IMobileIconParams (); Rect adRect = new Rect (); adRect.width = getWidth (adType, iconParams); adRect.height = getHeight (adType, iconParams); adRect.x = left; adRect.y = top; return adRect; }
private static int show(string spotid, AdType adType, Rect adRect, IMobileIconParams iconParams, bool sizeAdjust, IMobileNativeAdParams adParams) { int adViewId = IMobileAdViewIdManager.CreateId(); #if !UNITY_EDITOR iconParams = iconParams ?? new IMobileIconParams(); string partnerId = IMobileSpotInfoManager.GetPartnerId(spotid); string mediaId = IMobileSpotInfoManager.GetMediaId(spotid); bool isIcon = adType == AdType.ICON; #endif #if UNITY_IPHONE && !UNITY_EDITOR if (Application.platform == RuntimePlatform.IPhonePlayer) { string[] parameters = { partnerId, mediaId, spotid, adRect.x.ToString(), adRect.y.ToString(), adRect.width.ToString(), adRect.height.ToString(), sizeAdjust.ToString(), adViewId.ToString() }; string paramStr = string.Join(":", parameters); imobileShowBySpotIDWithPosition_(paramStr); } #elif UNITY_ANDROID && !UNITY_EDITOR if (Application.platform == RuntimePlatform.Android) { imobileSdkAdsAndroidPlugin.CallStatic("show", partnerId, mediaId, spotid, (int)adRect.x, (int)adRect.y, iconParams.iconNumber, iconParams.iconViewLayoutWidth, iconParams.iconSize, iconParams.iconTitleEnable, iconParams.iconTitleFontSize, iconParams.iconTitleFontColor, iconParams.iconTitleOffset, iconParams.iconTitleShadowEnable, iconParams.iconTitleShadowColor, iconParams.iconTitleShadowDx, iconParams.iconTitleShadowDy, isIcon, sizeAdjust, adViewId ); } #endif return(adViewId); }
void Start () { if (sInstance == null) { sInstance = this; DontDestroyOnLoad (gameObject); } string bannerMediaId; string bannerSpotId; string iconMediaId; string iconSpotId; string wallMediaId; string wallSpotId; #if UNITY_IPHONE bannerMediaId = account.iOS.bannerMediaId; bannerSpotId = account.iOS.bannerSpotId; iconMediaId = account.iOS.iconMediaId; iconSpotId = account.iOS.iconSpotId; wallMediaId = account.iOS.wallMediaId; wallSpotId = account.iOS.wallSpotId; #endif #if UNITY_ANDROID bannerMediaId = account.android.bannerMediaId; bannerSpotId = account.android.bannerSpotId; iconMediaId = account.android.iconMediaId; iconSpotId = account.android.iconSpotId; wallMediaId = account.android.wallMediaId; wallSpotId = account.android.wallSpotId; #endif //prepare banner IMobileSdkAdsUnityPlugin.registerInline (publisherId, bannerMediaId, bannerSpotId); IMobileSdkAdsUnityPlugin.start (bannerSpotId); mBannerViewId = IMobileSdkAdsUnityPlugin.show (bannerSpotId, IMobileSdkAdsUnityPlugin.AdType.BANNER, IMobileSdkAdsUnityPlugin.AdAlignPosition.CENTER, IMobileSdkAdsUnityPlugin.AdValignPosition.BOTTOM); //prepare icon IMobileSdkAdsUnityPlugin.registerInline (publisherId, iconMediaId, iconSpotId); IMobileSdkAdsUnityPlugin.start (iconSpotId); IMobileIconParams iconParams = new IMobileIconParams (); iconParams.iconNumber = 2; iconParams.iconTitleEnable = false; mIconViewId = IMobileSdkAdsUnityPlugin.show (iconSpotId, IMobileSdkAdsUnityPlugin.AdType.ICON, 0, 10, iconParams); //prepare wall IMobileSdkAdsUnityPlugin.registerFullScreen (publisherId, wallMediaId, wallSpotId); IMobileSdkAdsUnityPlugin.start (wallSpotId); HideBannerAd (); HideIconAd (); }
private static int show(string spotid, AdType adType, Rect adRect, IMobileIconParams iconParams) { iconParams = iconParams ?? new IMobileIconParams(); string partnerId = IMobileSpotInfoManager.GetPartnerId(spotid); string mediaId = IMobileSpotInfoManager.GetMediaId(spotid); int adViewId = IMobileAdViewIdManager.createId(); #if UNITY_IPHONE if (Application.platform == RuntimePlatform.IPhonePlayer) { imobileShowBySpotIDWithPositionAndIconParams_(spotid, partnerId, mediaId, (int)adRect.x, (int)adRect.y, (int)adRect.width, (int)adRect.height, iconParams.iconNumber, iconParams.iconViewLayoutWidth, iconParams.iconSize, iconParams.iconTitleEnable, iconParams.iconTitleFontSize, iconParams.iconTitleFontColor, iconParams.iconTitleOffset, iconParams.iconTitleShadowEnable, iconParams.iconTitleShadowColor, iconParams.iconTitleShadowDx, iconParams.iconTitleShadowDy, adViewId); } #elif UNITY_ANDROID if (Application.platform == RuntimePlatform.Android) { imobileSdkAdsAndroidPlugin.CallStatic("show", partnerId, mediaId, spotid, adViewId, (int)adRect.x, (int)adRect.y, iconParams.iconNumber, iconParams.iconViewLayoutWidth, iconParams.iconSize, iconParams.iconTitleEnable, iconParams.iconTitleFontSize, iconParams.iconTitleFontColor, iconParams.iconTitleOffset, iconParams.iconTitleShadowEnable, iconParams.iconTitleShadowColor, iconParams.iconTitleShadowDx, iconParams.iconTitleShadowDy ); } #endif return(adViewId); }
/// <summary> /// 広告の表示領域を返します /// </summary> /// <returns>広告の表示領域</returns> /// <param name="alignPosition">AdAlignPosition</param> /// <param name="valignPosition">AdValignPosition</param> /// <param name="adType">AdType</param> /// <param name="iconParams">IMobileIconParams</param> /// <param name="sizeAdjust">sizeAdjust</param> internal static Rect getAdRect(IMobileSdkAdsUnityPlugin.AdAlignPosition alignPosition, IMobileSdkAdsUnityPlugin.AdValignPosition valignPosition, IMobileSdkAdsUnityPlugin.AdType adType, IMobileIconParams iconParams, bool sizeAdjust) { // スクリーンの論理サイズを取得 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 // 広告の表示位置を計算 int left = 0; int top = 0; // 広告サイズを取得 iconParams = iconParams ?? new IMobileIconParams (); CGSize adSize = getAdSize (adType, iconParams, sizeAdjust); // x座標の取得 switch (alignPosition) { case IMobileSdkAdsUnityPlugin.AdAlignPosition.LEFT: left = 0; break; case IMobileSdkAdsUnityPlugin.AdAlignPosition.CENTER: left = (screenWidth - adSize.width) / 2; break; case IMobileSdkAdsUnityPlugin.AdAlignPosition.RIGHT: left = screenWidth - adSize.width; break; } // y座標の取得 switch (valignPosition) { case IMobileSdkAdsUnityPlugin.AdValignPosition.TOP: top = 0; break; case IMobileSdkAdsUnityPlugin.AdValignPosition.MIDDLE: top = (screenHeight / 2) - (adSize.height / 2); break; case IMobileSdkAdsUnityPlugin.AdValignPosition.BOTTOM: top = screenHeight - adSize.height; break; } return new Rect (left, top, adSize.width, adSize.height); }
/// <summary> /// 広告の表示領域を返します /// </summary> /// <returns>広告の表示領域</returns> /// <param name="alignPosition">AdAlignPosition</param> /// <param name="valignPosition">AdValignPosition</param> /// <param name="adType">AdType</param> /// <param name="iconParams">IMobileIconParams</param> internal static Rect getAdRect(IMobileSdkAdsUnityPlugin.AdAlignPosition alignPosition, IMobileSdkAdsUnityPlugin.AdValignPosition valignPosition, IMobileSdkAdsUnityPlugin.AdType adType, IMobileIconParams iconParams){ // スクリーンの論理サイズを取得 int screenWidth = 0; int screenHeight = 0; #if UNITY_IPHONE screenWidth = getScreenWidth_(); screenHeight = getScreenHeight_(); #elif UNITY_ANDROID screenWidth = getDensitySize (Screen.width); screenHeight = getDensitySize (Screen.height); #endif // 広告の表示位置を計算 int x = 0; int y = 0; // 広告サイズを取得 CGSize adSize = getAdSize (adType, iconParams); // x座標の取得 switch (alignPosition) { case IMobileSdkAdsUnityPlugin.AdAlignPosition.LEFT: x = 0; break; case IMobileSdkAdsUnityPlugin.AdAlignPosition.CENTER: x = (screenWidth - adSize.width) / 2; break; case IMobileSdkAdsUnityPlugin.AdAlignPosition.RIGHT: x = screenWidth - adSize.width; break; } // y座標の取得 switch (valignPosition) { case IMobileSdkAdsUnityPlugin.AdValignPosition.TOP: y = 0; break; case IMobileSdkAdsUnityPlugin.AdValignPosition.MIDDLE: y = (screenHeight / 2) - (adSize.height / 2); break; case IMobileSdkAdsUnityPlugin.AdValignPosition.BOTTOM: y = screenHeight - adSize.height; break; } return getAdRect (x, y, adType, iconParams); }
private static int getTop(IMobileSdkAdsUnityPlugin.AdValignPosition valignPosition, IMobileSdkAdsUnityPlugin.AdType adType, IMobileIconParams iconParams){ int screenHeight = getDensitySize (Screen.height); int topPosition = 0; switch (valignPosition) { case IMobileSdkAdsUnityPlugin.AdValignPosition.TOP: topPosition = 0; break; case IMobileSdkAdsUnityPlugin.AdValignPosition.MIDDLE: topPosition = (screenHeight / 2) - (getHeight(adType, iconParams) / 2); break; case IMobileSdkAdsUnityPlugin.AdValignPosition.BOTTOM: topPosition = screenHeight - getHeight(adType, iconParams); break; } return topPosition; }
public void ShowIcon(DataManager.AD_TYPE _eAdType, bool _bDisp) { if (m_bAdDispIcon == _bDisp) { return; } switch (_eAdType) { case DataManagerBase <DataManager> .AD_TYPE.NEND: #if UNITY_ANDROID m_goNendNativePanel.SetActive(_bDisp); #elif UNITY_IPHONE m_goNendNativePanel.SetActive(_bDisp); #endif break; case DataManagerBase <DataManager> .AD_TYPE.IMOBILE: #if UNITY_IPHONE || UNITY_ANDROID && !UNITY_EDITOR #if USE_IMOBILE if (m_iIMobileIcon == 0 && _bDisp) { // スポット情報を設定します IMobileSdkAdsUnityPlugin.registerInline(IMOBILE_ICON_PID, IMOBILE_ICON_MID, IMOBILE_ICON_SID); // 広告の取得を開始します IMobileSdkAdsUnityPlugin.start(IMOBILE_ICON_SID); // アイコン表示パラメータを作成します var iconParams = new IMobileIconParams(); iconParams.iconNumber = 2; // 広告の表示位置を指定して表示します m_iIMobileIcon = IMobileSdkAdsUnityPlugin.show(IMOBILE_ICON_SID, IMobileSdkAdsUnityPlugin.AdType.ICON, IMobileSdkAdsUnityPlugin.AdAlignPosition.RIGHT, IMobileSdkAdsUnityPlugin.AdValignPosition.TOP, iconParams); } else { IMobileSdkAdsUnityPlugin.setVisibility(m_iIMobileIcon, _bDisp); } #endif #endif break; } m_bAdDispIcon = _bDisp; }
private static int getLeft(IMobileSdkAdsUnityPlugin.AdAlignPosition alignPosition, IMobileSdkAdsUnityPlugin.AdType adType, IMobileIconParams iconParams){ int screenWidth = getDensitySize (Screen.width); int leftPosition = 0; switch (alignPosition) { case IMobileSdkAdsUnityPlugin.AdAlignPosition.CENTER: leftPosition = screenWidth - getWidth(adType, iconParams); if(leftPosition != 0) { leftPosition = leftPosition / 2; } break; case IMobileSdkAdsUnityPlugin.AdAlignPosition.LEFT: leftPosition = 0; break; case IMobileSdkAdsUnityPlugin.AdAlignPosition.RIGHT: leftPosition = screenWidth - getWidth(adType, iconParams); break; } return leftPosition; }
private static int getWidth(IMobileSdkAdsUnityPlugin.AdType adType, IMobileIconParams iconParams){ int width = -1; switch (adType) { case IMobileSdkAdsUnityPlugin.AdType.BANNER: width = 320; break; case IMobileSdkAdsUnityPlugin.AdType.BIG_BANNER: width = 320; break; case IMobileSdkAdsUnityPlugin.AdType.TABLET_BANNER: width = 468; break; case IMobileSdkAdsUnityPlugin.AdType.TABLET_BIG_BANNER: width = 728; break; case IMobileSdkAdsUnityPlugin.AdType.MEDIUM_RECTANGLE: width = 300; break; case IMobileSdkAdsUnityPlugin.AdType.BIG_RECTANGLE: width = 336; break; case IMobileSdkAdsUnityPlugin.AdType.SKYSCRAPER: width = 120; break; case IMobileSdkAdsUnityPlugin.AdType.WIDE_SKYSCRAPER: width = 160; break; case IMobileSdkAdsUnityPlugin.AdType.SQUARE: width = 250; break; case IMobileSdkAdsUnityPlugin.AdType.SMALL_SQUARE: width = 200; break; case IMobileSdkAdsUnityPlugin.AdType.HALFPAGE: width = 300; break; case IMobileSdkAdsUnityPlugin.AdType.ICON: width = getIconAdWidth(iconParams); break; } return width; }
void Start () { adInfo = manager.SPAds.Find (ad => ad.SceneName == "IconScene"); // 初回のみResister(),Start(),Show()を呼び、 // 2度目以降は、SetVisibility()を使用してください if (adInfo.AdViewId == null) { IMobileSdkAdsUnityPlugin.registerInline (adInfo.TestPID, adInfo.TestMID, adInfo.TestSID); IMobileSdkAdsUnityPlugin.start (adInfo.TestSID); var iconParam = new IMobileIconParams(); iconParam.iconNumber = 5; iconParam.iconSize = 52; iconParam.iconTitleEnable = false; adInfo.AdViewId = IMobileSdkAdsUnityPlugin.show (adInfo.TestSID, IMobileSdkAdsUnityPlugin.AdType.ICON, IMobileSdkAdsUnityPlugin.AdAlignPosition.CENTER, IMobileSdkAdsUnityPlugin.AdValignPosition.MIDDLE, iconParam); } else { IMobileSdkAdsUnityPlugin.setVisibility(adInfo.AdViewId.Value, true); } }
private static int getIconImageMargin(IMobileIconParams iconParams, int iconAdWidth, int iconImageWidth) { int totalMargin = iconAdWidth - iconImageWidth * iconParams.iconNumber; int iconImageMargin = (int)Math.Ceiling ((double)totalMargin / iconParams.iconNumber); return Math.Max (iconImageMargin, IconMinimumMargin); }
private static int getIconImageWidth(IMobileIconParams iconParams, int iconAdWidth){ if (iconParams.iconSize > 0) { return Math.Max (iconParams.iconSize, IconMinimumWidth); } int minimumAdViewWidthWithDefaultIconSize = (IconDefaultWidth + IconDefaultMargin) * iconParams.iconNumber; if (iconAdWidth >= minimumAdViewWidthWithDefaultIconSize) { return IconDefaultWidth; } else { return IconMinimumWidth; } }
private static int getIconAdHeight(IMobileIconParams iconParams){ int iconAdWidth = getIconAdWidth (iconParams); int iconImageWidth = getIconImageWidth (iconParams, iconAdWidth); int iconImageMargin = getIconImageMargin (iconParams, iconAdWidth, iconImageWidth); if (!iconParams.iconTitleEnable) { return iconImageWidth; } 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; int iconAdButtomMargin = 3; bool isSingleLineIconTitleDisplayable = (iconImageWidth + iconImageMargin) >= (IconDefaultWidth + IconDefaultMargin / 2); if (isSingleLineIconTitleDisplayable) { return iconImageWidth + iconTitleOffset + iconTitleFontSize + iconTitleShadowDy + iconAdButtomMargin; } else { return iconImageWidth + iconTitleOffset + iconTitleFontSize * 2 + iconTitleShadowDy + iconAdButtomMargin; } }
private static int getIconAdWidth(IMobileIconParams iconParams){ int screenWidth = getDensitySize (Screen.width); int screenHeight = getDensitySize (Screen.height); int minWidth = screenWidth > screenHeight ? screenHeight : screenWidth; if (iconParams == null) { return minWidth; } if (iconParams.iconViewLayoutWidth > 0) { return iconParams.iconViewLayoutWidth; } if (iconParams.iconNumber > 0) { if (iconParams.iconNumber < 4) { int iconWidth = (iconParams.iconSize > 0) ? Math.Max (iconParams.iconSize, IconMinimumWidth) : IconDefaultWidth; return (iconWidth + IconDefaultMargin) * iconParams.iconNumber; } else { return minWidth; } } return minWidth; }
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; }
/// <summary> /// 広告を表示します /// </summary> /// <param name="spotid">スポットID</param> /// <param name="adType">AdType</param> /// <param name="alignPosition">AdAlignPosition</param> /// <param name="valignPosition">AdValignPosition</param> /// <param name="iconParams">IMobileIconParams</param> public static int show(string spotid, AdType adType, AdAlignPosition alignPosition, AdValignPosition valignPosition, IMobileIconParams iconParams) { Rect adRect = IMobileSdkAdsViewUtility.getAdRect(alignPosition, valignPosition, adType, iconParams, false); return(show(spotid, adType, adRect, iconParams, false)); }
private static int show(string spotid, AdType adType, Rect adRect, IMobileIconParams iconParams){ iconParams = iconParams ?? new IMobileIconParams(); string partnerId = IMobileSpotInfoManager.GetPartnerId(spotid); string mediaId = IMobileSpotInfoManager.GetMediaId(spotid); int adViewId = IMobileAdViewIdManager.createId(); #if UNITY_IPHONE if(Application.platform == RuntimePlatform.IPhonePlayer) { imobileShowBySpotIDWithPositionAndIconParams_(spotid, partnerId, mediaId, (int)adRect.x, (int)adRect.y, (int)adRect.width, (int)adRect.height, iconParams.iconNumber, iconParams.iconViewLayoutWidth, iconParams.iconSize, iconParams.iconTitleEnable, iconParams.iconTitleFontSize, iconParams.iconTitleFontColor, iconParams.iconTitleOffset, iconParams.iconTitleShadowEnable, iconParams.iconTitleShadowColor, iconParams.iconTitleShadowDx, iconParams.iconTitleShadowDy, adViewId); } #elif UNITY_ANDROID if(Application.platform == RuntimePlatform.Android) { imobileSdkAdsAndroidPlugin.CallStatic("show", partnerId, mediaId, spotid, adViewId, (int)adRect.x, (int)adRect.y, iconParams.iconNumber, iconParams.iconViewLayoutWidth, iconParams.iconSize, iconParams.iconTitleEnable, iconParams.iconTitleFontSize, iconParams.iconTitleFontColor, iconParams.iconTitleOffset, iconParams.iconTitleShadowEnable, iconParams.iconTitleShadowColor, iconParams.iconTitleShadowDx, iconParams.iconTitleShadowDy ); } #endif return adViewId; }
public void ShowIcon(GameObject _goIcon, bool _bFlag) { string strSid = IMOBILE_SID_ICON; if (_bFlag) { if (m_iIMobileIconId == 0) { #if UNITY_ANDROID // && !UNITY_EDITOR IMobileSdkAdsUnityPlugin.registerInline(IMOBILE_PID, IMOBILE_MID, strSid); var iconParams = new IMobileIconParams(); iconParams.iconNumber = 2; // アイコンの数を6個に iconParams.iconTitleFontColor = "#000000"; // タイトルの色を黒に iconParams.iconTitleShadowEnable = false; // タイトルの影を非表示に iconParams.iconTitleEnable = false; // 広告の取得を開始します IMobileSdkAdsUnityPlugin.start(strSid); // 広告の表示位置を指定して表示します(画面左下) m_iIMobileIconId = (int)IMobileSdkAdsUnityPlugin.show(strSid, IMobileSdkAdsUnityPlugin.AdType.ICON, 0, 90, iconParams); /* * IMobileSdkAdsUnityPlugin.AdAlignPosition.LEFT, * IMobileSdkAdsUnityPlugin.AdValignPosition.MIDDLE); */ #else #endif } else { #if UNITY_ANDROID //&& !UNITY_EDITOR IMobileSdkAdsUnityPlugin.setVisibility(m_iIMobileIconId, true); #else #endif } } else { #if UNITY_ANDROID //&& !UNITY_EDITOR IMobileSdkAdsUnityPlugin.setVisibility(m_iIMobileIconId, false); #else #endif } /* #if UNITY_ANDROID * NendAdIcon script = _goIcon.GetComponent<NendAdIcon> (); * if (script == null) { * Debug.Log ("ShowIcon script=null! "); * * } else if (_bFlag) { * Debug.Log ("Show Icon! "); * script.Show (); * script.Resume (); * } else { * Debug.Log ("Hide Icon! "); * script.Hide(); * script.Pause(); * } #endif */ return; }
/// <summary> /// 広告を表示します /// </summary> /// <param name="spotid">スポットID</param> /// <param name="adType">AdType</param> /// <param name="left">水平方向の広告表示座標</param> /// <param name="top">垂直方向の広告表示座標</param> /// <param name="iconParams">IMobileIconParams</param> public static int show(string spotid, AdType adType, int left, int top, IMobileIconParams iconParams){ Rect adRect = IMobileSdkAdsViewUtility.getAdRect (left, top, adType, iconParams); return show (spotid, adType, adRect, iconParams); }
/// <summary> /// 広告を表示します /// </summary> /// <param name="spotid">スポットID</param> /// <param name="adType">AdType</param> /// <param name="alignPosition">AdAlignPosition</param> /// <param name="valignPosition">AdValignPosition</param> /// <param name="iconParams">IMobileIconParams</param> public static int show(string spotid, AdType adType, AdAlignPosition alignPosition, AdValignPosition valignPosition, IMobileIconParams iconParams) { Rect adRect = IMobileSdkAdsViewUtility.getAdRect (alignPosition, valignPosition, adType, iconParams); return show (spotid, adType, adRect, iconParams); }
private static CGSize getAdSize(IMobileSdkAdsUnityPlugin.AdType adType, IMobileIconParams iconParams) { CGSize adSize = new CGSize(); switch (adType) { case IMobileSdkAdsUnityPlugin.AdType.BANNER: adSize = new CGSize(320, 50); break; case IMobileSdkAdsUnityPlugin.AdType.BIG_BANNER: adSize = new CGSize(320, 100); 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 = new CGSize(300, 250); 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: 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; #if UNITY_IPHONE screenWidth = getScreenWidth_(isScreenPortrait()); screenHeight = getScreenHeight_(isScreenPortrait()); #elif UNITY_ANDROID screenWidth = getDensitySize(Screen.width); screenHeight = getDensitySize(Screen.height); #endif // 幅を計算する 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); // 高さの取得 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); break; } return(adSize); }
/// <summary> /// 広告の表示領域を返します /// </summary> /// <returns>広告の表示領域</returns> /// <param name="alignPosition">AdAlignPosition</param> /// <param name="valignPosition">AdValignPosition</param> /// <param name="adType">AdType</param> /// <param name="iconParams">IMobileIconParams</param> internal static Rect getAdRect(IMobileSdkAdsUnityPlugin.AdAlignPosition alignPosition, IMobileSdkAdsUnityPlugin.AdValignPosition valignPosition, IMobileSdkAdsUnityPlugin.AdType adType, IMobileIconParams iconParams) { iconParams = iconParams ?? new IMobileIconParams(); // スクリーンの論理サイズを取得 int screenWidth = 0; int screenHeight = 0; #if UNITY_IPHONE && !UNITY_EDITOR screenWidth = getScreenWidth_(isScreenPortrait()); screenHeight = getScreenHeight_(isScreenPortrait()); #elif UNITY_ANDROID screenWidth = getDensitySize(Screen.width); screenHeight = getDensitySize(Screen.height); #endif // 広告の表示位置を計算 int x = 0; int y = 0; // 広告サイズを取得 CGSize adSize = getAdSize(adType, iconParams); // x座標の取得 switch (alignPosition) { case IMobileSdkAdsUnityPlugin.AdAlignPosition.LEFT: x = 0; break; case IMobileSdkAdsUnityPlugin.AdAlignPosition.CENTER: x = (screenWidth - adSize.width) / 2; break; case IMobileSdkAdsUnityPlugin.AdAlignPosition.RIGHT: x = screenWidth - adSize.width; break; } // y座標の取得 switch (valignPosition) { case IMobileSdkAdsUnityPlugin.AdValignPosition.TOP: y = 0; break; case IMobileSdkAdsUnityPlugin.AdValignPosition.MIDDLE: y = (screenHeight / 2) - (adSize.height / 2); break; case IMobileSdkAdsUnityPlugin.AdValignPosition.BOTTOM: y = screenHeight - adSize.height; break; } return(getAdRect(x, y, adType, iconParams)); }
/// <summary> /// 広告の表示領域を返します /// </summary> /// <returns>広告の表示領域</returns> /// <param name="left">Left</param> /// <param name="top">Top</param> /// <param name="adType">AdType</param> /// <param name="iconParams">IMobileIconParams</param> internal static Rect getAdRect(int left, int top, IMobileSdkAdsUnityPlugin.AdType adType, IMobileIconParams iconParams) { iconParams = iconParams ?? new IMobileIconParams(); CGSize adSize = getAdSize(adType, iconParams); return(new Rect(left, top, adSize.width, adSize.height)); }
/// <summary> /// 広告の表示領域を返します /// </summary> /// <returns>広告の表示領域</returns> /// <param name="alignPosition">AdAlignPosition</param> /// <param name="valignPosition">AdValignPosition</param> /// <param name="adType">AdType</param> /// <param name="iconParams">IMobileIconParams</param> /// <param name="sizeAdjust">sizeAdjust</param> internal static Rect getAdRect(IMobileSdkAdsUnityPlugin.AdAlignPosition alignPosition, IMobileSdkAdsUnityPlugin.AdValignPosition valignPosition, IMobileSdkAdsUnityPlugin.AdType adType, IMobileIconParams iconParams, bool sizeAdjust) { // スクリーンの論理サイズを取得 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 // 広告の表示位置を計算 int left = 0; int top = 0; // 広告サイズを取得 iconParams = iconParams ?? new IMobileIconParams(); CGSize adSize = getAdSize(adType, iconParams, sizeAdjust); // x座標の取得 switch (alignPosition) { case IMobileSdkAdsUnityPlugin.AdAlignPosition.LEFT: left = 0; break; case IMobileSdkAdsUnityPlugin.AdAlignPosition.CENTER: left = (screenWidth - adSize.width) / 2; break; case IMobileSdkAdsUnityPlugin.AdAlignPosition.RIGHT: left = screenWidth - adSize.width; break; } // y座標の取得 switch (valignPosition) { case IMobileSdkAdsUnityPlugin.AdValignPosition.TOP: top = 0; break; case IMobileSdkAdsUnityPlugin.AdValignPosition.MIDDLE: top = (screenHeight / 2) - (adSize.height / 2); break; case IMobileSdkAdsUnityPlugin.AdValignPosition.BOTTOM: #if UNITY_IOS top = screenHeight - adSize.height - 56; if (SystemInfo.deviceModel.Contains("iPad")) { // ipadでの処理 top = screenHeight - adSize.height - 82; // ゴリ押しの修正 } #else top = screenHeight - adSize.height - 48; #endif break; } return(new Rect(left, top, adSize.width, adSize.height)); }
private static int getHeight(IMobileSdkAdsUnityPlugin.AdType adType, IMobileIconParams iconParams){ int height = -1; switch (adType) { case IMobileSdkAdsUnityPlugin.AdType.BANNER: height = 50; break; case IMobileSdkAdsUnityPlugin.AdType.BIG_BANNER: height = 100; break; case IMobileSdkAdsUnityPlugin.AdType.TABLET_BANNER: height = 60; break; case IMobileSdkAdsUnityPlugin.AdType.TABLET_BIG_BANNER: height = 90; break; case IMobileSdkAdsUnityPlugin.AdType.MEDIUM_RECTANGLE: height = 250; break; case IMobileSdkAdsUnityPlugin.AdType.BIG_RECTANGLE: height = 280; break; case IMobileSdkAdsUnityPlugin.AdType.SKYSCRAPER: height = 600; break; case IMobileSdkAdsUnityPlugin.AdType.WIDE_SKYSCRAPER: height = 600; break; case IMobileSdkAdsUnityPlugin.AdType.SQUARE: height = 250; break; case IMobileSdkAdsUnityPlugin.AdType.SMALL_SQUARE: height = 200; break; case IMobileSdkAdsUnityPlugin.AdType.HALFPAGE: height = 600; break; case IMobileSdkAdsUnityPlugin.AdType.ICON: height = getIconAdHeight(iconParams); break; } return height; }
private static int show(string spotid, AdType adType, Rect adRect, IMobileIconParams iconParams, bool sizeAdjust){ int adViewId = IMobileAdViewIdManager.CreateId(); #if !UNITY_EDITOR iconParams = iconParams ?? new IMobileIconParams(); string partnerId = IMobileSpotInfoManager.GetPartnerId(spotid); string mediaId = IMobileSpotInfoManager.GetMediaId(spotid); bool isIcon = adType == AdType.ICON; #endif #if UNITY_IPHONE && !UNITY_EDITOR if(Application.platform == RuntimePlatform.IPhonePlayer) { string[] parameters = { partnerId, mediaId, spotid, adRect.x.ToString(), adRect.y.ToString(), adRect.width.ToString(), adRect.height.ToString(), iconParams.iconViewLayoutWidth.ToString(), iconParams.iconSize.ToString(), iconParams.iconTitleEnable.ToString(), iconParams.iconTitleFontSize.ToString(), iconParams.iconTitleFontColor.ToString(), iconParams.iconTitleOffset.ToString(), iconParams.iconTitleShadowEnable.ToString(), iconParams.iconTitleShadowColor.ToString(), iconParams.iconTitleShadowDx.ToString(), iconParams.iconTitleShadowDy.ToString(), isIcon.ToString(), sizeAdjust.ToString(), adViewId.ToString() }; string paramStr = string.Join(":", parameters); imobileShowBySpotIDWithPositionAndIconParams_(paramStr); } #elif UNITY_ANDROID && !UNITY_EDITOR if(Application.platform == RuntimePlatform.Android) { imobileSdkAdsAndroidPlugin.CallStatic("show", partnerId, mediaId, spotid, (int)adRect.x, (int)adRect.y, iconParams.iconNumber, iconParams.iconViewLayoutWidth, iconParams.iconSize, iconParams.iconTitleEnable, iconParams.iconTitleFontSize, iconParams.iconTitleFontColor, iconParams.iconTitleOffset, iconParams.iconTitleShadowEnable, iconParams.iconTitleShadowColor, iconParams.iconTitleShadowDx, iconParams.iconTitleShadowDy, isIcon, sizeAdjust, adViewId ); } #endif return adViewId; }
/// <summary> /// 広告の表示領域を返します /// </summary> /// <returns>広告の表示領域</returns> /// <param name="alignPosition">AdAlignPosition</param> /// <param name="valignPosition">AdValignPosition</param> /// <param name="adType">AdType</param> /// <param name="iconParams">IMobileIconParams</param> internal static Rect getAdRect(IMobileSdkAdsUnityPlugin.AdAlignPosition alignPosition, IMobileSdkAdsUnityPlugin.AdValignPosition valignPosition, IMobileSdkAdsUnityPlugin.AdType adType, IMobileIconParams iconParams){ int left = getLeft (alignPosition, adType, iconParams); int top = getTop (valignPosition, adType, iconParams); return getAdRect (left, top, adType, iconParams); }
/// <summary> /// 広告を表示します /// </summary> /// <param name="spotid">スポットID</param> /// <param name="adType">AdType</param> /// <param name="left">水平方向の広告表示座標</param> /// <param name="top">垂直方向の広告表示座標</param> /// <param name="iconParams">IMobileIconParams</param> public static int show(string spotid, AdType adType, int left, int top, IMobileIconParams iconParams) { Rect adRect = IMobileSdkAdsViewUtility.getAdRect(left, top, adType, iconParams, false); return(show(spotid, adType, adRect, iconParams, false)); }
/// <summary> /// 広告の表示領域を返します /// </summary> /// <returns>広告の表示領域</returns> /// <param name="left">Left</param> /// <param name="top">Top</param> /// <param name="adType">AdType</param> /// <param name="iconParams">IMobileIconParams</param> /// <param name="sizeAdjust">sizeAdjust</param> internal static Rect getAdRect(int left, int top, IMobileSdkAdsUnityPlugin.AdType adType, IMobileIconParams iconParams, bool sizeAdjust) { iconParams = iconParams ?? new IMobileIconParams (); CGSize adSize = getAdSize (adType, iconParams, sizeAdjust); return new Rect (left, top, adSize.width, adSize.height); }