ブログ記事一覧

Unity

UnityADSで他のUDNアカウントのIDで広告表示をする方法

エディターのServiceウインドウからADSを使用する際にアカウントにログインが求められます。
ですが、まれにこのアカウントとは別のアカウントで管理されているADSのIDを使用したい場合があります。
Unity5.3.5の頃は、エディターのServicesでGameIDを指定することが出来ました。

UnityADSのアカウントがUDNアカウントに統一された影響でしょうか。Unity5.6.3ではServiceウインドウではIDの設定がありません。

Start関数などの中でInitializeを実行し、IDを指定できるのですが
ServiceウインドウでログインしたUDNアカウントが有効になり、そのUDNアカウントにてADSのインプレッションが計測されてしまいました。

エディタ上で指定したアカウントと別のアカウントのIDを使用する方法

ゲームスタート時のオートイニシャライズを無効化したい

github上のインテグレーションガイドに記載がありました。エディタースクリプトを使用して無効化する必要があります。

ポイントは「initializeOnStartup =false」です。これにより、エディタ上で指定したアカウントでのオートイニシャライズが無効になります。手動でIDを指定する必要がありますので、どこかのStartやAwakeなどで「Advertisement.Initialize(“ここにIDを指定”)」を行えば今度こそそのIDが有効になります。

上記のスクリプトと組み合わせて下記の手動イニシャライズを使用することでIDが有効になります。

Unity

DeployGate配信でのiOSアプリのPush通知確認ではまった

結論:DeployGateでiOSアプリのプッシュ通知を確認する場合

  • CertificateはProduction用のAPNsを使用する
  • プロビジョニングプロファイルはProduction用のAdHocを使用する

iOSの証明書は難しい

でも今回はまったおかげでやっとすっきりしました。

そもそも証明書は、開発用と本番用があります。

開発用

  • プッシュ通知用の証明書(APNs Development iOS)
  • プロビジョニングファイル用の証明書(iOS Development)

本番用

  • プッシュ通知用の証明書(APNs Production iOS)
  • プロビジョニングファイル用の証明書(iOS Distribution)

それぞれで2種類ずつ必要です。

DeployGateへの配信ではそもそもDevelopでないといけないと思っていたのが間違いでした。

ProductionかつAdHoc!

AdHocなだけでProduction。

証明書の作成

CertificateではApplePush Notification Service SSL(Sandbox & Production)をえらびます。

こんな感じで作成されます。

次にプロビジョニングプロファイルです。

プロビジョニング作成時に証明書を選択します。ここにはプッシュ通知用の証明書は表示されません!てっきり表示されるのかと思ってはまりました。ご注意ください。通常通りアプリのIDを選択してください。

勘違いポイント

  • DeployGate配信だからDevelopmentじゃね?→残念、Productionでした
  • APNsはDevelopmentじゃね?→残念、Productionでした
  • プロビジョニングプロファイルでプッシュ通知用の証明書選べばOKじゃね?→残念、選べません

結果的にはDevelopmentのPush通知証明書が不要なので楽ちん

Unity

UnityでNiftyのmBaaS(NCMBプッシュ通知)とAdMobの競合を乗り越え利用する方法

NiftyのmBaas(以降NCMB)プラグインをUnityで導入することにより、手軽にプッシュ通知などの機能が利用可能です。
既にAdMob等を導入している環境等で導入した場合、競合などによりビルドエラーや実行時エラーを起こす問題を乗り越えて利用するまでの道のりです。

Description

UnityでNCMBのPluginを導入することによりでiOS/Android向けに様々な機能が利用できます。Push通知もその一つです。
UnityでNCMBを利用する
NCMB Unity Package

ところが上記のマニュアル等を参考に導入しようとしても、AdMob等の広告を既に導入している場合には高確率で競合によるエラーでビルドができません。
この解決方法が意外とやっかいなので以下に手順を残します。
 おおまかには以下の流れです。
-admobで使用するaar等を削除
-Niftyで使用aar等導入
-PlayServiceResolverでよしなに解決


<動作環境>

  • Unity5.6.3p4
  • Google Mobile Ads Unity Plugin v3.9.0
  • NCMB v3.1.1 (Nifty mBaas Unity plugin)
  • Android7.x/iOS11.x

