勉強不足で至らんブログ

勉強不足ですが色々と書いていきます。

ItalangMongラジオ三連続更新!!?

昨日、一昨日と連続で更新があってます!!ItalangMongラジオ!!

今回は、第40回八時間耐久作品制作会(仮)のレポートです!!

 

第40回では、UnityでFPSゲームがあったり…プラモデルのゾイドと同じ作りにした3Dモデルがあったり…何でもありの八耐らしさが出てるのではないのでしょうか!?

 

www.nicovideo.jp

 

ラジオ中にも、あるのですがProcessingでAndroid4以上の端末でカメラを使う方法知りたいです!!ぶっちゃけると、Android端末でOpenCVを動かしてみたいので前提としてカメラ使いたいんです!お知りの方は、コメント等で教えてください!!

ItalangMongラジオ連日更新!!

昨日も更新がありました、ItalangMongラジオ!

今回は、第39回八時間耐久制作会(仮)のレポートです!!

 

内容としては、自作PCがあったりイラストがあったりモデルがあったりと…作品の画像とともに解説しています!

 

そして、途中から…いつものパーソナリティーの様子が…!?

 

www.nicovideo.jp


ItalangMongラジオ更新!

 はてさて、今年の2月から始まってます。ItalangmMongラジオ、第三弾が公開されました。(第二弾から期間が空いたのは内緒…)

 今回は、Processingを用いて48時間で制作をしたゲームを紹介しています!

・名刺交換で会社の利益を上げる

・彦星と織姫の仲を引き裂く

・宇宙人の侵略から基地を守る

の3本です!是非、見てください!!

 

www.nicovideo.jp

gitコマンドで知っておくと便利なもの2選

さて、前にgitコマンドの初心者用備忘録を更新しました…

gitコマンド備忘録 - 勉強不足で至らんブログ

その続きというか…ちょっと掘り下げてみます。

今回は、gitを使っていて便利だと感じたコマンドを記述しておこうかと…少ないですが簡単に説明します。

 

 まずは

git stash

これは、現在いるブランチでの変更点のみを一時的に保存して、別のブランチに反映することが可能なコマンドです。

なので、あるブランチに居てstashをした後にすぐブランチを切り替えて別のブランチへ移動してから変更点を移動後のブランチで反映できます…優れもの…

使い所はしっかり見極めて欲しいのはありますが、うまく使うと便利です。

ちなみに、反映させるときは

git stash apply 

 を入力してください。

 

次に、コンフリクトしたとき、その都度テキストエディタを開いて探すのめんどくさいですよね?そのときは

git mergetool

です。これを入力することによって変更点がGUIで見れるようになります。

f:id:MakeTake:20160417202646p:plain

こんな感じで、左右に差分が表示されます。どちらを適応するのか選択するには右下の"Actions"をクリックします。

f:id:MakeTake:20160417202745p:plain

すると、左を適応するのか、右を適応するのか等が表示されるので適応するものを選択します。選択し終えたらmergetool自体を終了してください。その後、commit等ができるようになります。

 

さて、今回の更新は以上です。少ないですが、知っておくと便利かと思います。

UnityEditor拡張 指定した拡張子のAssetを削除する

さて、UnityEditor拡張をする機会があったため残しておこうかと
 
今回は、指定した拡張子のAssetの削除をEditor拡張で行います。
 
早速ですが、以下がソースコードです。
 
using UnityEngine;
using UnityEditor;
using System.IO;
using System.Collections;
using System.Collections.Generic;
 
 //UnityEditor上でWindowを表示するためEditorWindowクラスを継承します。
public class DeleteResource : EditorWindow {
 
     public static List<string> log;
 
