Unityの4.3.4のiOSでメモリリークが発生しているらしい。 その為、Unity 4.3.4のiOSビルドではWWWを使う度にメモリが増加する不具合が発生している。 これの対処法としては、Xcodeが出力する WWWConnection.mm のUnityDestroyWWWConnectionメソッドに[delegate.data release];を足すこととの事。 extern "C" void UnityDestroyWWWConnection(void* connection) { UnityWWWConnectionDelegate* delegate = (UnityWWWConnectionDelegate*)connection; [delegate.connection cancel]; delegate.connection = nil; [delegate.d
UnityはiOS向けに出力する際、xcodeプロジェクトとして出力します。 このプロセスは正しくは以下の3つのプロセスに分割することが出来ます。 UnityのiOS向けテンプレートプロジェクトを配置ソースコードを解析し幾つかのファイルを更新ユーザーが作成したファイルをビルドして配置 さて、その後にBuildPostprocessorやPostprocessBuildPlayerを使用してXCodeプロジェクトの中身を更新するのですが、実はテンプレートファイル自体も更新する事ができます。 方法は単純、 Unity.appを右クリックしてパッケージを開く Contents/PlaybackEngines/iPhonePlayer/iPhone-Trampoline/Classesを開く中身を変更する 要するにiPhone-Trampolineにテンプレートがあるので、それを 更新してしまうと
最近、UnityからiOSビルドについてばっかりやってます。Unity自体は分かりません。 UnityからiOSビルドした時にAppDelegateに処理を追加する方法です。 UnityAppController UnityからiOSビルドした時にUnityAppController.hとUnityAppController.mmが生成されますが、こいつがAppDelegateと同様の処理をやっています。 iOSビルドした後にこのファイルを編集しても良いのですが、ビルドするたびに編集するのはアホくさいのでそれを何とかします。 main.mm main.mmというファイルも生成されてますが、こいつがエントリポイントになってます。 このファイルの中に const char* AppControllerClassName = "UnityAppController"; という箇所があり、そこでA
UnityのiOSビルド時に追加したいFrameworkを設定することが出来ないので、それ用のスクリプトを作りました。 毎回UnityでビルドしてXcode起動してFramework追加は面倒すぎます。 ググったら何個かあったのですが、広告SDK等で外部Frameworkを追加する処理が見つからなかったのと、何やってるかを理解しておきたかったので自分で作りました。 環境 Mac OS X Mavericks Unity 4.3.4f1 xcodeproj 0.14.1 ビルド プレイヤー パイプライン Unityには ビルド プレイヤー パイプライン / Build Player Pipeline というのがあります。 これはビルド時にsh等を実行できます。これ利用してXcodeのプロジェクトファイルをいじります。 今回はRubyのスクリプトを実行するようにします。 事前準備 Xcodep
こんにちは。京都事業部の大西です。 今回はUnityとiOS SDKの連携方法についてご紹介します。 連携の方法としてスタンダードなものは、 Objective-C、またはC++などで書かれたコードをプラグインとしてUnityに読み込むというものなんですが、 実は結構手間がかかるので、もっと簡単にサクッとできる実装方法を今回はご紹介しようと思います。 ※ プラグインの作成方法は下記の記事がわかりやすいです。 iPhone/iPadのプラグインを作成する方法 – 強火で進め UnityからiOSのプログラムを呼び出したい場合 今回実装に使用するのが、PlayerPrefsというUnityのクラスです。 これは、FlashでいうSharedObjectのようなもので、簡単なデータをローカルに保存することができるクラスとなっています。 PlayerPrefsの保存先は、書き出し先のプラットフォー
※以前作成したエントリーでは Plugins/iOS フォルダを使って自動的にXcodeプロジェクトにファイルに含める方法を使って無かったので使う様に修正。 ※ソースコードをGitHubからの配布に変更。 UnityからXcodeで記述した機能が呼べるiPhone/iPadのプラグインを作成する方法を解説。今回のサンプルはこちらからDL出来ます。 プラグインを作ればネイティブコードで出来る事はなんでも出来ちゃいます。作成したプラグインはiOS Proライセンスはもちろん、iOSライセンスでも使用可能です。 手順は以下の様になります。 1. ビルドしてXcodeのプロジェクトを作成。 2. Xcode側のプログラムを作成する為にファイルを生成。プログラムを記述する。 3. Unity側でXcode側のプログラムとUnity側のプログラムを橋渡しするプログラムを作成。 順番に詳しく解説します。
UnityでAndroid JARファイルを呼び出す最も簡単な方法 - Androidネイティブプラグイン こちらで、AndroidJARファイルをUnityから呼び出す方法を紹介しましたが、今回はiOSのネイティブコードを呼び出す方法を紹介します。 C#スクリプトでネイティブコードを呼ぶ using UnityEngine; using System.Runtime.InteropServices; public class NativePlugin { [DllImport("__Internal")] private static extern void hoge_(); public static void hoge() { if (Application.platform != RuntimePlatform.OSXEditor) { hoge_(); } } } ファイル名はク
27. UnityPlayerActivityを継承したクラスを eclipseあたりで作成する (ビルドにはclasses.jarをビルドパスに含める、 Unityフォルダ下のPlaybackEngines/AndroidPlayer/binにある またAndroidの機能を使うなら、それもインポートする) 上で作成したクラスをjarにエクスポート して、Plugins/Androidフォルダに配置 AndroidManifest.xmlの UnityPlayerProxyActivityと書かれている 箇所を、作成したクラス名に書き換える 前者のActivityを改造して実行する方法。 Activityを改造して実行するプラグインは、他のActivityを改造して実行するプラグインと競合する UnityPlayerNativeActivityのほうが早いが、古いAndroidでは動作し
ネイティブプラグインを作るのに四苦八苦したので、ポイントをまとめてメモしておこうと思う。 ネイティブプラグインの作成について http://www.slideshare.net/tatsuhikoyamamura/unity-15594873 #A131: モバイル向けNative Pluginの開発作法 http://vimeopro.com/unity3djp/unity-asia-bootcamp-tour-tokyo-for-the-public/video/41906327 ネイティブ拡張の実際 http://pukapuka-ahirusan.blogspot.jp/2012/08/unity_31.html [Unity][Unity3d]iPhone/iPadのプラグインを作成する方法(改訂版)Add Star http://d.hatena.ne.jp/nakamura0
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く