nirasan's tech blog

趣味や仕事の覚え書きです。Linux, Perl, PHP, Ruby, Javascript, Android, Cocos2d-x, Unity などに興味があります。

2014-01-01から1年間の記事一覧

UnityでAndroidとiOSのアプリ間連携機能を使ったシェア機能の実装

はじめに Unityでアプリ間連携機能を使ったシェア機能を実装します。 Androidでは暗黙的インテントを、iOSではUIActivityViewControllerを利用します。 Unityでのシェア機能実装 任意の処理から下記スクリプトのShareメソッドを呼び出しシェア機能を起動しま…

NGUI でインターネット上の画像を表示するには

WWW で画像を読み込み、UITexture で表示する。 サンプル 以下のスクリプトを任意のオブジェクトにアタッチして実行する。 using UnityEngine; using System.Collections; [RequireComponent(typeof (UITexture))] public class LoadTextureFromWWWSample : …

NGUI で ScrollView の描画順を調整する

NGUI で ScrollView の描画順を調整するには ScrollView オブジェクトに UIScrollView と一緒にアタッチされている UIPanel の SortOrder と Depth の値を変更する。 SortOrder はおおもとの描画順で、Depth は同一 SortOrder の要素同士の描画順を指定する…

Unity + NGUI + iOS でも Atlas のテクスチャサイズが大きすぎるとやっぱり死ぬ問題

はじめに 前回と同じアプリをiOS環境でビルドしようとしてエラーが発生した件。 Unity + NGUI の環境で iOS のビルドをしようとしたとき、4096x4096 のテクスチャを使った Atlas を2枚があるとエラーが発生してビルドできない。 エラーメッセージ 以下のよう…

Unity + NGUI + Android で Atlas のテクスチャサイズが大きすぎると死ぬ問題

はじめに Unity + NGUI の環境で Android 実機で起動したとき、4096x4096 のテクスチャを使った Atlas を2枚使おうとすると再起動がかかる。 エラーメッセージ 以下のような感じで android.os.DeadObjectException とかいうのが出る。 W/InputMethodManagerS…

Unity で iOS 実機だと Update 中に GetComponent するとたまに一瞬固まる問題

問題 題名の通り。 Unity Editer や Android で動かしている分には気がつかなかった。 同じ処理でも固まったり固まらなかったりする。初回はだいたい固まるのでキャッシュしてくれているのか。 対策 問題の箇所では Prefab を Instantiate して、作成した Ga…

NGUI の UIScrollView で1要素分スクロールさせるスクリプト

はじめに Unity の NGUI で UIScrollView を使うと、要素を列挙してスクロールして表示させるようなパーツが簡単に実装できます。 列挙する要素に UIDragScrollView コンポーネントをアタッチすると、ドラッグでスクロール可能ですが、今回は1要素分だけ進…

au の INFOBAR A02 を mineo に MNP したメモ

au の MNP 予約番号発行 電話で予約番号を発行してもらう。 mineo 申し込み データ容量1GB、090音声通話あり、端末なしで申し込み。 SIM カード受け取り 数日で宅配される。 SIM カード差し替え 電源を切って、電池パックをとったところにあるので差し替える…

Unity で Google Analytics を使う

はじめに Unity で Google Analytics を使ってログ集計をする。 http://qiita.com/yimajo/items/0861a79e741cbd463179 こちらのサイトを主に参考にした。 Google Analytics の Unity 用プラグインのβ版が公式から出ているが、なんかうまくログを送信できなか…

Unity + NGUI でスワイプをしたときに処理を実行するスクリプト

はじめに Unity + NGUI でスワイプしたときに処理を実行するスクリプトを実装したメモ。 スワイプ終了時と、上下左右のスワイプにそれぞれひもづけて、実行するメソッドを登録できる。 スワイプしたときに処理を実行するスクリプト Collider のアタッチされ…

Unity で Parse.com を使う - オブジェクトの CRUD 編

参考サイト https://parse.com/docs/unity_guide 登録 GameScore クラスのオブジェクトを作成する // オブジェクトの作成 ParseObject gameScore = new ParseObject("GameScore"); // カラムにデータの登録 gameScore["score"] = 1337; gameScore["playerNam…

NGUI の UIGrid で Sort をカスタマイズする - 名前の降順・名前を数字で評価して降順

はじめに Unity の NGUI でリストを表示するとき、UIGrid を利用すると簡単に実装できる。 Sort 順を既存の "追加順の昇順(None)"、"名前の昇順(Alphabetic)" 意外にしたい場合に対応したメモ。 並び替え評価用の関数を宣言する UIGrid.cs にある既存の並び…

Unity で二つの値の間を行き来する値の取得方法2種類

Mathf.PingPong t を基準にして 0 から length までの値を返す 返り値の例 Debug.Log (Mathf.PingPong(0f, 3f)); //=> 0 Debug.Log (Mathf.PingPong(0.5f, 3f)); //=> 0.5 Debug.Log (Mathf.PingPong(1f, 3f)); //=> 1 Debug.Log (Mathf.PingPong(2f, 3f)); …

Unity でマスターデータを Excel で管理する

はじめに Unity-Excel-Importer-Maker というライブラリを使用して、Unity でマスターデータを Excel を使って管理する方法を確認したメモ。 Unity-Excel-Importer-Maker のインストール https://github.com/tsubaki/Unity-Excel-Importer-Maker から "Downl…

Unity & NGUI でタッチやスワイプのイベントを取得する