     [MenuItem("Assets/Delete Resource Asset")]
     //EditorでDelete Resource Assetを選択するとProcess()が呼ばれます。
     static void Process(){
         log = new List<string> ();
//削除したい拡張子を指定します。   string[] searchTarget = {".prefab", ".cs"};   EditorWindow.GetWindow<DeleteResource>();  
//削除したいフォルダまでのパスを指定します。   string folderPath = Application.dataPath + "/Resources/DeleteAsset";
//フォルダがあるか確認します。   if(!Directory.Exists(folderPath)){
log.Add("folder is missing");   return;   }  
//フォルダにあるファイルを一括で取得します。   string[] files = Directory.GetFiles (folderPath);   foreach(string filePath in files){   foreach(string search in searchTarget){   if(search.Equals(System.IO.Path.GetExtension(filePath))){   File.SetAttributes (filePath, FileAttributes.Normal);   File.Delete (filePath);
//Assetの変更を適応する。
AssetDatabase.Refresh();
//削除したファイルをWindowに表示するためListに追加します。   log.Add(filePath);   }   }   }     }     void OnGUI(){   if(log != null){   if(log.Count != 0){   foreach(string l in log){
//Windowに文字を表示します。   EditorGUILayout.LabelField (l);   }   }   }   }   }
 
まず、Assetsフォルダ配下にEditorフォルダを作成して、DeleteResource.csを作り上記のソースコードを記述してください。また、Resourcesフォルダを作成して配下にDeleteAssetフォルダも作成してください。

f:id:MakeTake:20160410115523p:plain

 

そして、DeleteAssetフォルダに今回は.prefabと.csを削除するため、削除するAssetを作成しましょう。

f:id:MakeTake:20160410115544p:plain

 

そして、早速削除しちゃいましょう。UnityEditorのメニューバーのAssetsの配下にDelete Resource Assetが現れていると思います。

f:id:MakeTake:20160410115633p:plain

 

クリックしましょう。

 

新たにWindowが出てきましたか?

 

f:id:MakeTake:20160410163203p:plain

削除したAssetのPathが表示されて、Assetがきちんと消えましたか?消えたら成功です。

 

以上がUnityEditor拡張で指定した拡張子のAssetを削除する方法です。

UnityEditor拡張は何かと便利に使える可能性を感じれたので、今後も触っていこうと思います。

 

gitコマンド備忘録

先日、研究室の後輩たちにgitの初心者講座をしたときのコマンド等を書き残しておこうかと…

 

また、今回はgitの説明は省きます。コマンドの備忘録なので、gitについて知りたい方は

Gitを使ったバージョン管理【Gitの基本】 | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ

または

マンガでわかるGit 第一話「Gitってなあに?」

を参照してください。

 

今回、gitのクライアントとしては

MacOS → ターミナル

Windows → git bash

を想定しています。

まず、bashの必要最低限のコマンドから書き残します。< >での記述がありますが必要に応じて変更してください。

例 : cd <フォルダ名> → cd Desktop = デスクトップへ移動

-フォルダ名の場所へ移動 

cd <フォルダ名> 

-現在自分がいる階層の一覧を見る(ファイルやフォルダの確認ができます)

ls

-現在の階層のパス

pwd

-フォルダを作る

mkdir <フォルダ名>

-ファイルを作成

touch <ファイル名>

        

以上のコマンドを覚えると、コマンドでの操作がしやすくなります。

 

さて、本題のgitです。

-現在の階層にリポジトリを作成

git init

-インデックスに<ファイル名>追加

git add <ファイル名> 

-インデックスに全てのファイルを追加

git add * 

-リポジトリに記録する

git commit 

-コメントをつけてリポジトリに追加する

git commit -m "<コメント>"

-切り替え操作

git checkout <切り替え先>

-ブランチを切り替える

git checkout <ブランチ名> 

-コミットを切り替える

git checkout  <コミットの識別番号> 

-現在の階層のリポジトリの状態を得る 変更したファイル等がわかる

git status 

- ブランチのログが見れる

git log

-多少グラフィカルにログが見れる

git log --graph 

-自分が行ったgitの操作のログ

git reflog 

-ローカルブランチの一覧を取得

git branch 

-リモートブランチを含めた一覧を取得

git branch -a 

-ブランチの結合を行う

git merge 

-リモートのリポジトリを設定

git remote add <name> <url> 

-リモートのリポジトリを設定し、リモートの内容をローカルにコピーする

git clone <url> 

-リモートへローカルの内容を送信する

git push <remote name> <local branch>:<remote branch>  

-リモートの内容をローカルに受信して、結合を行う

git pull <remote name> <local branch>:<remote name>

 

ざっと…以上です。何かあればツッコンでくれると嬉しいです。

 

InMobi × Unity Androidでバナー広告の表示をしてみる

今回は、UnityでInMobiの広告サービスの使い方を書きたいと思います。

ただ、自分がバナー表示しかしたことがないため情報としては少ないかもしれないです…また、今回はストアにアプリを出していない人向けに書きます。

 

ちなみに、Unityのバージョンは5.1.4で行っています。

 

まずはInMobiでアカウントの作成を行ってください。

InMobi | Mobile Discovery Commerce | Monetization | Advertising

f:id:MakeTake:20160308214948p:plain

 

アカウントは作りましたでしょうか?さてさて、設定を行っていきましょう。

f:id:MakeTake:20160308215355p:plain

上のタブ「MONETIZE」を選択します。すると左の方に"+"がありますか?クリックしてください。

 

自分は例として、架空のアプリの設定を行います。自身のアプリに沿った設定をお願いします。

 

では、作成するAppの設定ですね。項目は13あるため、どうかお付き合いください。

1.  "Have an app that isn't yet published?"をクリックしてください。

f:id:MakeTake:20160308215459p:plain

 

2. 作成するアプリの名前を入力し、Platformを選択します。下のチェックボックスは13歳以下を対象にしているかを聞いています。全年齢対象ならば、チェックしておきましょう。

f:id:MakeTake:20160308220423p:plain

 

3. 今回はバナー広告の設定を行うため"BANNER"を選択します。

f:id:MakeTake:20160308220336p:plain

 

4. 広告の名前を決めましょう、今回は"Banner 1"としておきます。

f:id:MakeTake:20160308220653p:plain

 

5. "Select your development platform"でUnityを選択します。

f:id:MakeTake:20160308220831p:plain

 

My Appsのリストに先ほどの設定が加わったでしょうか?

f:id:MakeTake:20160308221134p:plain

 

…さて、続けましょう。

 

6. 加わったSampleというアプリ名をクリックします。

f:id:MakeTake:20160308221556p:plain

 

7. 設定したバナー名をクリックします。今回だと"Banner 1"ですね。また、アプリ名の下に"Property ID"とあります。後々使用するので、注意しておいてください。

f:id:MakeTake:20160308221658p:plain

 

8. PLACEMENTSという設定ページですね。ここで、重要なのが"Placement ID"です。後々使用するため、注意しておいてください。

f:id:MakeTake:20160308221732p:plain

 

9. InMobiのUnityパッケージをダウンロードしましょう。

https://support.inmobi.com/monetize/integration/partner-platforms/unity-partner-platform-android-integration-guide/

リンクを開くと以下のような画面となります。

f:id:MakeTake:20160419233440p:plain

"ここ"という部分をクリックするとパッケージのダウンロードができます。

 

10. UnityEditorにInMobiのUnityパケージをImportをしましょう。

f:id:MakeTake:20160419233727p:plain

Import時には、このようなWindowが出てくると思います。そのまま、Importを押して続けましょう。

 

11. Importが終わると以下のようなProject構成になると思います。そして、Assets>Plugins>InMobiAndroid>demoのInMobiTestSceneを開きましょう。

f:id:MakeTake:20160420002934p:plain

 

Hierarchy内のInMobiAndroidManagerを選択します。

f:id:MakeTake:20160420003232p:plain

InMobiAndroidManagerのInspecterにある、In Mobi Android Manager (Script) を開きます。

 

12. ここからは、ソースコードを一部改変します。ちなみに、改変するのはAwakeメソッドのみです。以下のように改変してください。