設定方法

1.AdMob関連のjar/aarを削除する
 Assets/Plugins/Android/以下にあるAdMob導入時のjar/aarを一旦削除します
 play-service-xxxやsupport-yyyが該当します。
 私は該当フォルダのファイルを一旦全て削除しました。

2.NCMBのプラグインを導入します
 NCMBのプラグインを導入します。今回はv3.1.1でした。
 導入後は、Asset/Plugins/Androidフォルダに下記のファイルが展開されています。

 ※ play-service-base-xxxを削除すると競合が解決してビルドできますが、NCMBを呼び出すと実行時に落ちます。

3.Asset/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xmlを編集する

NCMBで導入されたplay-service-xxx系のバージョンに合わせます。
ここでは11.6.0を11.0.0にします。
変更前


変更後


  1. PlayServiceResolverでAdMob関連のaarを再導入する
    Assets/Plugins/Androidを右クリックして表示されるメニューより
    PlayServiceResolver->Android Resolver->Resolveを実行します
     

 実行後は、以下のようにファイルが配置されます。
 

5.各AndroidManifest.xmlのtargetSdkVersionを統一する
-Assets/Plugins/Android/AndroidManifest.xml
-Assets/Plugins/Android/NcmbGcmPlugin.aar内のAndroidManifest.xml
-Assets/Plugins/Android/GoogleMobileAdsPlugin/AndroidManifest.xml
-その他導入済みのものがあれば

 AdMob導入時に既に実施しているかもしれません。
メインとなるPlugins/Android直下のAndroidManifest.xmlと
他のAndroidManifest.xmlでtargetSdkVersionが異なるとビルドエラーになります。

具体的には下記のような記述です。今回はNCMBのものが26になっていましたが25で統一しました。

 ここで問題になるのが、NcmbGcmPlugin.aarの中にあるAndroidManifest.xmlの変更です。
 実はaarファイルは単なるzip圧縮ファイルです。
拡張子をzipに変更してさくっと解凍しちゃいましょう。
 解凍すると以下のようなファイルが確認できます。

 このAndroidManifest.xmlはv3.1.1ではtargetSdkが26なので25に変更します。
 変更後は、再度zipで圧縮してaarに拡張子を変えればOKです。私は7-zipを利用しました。
 
 注意点として、zip圧縮時は上記のフォルダ群を選択して直接圧縮してください。
展開時にNcmbGcmPliuginといった名前などでルートフォルダを生成した場合
 そのルートフォルダを圧縮してしまうとフォルダ構成がおかしくなり、ビルド時に見慣れないエラーがでます。
 
 windowsであればこんな感じでZIPを作成します。

以上で無事ビルドができ、アプリの実行およびプッシュ通知の確認、AdMobの表示も問題なく実行できました。

最後に

 最近まで、たまたまNCMBとAdMobを同時に使うことがありませんでしたが、よく使われるのではと思います。
 Googleのplay-service-xxx系は色々と競合をおこしやすいのでやっかいです。
 今回のは特に面倒で1日半ほど時間がかかりました。
 大概は、競合していそうなplay-service-xxx系を削除すればいけるのですがはまることが多くてやっかいです。

Unity

AdfurikunCSharpSample

UnityでのAdfurikun(アドフリくん)動画広告C#サンプルコード

インタースティシャル動画、リワード動画、ネイティブ動画広告に対応しています。

Description

UnityでAdfurikun(アドフリくん)を利用する場合
動作サンプルにC#がないので作成しました。

なんでjsしかないの?アドフリさん。以下に対応しています

  • インタースティシャル動画広告
  • リワード動画広告
  • ネイティブ動画広告

<動作環境>

  • Unity5.6.3f1
  • adfurikunSDK_Unity_moviereward_2_11_0
  • Android7.1.2(Nexus5x)
  • iOS11.0.2/10.3.3(iPhone6Plus/iPhone5c)

DEMO:

adfuri

動画ネイティブの表示(Android)

スクロールビューでのページ切り替えに追従させています