はじめに Unity & NGUI で、パズドラやポコパン的な、オブジェクトを選択してなぞるアクションをした場合のイベント取得方法をまとめました。 コード UISprite と Box Collider と下記のスクリプトをアタッチしたゲームオブジェクトを、複数個シーンに配置し…

Unity に nend の広告を組み込む - iOS 編

はじめに Unity に nend の広告を組み込む - Android 編 - nirasan's tech blog が終わっている前提で、iOS での広告表示を行います。 iOS アプリ作成 apple の開発者サイトの Member Center から、Certifications, Identifiers & Profiles に移動 Identifie…

Unity で Android のビルドができない問題2件

はじめに Google Play Games パッケージのインストール後に発生? 1件目 エラーメッセージ Error building Player: Win32Exception: ApplicationName='/PATH/TO/ADT/adt-bundle-mac-x86_64-20131030/sdk/tools/zipalign', CommandLine='4 "/PATH/TO/PROJECT/…

Unity に nend の広告を組み込む - Android 編

nend への登録 http://nend.net/ から nend 上でアプリと広告枠の作成 nend のマイページから nend SDK の組み込み マニュアルの通り AndroidManifest.xml のひな形は /Applications/Unity/Unity.app/Contents/PlaybackEngines/AndroidPlayer からコピー 広…

Unity でドット絵画像がぼやけるの対策

対策 Unity の Sprite でドット絵を表示しようとしたところ、ところどころぼやけてしまう。 画像のインスペクターで "Format" を "Compressed" から "Truecolor" にしたら正常に表示されるようになった。 参考サイト http://answers.unity3d.com/questions/3…

Unity でホーミング弾的なものの実装

はじめに プレイヤーに向けて移動するホーミング弾的なものの実装 Vector3.MoveTowards は2点間の特定の位置を返すので、プレイヤーの座標と弾の座標を指定して、Update 毎に距離を詰める コード public class Bullet : MonoBehaviour { void Update () { Ga…

Unity で拡張メソッドと静的コンストラクタを使った enum 文字列変換の高速化

はじめに Unity の C# スクリプトで列挙型から文字列への変換は ToString メソッドでできるが遅いらしい そこで、静的コンストラクタで列挙型から文字列に変換しておいて、拡張メソッドで変換した文字列を参照するようにしてみた 宣言 using UnityEngine; us…

Unity で Parse.com を使う - 初期化からユーザー登録とユーザーログインまで

はじめに Unity で MBaaS である Parse.com を使ったアプリの作成から、ユーザーの登録とユーザーログインまでを行ったメモ。 Parse.com の登録とアプリの作成 Parse.com への登録は https://www.parse.com/ の Sign Up から。 ユーザー登録をすると、そのま…

Unity で List を string に変換して PlayrePrefs に保存する

List を string に変換するコード using UnityEngine; using System; using System.IO; using System.Collections; using System.Runtime.Serialization.Formatters.Binary; namespace MyUtils { public class SerializeUtils { public static string Serial…

Unity で Android のネイティブクラスのクラス変数の値を変更する

// Android のネイティブクラスの取得 AndroidJavaClass ajc = new AndroidJavaClass("com.example.SomeClass"); // public static int な変数の値を変更 ajc.SetStatic<int>("someStaticInt", 123); // public static String な変数の値を変更 ajc.SetStatic<string>("so</string></int>…

Unity で iOS のローカル通知を実装

はじめに Unity で iOS のローカル通知を実装する。 Android とは違って、iOS ネイティブの通知機能のラッパーが Unity 側で実装されているので、これを呼び出すだけでよい。 前回の Android 版と同様に、アプリが非アクティブになったら、一定時間後にロー…

Unity で Android ネイティブプラグインの実装 - 一定時間起動していない場合にローカル通知を出すバックグラウンド処理の実装

はじめに 前回に引き続き Unity での Android ネイティブプラグインの実装 今回は、アプリ起動後に非アクティブにしたまま一定時間が経過したら、ローカル通知を出して呼び戻す機能の実装。 プラグイン側の実装 バックグラウンドで実行される Service を実装…

Unity で Android のネイティブプラグインの実装 - ローカル通知を送信する

はじめに Unity で Android のネイティブプラグインを書いてみた記録。 ネイティブプラグイン作成環境を構築し、実際にローカル通知を出すプラグインを作成した。 ネイティブプラグイン作成環境構築参考サイト http://qiita.com/relzx/items/a35f7ab6dbacb48…

Unity で状態遷移のために有限オートマトンの実装

はじめに ゲームオブジェクトの状態遷移処理を毎回 Update とかに書いていたので、https://github.com/thefuntastic/Unity3d-Finite-State-Machine を参考に有限オートマトンを実装した。 有限オートマトンクラス 状態を管理するクラス 状態を管理したいオブ…

Unity で Observer Pattern

はじめに Unity で Observer Pattern を実装したメモ http://www.gamasutra.com/blogs/DarrelCusey/20130829/199271/A_Simple_Observer_Pattern_for_Unity_42.php を参考に、MonoBehaviour を継承しなくても使えるようになどの変更をした ついでに Unity Tes…

Unity 2D と NGUI で横幅を固定する

はじめに Unity の 2D 表示と NGUI では、ともに画面の縦幅を固定するオプションはあるが、横幅を固定することができないので、スクリプトで対応したメモ。 バージョン Unity 4.3.4 NGUI 3.5.6 Unity 2D で横幅を固定する 以下のスクリプトをシーン上の任意…