	void Awake()
	{
		// Set the GameObject name to the class name for easy access from Obj-C
		gameObject.name = this.GetType().ToString();
		DontDestroyOnLoad( this );
		
        var dict = new Dictionary<string, string>();
        string name = "ban1";
        //Property IDを引数に渡します。(string型)
        InMobiAndroid.init ("Property ID", dict);
        //Placement ID(long型), bannerの名前, bannerの位置, 横のサイズ, 縦のサイズ, インターバルの時間 を引数に渡します。
        InMobiAndroid.createBanner (Placement ID, name, InMobiAdPosition.BottomCenter, 320, 50, 30, "test1,test2,test3", dict);
	    //作成したbannerの名前を引数に渡します。
        InMobiAndroid.loadBanner(name);
    }

PropertyIDは、項目の7を参照してください。

PlacementIDは、項目の8を参照してください。

 

上記の変更行ったら、しっかりと保存してUnityEditorに戻ってください。

 

13. Androidでのみ動作するためBuildするプラットフォームをAndroidに切り替えビルドしてください。Androidにビルドする環境は、ご自分で用意をお願いします。

 

実行すると以下のような画面になるかと思います。ビルドするとGUIボタンが並んでいると思いますが、無視してください。アプリを起動してから、一分程経つと自動的に画面下にバナーが現れます。

f:id:MakeTake:20160420012731j:plain

 

以上が、InMobiを使用してUnityでバナーを出現させる方法です。もし、出現しない場合はPropartyIDやPlacementIDを見直してみてください。