Features

  • ネイティブ動画広告表示
  • インタースティシャル動画広告表示
  • リワード動画広告表示

Requirement

Adfurikunの動画SDK Unityを導入して下さい

Installation

$ git clone git@github.com:hmcGit/AdfurikunCSharpSample.git

  1. Android/iOSにSwitchPlatformします
  2. AdfurikunのUnitySDKを導入 Adfurikun動画SDK Unity

adfurikunPlugin_googlelib/adfurikunPlugins_2_xx_x.unitypackageなどからインポートします。

AndroidManifest.xmlはインポートされる物をそのまま利用してビルドできます。

3.testAdMainシーンを開きます

もしも2.のアドフリSDKを導入前にシーンを開いた場合、下記のヒエラルキーにあるPrefabが壊れていると思います。

その場合はAssets/Plugins/Adfurikunからヒエラルキー上にセットしてください。

  • AdfurikunMovieNativeAdViewUtility
  • AdfurikunMovieInterstitialUtility
  • AdfurikunMovieRewardUtility

h1

4.AdfurikunXXXUtilityに広告IDをセットします

h2

それぞれインスペクター上でIDをセットしてください。テスト用のIDほしいですよね。アドフリさんお願いします。

5.ビルド時の注意

ネイティブ動画はどうやら広告枠申請時のパッケージ名に合わせないと再生されません

リワード動画とインタースティシャルは任意でいけます

Usage

1.実行したら各ボタンを押して下さい。
画像はエディター実行時のものです。

便宜上画像では3画面を1つにくっつけていますが
各画面はスワイプで移動できます。
h3

Specification

1.スクリプト本体はscripts/ad以下のものです

  • MovieInterAdManager.cs インタースティシャル動画広告用

利用例)コルーチンでの呼び出しとして定義しています。


  • MovieRewardAdManager.cs リワード動画広告用

利用例)通常のメソッドです。


  • MovieNativeAdSelectStageManager.cs ネイティブ動画広告用
    (名前変え忘れた・・・)

利用例)シングルトンとして定義しています。引数はページ番号です。

呼び出し例は、scripts/TestAdfuri.csを参照してください。


  • スクロールビューについて

SnapScrollRectを利用しています。ピタッとスナップして気持ちよいです。


  • ページ切り替え時のネイティブ動画位置調整について

Canvas-Scroll ViewのonValueChanged()にてSelectStageAdManager.onChangePageAdAction()を呼んでいます。

onChangePageAdAction()では、MovieNativeADSelectStageManager::resetNativeMovieAd(int page)を呼んでいます。

ネイティブ動画の表示位置を設定するために「movieAdFrame0~2」のオブジェクトが各ページに設定されています。

Notice

1.サンプル実行について

リワード動画、インタースティシャル動画はパッケージ名任意でも再生されますが

ネイティブ動画はどうやら広告枠申請時のパッケージ名に合わせないと再生されません

NO_ADのエラーコードがかえってきます。ちなみに公式のサンプルもです。

2.インスペクターでのアタッチについて

MovieInterAdManager.cs/MovieRewardADManager.cs/MovieNativeADSelectStageManager.csは

それぞれ別のオブジェクトにアタッチしています。

これは同じオブジェクトにアタッチすると、それぞれのAdfuriSDKのCallbackが上手く呼ばれなくなるためです。

setMovieNativeAdViewSrcObjectなど、CallbackのあるObjectを設定する際に工夫すればいけるかもしれません。


3.iOSで動画再生時にBGMがかぶる

これはAndroidでは発生しないのですが、iOSではリワード・インタースティシャル動画が再生時に、

アプリ側のBGMが再生されてままでかぶってしまいます。

解決方法がわからなかったので、iOSのみBGM停止処理、終了後に再生とすることで対処しました。


4.iOSでのビルド

Editor/AdfurikunMovieRewardPostProcessにて以下を設定してビルドしました。

  • コンパイルフラグの設定
    Plugins/iOS/adnetworks以下にある各アドネットワークフォルダにそれぞれ以下のファイルがあります。

MovieInterStitial600x.mm/MovieReward600x.mm/MovieNative600x.mm

上記には「-fobjc-arc」追記しました。

基本的にはこれだけでビルドできます。以前よりずいぶん楽になった印象です。

Author

@hmc_j

www.alice3.net

Unity

UnityでOneSignalを利用したAndroid・iOSへ手軽なプッシュ通知の導入方法(Push Notification)

概要

UnityでAndroid/iOSにプッシュ通知を導入したい!

NiftyのmBaaS、Firebase?色々あるけどどれがいいんだろう?(ここでは比較はしません)

お手軽なプッシュ通知の導入方法として、OneSignalのセットアップから導入までを解説します。

OneSignalの特徴

[blogcard url=”https://onesignal.com/”]OneSignal[/blogcard]

OneSignalの特徴は以下の通り

  • Android/iOSアプリだけでなくWebプッシュにも対応
  • バッジ付き、リッチプッシュ、コールバック機能、etc…
  • スケジュール配信、開封率確認、言語別の配信設定、ユーザーに合わせた良き時間?での配信

などなど、無料なのですが通常のプッシュ通知で必要十分な機能があります。

※OneSignalの管理コンソールです

SDK導入(Android/iOS共通)

導入ステップは公式サイトからも確認できます。

[blogcard url=”https://documentation.onesignal.com/v3.0/docs/unity-sdk-setup”]OneSignalの導入(公式サイト)[/blogcard]

OneSignalの最新版unitypackageをダウンロードします

ダウンロードはgithubからできます。

[blogcard url=”https://github.com/one-signal/OneSignal-Unity-SDK/releases”]OneSignal(github)[/blogcard]

Unity4/5用があるので適切な物をインポートしてください。

必要なコードを設定します

OneSignal/Exampleフォルダにサンプルシーンとサンプルコードがあります。

 

サンプルコードの以下の部分を変更します。

>>OneSignal.StartInit(“ここにOneSignal app idを設定します“)

OneSignal App Idの取得をします。

OneSignal AppIdを取得する

・OneSinal.comにアクセスして、アプリを登録します

(OneSignalのアカウントを作成していない場合は作成してください)

・Add a new appからアプリを登録します

(この画像では既に登録済みのアプリ「Notification Test」が見えていますね)

・アプリを登録したら、「AppSetting」->「Keys&IDs」からOneSignalAppIDが確認できます。

このIDを先ほどの「OneSignal.StartInit(“”)」に設定してください

Androidのセットアップ

  • Assets > Play Services Resolver > Android Resolver > Resolve Client Jarsを実行して必要なjarを設定します
  • Assets/Plugins/Android/OneSignalConfig/res/にて、アイコンの設定を行います

[blogcard url=”https://documentation.onesignal.com/v3.0/docs/customize-notification-icons”]アイコン設定の詳細はこちら[/blogcard]

公式ではこのあとAmazonのストアに出す場合のManifestファイルについての解説が書かれていますが、ここでは不要です。

OneSignalの管理コンソール設定

これで最後です。

OneSignalの管理画面から、AppSetting->Google Androidの「Configure」を選択します。

Google ServerAPI Keyと Google Project Numberの設定画面が表示されます。

画面に表示されている「Read the documentation…」をクリックすると取得方法が表示されます

[blogcard url=”https://documentation.onesignal.com/docs/generate-a-google-server-api-key”]Google Server API Keyの設定方法[/blogcard]

Firebaseでプロジェクトを作成する

Google Server Api Keyの取得のため、Firebaseにログインしてプロジェクトを作成します。

プロジェクトを作成したら、「歯車アイコン」->「プロジェクトの設定」と進みます

設定->クラウドメッセージングと進みます。

表示される「サーバーキー」と「送信者ID」を使用します。

  • サーバーキ-:(OneSignalの管理コンソールでの)Google Server Api Key
  • 送信者ID:(OneSignalの管理コンソールでの)Google Project Number

なんかわかりずらいですが、先ほどのOneSignal管理コンソールで設定する値がこれで取得できました。

Androidでのセットアップは以上です!

iOSのセットアップ

Androidと同じく[blogcard url=”https://documentation.onesignal.com/v3.0/docs/unity-sdk-setup”]SDKセットアップ[/blogcard]を見ながら進めます。

まず、Unityで通常通りXcodeのファイルをビルドし、Xcodeでプロジェクトファイルを開きます。

ここからはXcodeでの設定となります。

  • 「Capabilities」から”Push Notifications”を有効にします
  • 「Background Modes」から”Remote notifications”を有効にします。

「Build Phases」から”UserNotifications.framework”を追加します。

オプションとして、iOS10で通知のアクションボタンとメディアを添付する場合の方法が公式にあります。必要に応じて設定してください。ここでは省きます。

OneSignalにアップロードするCertificateファイルを準備します

2通りの方法があります。

ここでは、OneSignalのサイトから利用可能なWizardサイトを利用します。

[blogcard url=”https://onesignal.com/provisionator”]Push Notification Certificate Wizard[/blogcard]

Wizardを利用しない場合はこちらのガイドをみて取得してください

 

Wizardサイトにアクセスし画面中央水色の「GetStarted」をクリックします

  • Step1:Apple DeveloperのIDとPassでログインします
  • Step2:使用するTeamを選択します
  • Step3:使用するアプリのIDを選択します

App IDを作成していない場合は、Apple Develoerのサイトで作成しておきます。

作成方法は、上記で紹介しているOneSignalサイトのガイドにも記載されています。

ポイントとしては、「Enable Push Notifications」をチェックすることです。

また、上記のガイドには[Apple Push Notification service SSL(Sandbox & Production)]のCertificateを作成する方法が記載されています。

話がそれましたが、OneSignalサイトのWizardからGenerateした.p12ファイルをダウンロードしておきます。

OneSignal管理サイトで生成した.p12ファイルをアップする

OneSignalのサイトからPush通知を送るアプリを選択し「Apple iOS」→「Configure」と進みます。

先ほどWizardで生成した.p12ファイルをアップロードします。

お疲れ様でした!これでAndroid/iOSのアプリに関して設定が完了です。

ビルドしてアプリをインストールしてください。

OneSignalでプッシュ通知を送る

お待ちかね!通知を送ってみましょう!

OneSignalのサイトからアプリを選択し「NewMessage」にすすみます。

送信先をSegment設定も出来ますが、とりあえずEveryoneにします。画面の右上にNextとオレンジのボタンがでるので押して進めます。

送信内容を設定します。画面左が送信内容の設定、右がプレビューです。

左下にある「Add Another Language」で言語を追加できます。ここではJapaneseを追加しました。これにより、簡単に言語毎に内容を分けることが出来ます。この画面では、Title/Subtitle/Messageを設定してNextに進みます。

 

iOSではバッジの設定などを行うことが出来ます。Androidではアイコンやサウンド設定が出来ます。今は標準で送信してみるので設定は不要です。

次は送信タイミングの設定です。上段はすぐに送るか、時間指定かです。

下段はちょっと面白いのですが、すぐに送るか、ユーザー毎に適切な時間に送るかを選択できます。

どうやらこの適切な時間というのはユーザー毎の開封率?クリック率?などの反応がもっとも良さそうな時間帯を判断して送ってくれるようです。

Confirmをおすと確認画面になり「Send Message」で送信されます。

無事、Android/iOSともにプッシュ通知が配信されました。

 

 

Unity

宴3へのバージョン時には既存シーンのレイヤー「UtageUI」「Utage」を「UI」「Default」に変更!

Unityは5.5系列

Unityは5.5系列からの対応となります。宴とは直接関係ありませんが、Profilerを使用している場合は

using UnityEngine.Profiling;

が必要になります。

 

宴2で作成したシーンの更新作業

宴の更新作業自体は下記の公式サイト情報を参考にしてください。

 

 Unity用ビジュアルノベル作成ツール 「宴」

宴3のアップデートガイド | Unity用ビジュアルノベルツール「宴」

http://madnesslabo.net/utage/?page_id=8551#DL
宴3(現在βテスト中)のアップデートガイドです。 新機能まとめはこちらに、Q&Aはこちらにお願いします 宴3でのアップデートの注意点 Unity5.5.0以上が必須となります アップデートの際はUtageフォルダを丸ごと削除してからインポートをしてください 基本的には新…

 

 

公式に情報がないシーン修正作業

このとき、公式に情報がないのですがレイヤー設定に注意が必要です。

宴2で作成したシーンで、レイヤー設定が3では変更されています。

具体的にはUtageUIをUIに、UtageをDefaultに修正してください。

  • UtageUI → UI
  • Utage  → Default

これをやらないと、背景画像のサイズが小さくなったりテキストが表示されなくなったりします。

バックログ動作を変更している場合の注意

バックログ機能で、「IsMultiTextInPage」オプションを使用している場合は、2017年3月16日現在の宴3ではバックログが表示されなくなってしまいます。

 

 Unity用ビジュアルノベル作成ツール 「宴」 

Q&A | Unity用ビジュアルノベルツール「宴」

http://madnesslabo.net/utage/?page_id=8530
宴用のQ&Aです。投稿は一般公開されますのでご注意ください Googleグループで作成していますので、新しく投稿するには、Googleアカウントでのログインが必要です。 ユーザーグループに参加していただくと、より使いやすくなると思いますので試してみてください

 

公式に連絡したところ、パッチをもらいました。今後のバージョンアップで対応されると思われます。

 

Watch Full Movie Online Streaming Online and Download

Unity

Unityで2時間くらいで作ったお馬鹿アプリについて

「ちゃんとよめちゃう変換~ちんゃと よゃちめう 変換~」

アプリは下記から落とせます。

[blogcard url=”https://play.google.com/store/apps/details?id=com.seekerslab.yometyau”]Android[/blogcard]

[blogcard url=”https://itunes.apple.com/us/app/chin-yatoyo-yachimeu-bian/id1161114536?mt=8″]iOS[/blogcard]

どんなアプリ?

一昔前に流行った?こんな文章を実現します。

なぜだか読めちゃう文章を生成。たごんの あまたと さごいが おじななら とゅちうを 入え替れても よちめゃう でしょ?

タイポグリセミアと呼ぶらしいです。ケンブリッジ変換というあだ名も。

Unity初学者のお勉強教材として作った物です。

主な機能

上段の入力フィールドに入力すると、下段の入力フィールドで変換結果を表示します

シェア機能あり

コピー(クリップボードコピー)

 

ポイント

Unityを初学者に教えるためのサンプルとして作りました。

ソーシャル機能は定番のSocialConnectorです。

[blogcard url=”https://github.com/anchan828/social-connector”][/blogcard]

 

クリップボードへのコピーはUniClipboardです。

[blogcard url=”https://github.com/kyubuns/UniClipboard”][/blogcard]

 

UnityのInputFieldは、長押しコピーとかが出来ません。それができるAssetです。

[blogcard url=”https://www.assetstore.unity3d.com/jp/#!/content/36358″][/blogcard]

無料なのでいいかも。

 

最初は単語を分かち書きするためにTinySegmentatorを使用しました。

ですがかえって結果がおかしくなるので、単語が3文字以上であればシャッフルとしました。

アニメーションGif(クリックして下さい)

ほんと下らなくてすみません。ゲームじゃ無くてジョークアプリも作れるよってことでした。

Unity

Unityで雲にのっかったときのようなポヨンとする表現を単純に実装

[blogcard url=”https://github.com/hmcGit/FuwaMuni”]gitにもあげてます[/blogcard]
プロジェクトはgitにもあります。

こんなかんじで、ふわふわしたものにのっかったときに、ぽよん!とさせたいときに!
スクリプトでのごく簡単な実装です。

※ふわふわスクリプトは[blogcard url=”http://veniegames.com/?p=21″]Unityふわふわ浮いているようにする[/blogcard]を参考にしました。

スクリプト解説

ふわふわ、ぽよんとするオブジェクト

雲などのふわふわ動いて、のっかるとぽよんとするオブジェクトにアタッチします。RigidBody2Dとコライダーも忘れずに

cloud

FixedUpdate()のFuwaFuwa()がふわふわ漂うスクリプト(これは参考URLのものです)
OnCollisionEnter2D()がコリジョンに接触したらよびだされますが、
MuniMuni()がぽよんとさせるスクリプトです。
MuniMuni関数内で

としていますが、これでプレイヤーと雲を親子にし連続で小刻みにボヨボヨするのを防いでいます。

CloudControl.cs

void FuwaFuwa() { frameCnt += 1; if (10000 <= frameCnt) { frameCnt = 0; } if (0 == frameCnt % 2) { // 上下に振動させる(ふわふわを表現) float posYSin = Mathf.Sin(2.0f * Mathf.PI * (float)(frameCnt % 200) / (200.0f – 1.0f)); iTween.MoveAdd(gameObject, new Vector3(0, amplitude * posYSin, 0), 0.0f); } } ///

/// IEnumerator MuniMuni() { Vector3 ds = transform.localPosition; //すこしyポジションを動かしてむにっとした感じにする for (int i = 0; i <= 180; i += 20) { transform.localPosition = new Vector3( ds.x, ds.y – 0.5f * (Mathf.Sin(i * Mathf.Deg2Rad)), 1); yield return new WaitForFixedUpdate();// WaitForSeconds(0.016f); } } void OnCollisionEnter2D(Collision2D coll) { //コリジョンにEnterしたらむにむにさせる StartCoroutine(MuniMuni()); coll.transform.SetParent(this.transform); } }

ふわふわにのっかるオブジェクト

プレイヤーキャラクターなどの、雲などにのっかる方にはこちらをアタッチして下さい。
player
キャラクターには、RigidBody2dとコライダーのアタッチも忘れずに。
ポイントは、キャラクタの操作でジャンプした瞬間に、雲に設定していたParentを解除しているところです。

PlayerContro.cs

Unity

UnityでAdmob広告を使用する場合の注意

使い方は簡単なのですがたまに表示されなかったりする場合の注意など。

インタースティシャル広告を連続で出す

みんな大好きAdmob。インタースティシャル広告を連続で出す場合は注意が必要です。
広告を閉じた際にDestryo後、再度Requestを行わなければなりません【Destroy()およびRequestInterStitial()】
OnAdFailedToLoad/OnAdClosed/ OnAdLeavingApplicationなどのイベントを利用しましょう。

/// /// void HandleInterstitialClosed(object sender, EventArgs args) { if(interStitialView != null) interStitialView.Destroy(); RequestInterStitial(); } void HandleInterstitialFailedToLoad(object sender, EventArgs args) { if (interStitialView != null) interStitialView.Destroy(); RequestInterStitial(); } void HandleInterstitialLeftApplication(object sender, EventArgs args) { if (interStitialView != null) interStitialView.Destroy(); RequestInterStitial(); } }

広告が表示されない場合

広告がクリックできないときはAndroidManifest.xmlに

を追加すれば良いのですが、広告自体が表示されないことがまれによくあります。

こういうときは、大概以下のどれかが原因です。

    • 広告IDが間違っている、配信されていない

広告IDのコピペミス。「ca-app-pub-xxx/xxx」のスラッシュ以降のコピペ漏れ。申請すぐの使用でまだ配信されていない。

    • AndroidManifest.xmlがおかしい

これ結構有ります。特に、既存プロジェクトでごちゃごちゃしている場合にありがちです。一旦バックアップを取ってマニフェストファイルを整理するとあら不思議、表示されちゃったりします。

    • jarファイルの不足

古いjar(android-support-v4.jar、unity-admob-plugin.jar)が重複している場合はビルドエラーになりますが、不足しているとアプリが落ちたり広告が表示されなかったりします。
Plugins/Androidフォルダーを右クリックしてResolveClientJarsしましょう(PlayServiceResolver万歳)

161119-02

Unity

リストの中身をランダムに並び替え、ランダムな要素を取得

Unity関係ありませんが、結構使うので。たまに役に立ちます
ちなみにこの辺の投稿を参考にしています。
[blogcard url=”http://answers.unity3d.com/questions/486626/how-can-i-shuffle-alist.html”][/blogcard]

配列の中身を並び替え

リストの中身を並び替え

リストと配列の要素をランダムに取得

ついでに配列とリストの要素をランダムに取得するメソッドです。

配列の要素をランダムに取得

リストの要素をランダムに取得