コガネブログ

平日更新を目標にUnityやC#などのゲーム開発アレコレを書いていきます

Unity4.6

【Unity】Unity 4.6 新機能「FormerlySerializedAsAttribute」

Unity 4.6 から 「UnityEngine.Serialization.FormerlySerializedAsAttribute」が追加されました using UnityEngine; public class ExampleClass : MonoBehaviour { public int value; } 例えば上記のクラスをオブジェクトにアタッチして Inspectorでvalue変…

【Unity】Supplied NxActorDesc is not valid. createActor returns NULL.

Supplied NxActorDesc is not valid. createActor returns NULL. NGUIでUIを作成しておりゲームを開始したところ 上記のエラーログが出力されることがありました NGUIのオブジェクトのスケーリング値に0.0001を設定していたところを 0.001に変更したところ上…

【おすすめスライド】「Async design with Unity3D」

Async design with Unity3D from Kouji Hosoda

【Unity】プロジェクトをUnity4.6からUnity5.2に移行した時に知ったこと

この記事はUnity Advent Calendar 2015の12日目の記事になります。 昨日は@Ijoruさんの「Unity UIでページやダイアログごとにシーンを分離する実装パターン」でした 今回は開発中のUnityプロジェクトをUnity 4.6からUnity 5.2に移行した時に 対応したことや…

【Unity】Unity 4.6.xのレンダリングでどのGraphics APIを使用しているかを判別する方法

Unityのタイトルバーを見ることで確認可能です Direct3D 9 Direct3D 11 OpenGL

【Unity】An asset is marked with HideFlags.DontSave but is included in the build

An asset is marked with HideFlags.DontSave but is included in the build: Building - Failed to write file: BuildPlayer-XXXX.sharedAssets Error building Player: Couldn't build player because of unsupported data on target platform. BuildPipel…

【Unity】Unityを4.5.5から4.6.6にアップデートしてiOSビルドした時に遭遇した不具合

Unity を 4.5.5 から 4.6.6 にアップデートして iOS ビルドを行ったところ 実機で 3D モデルの表示が紫色になる不具合に遭遇 Player Settings を開いて「Graphics API」を「Open GL ES 2.0」に変更したところ 実機で 3D モデルが正常に表示された 4.6.6 にア…

【Unity】Tuple を実装する

Tupleクラスは .NET Framework 4.0 から追加されたため .NET Framework 3.5 までの機能しか使えないUnityでは使用できません そのため、Unity でTupleを使用したい場合は 自前で実装する必要がありますが 個人的には Gist で公開されている下記のソースコー…

【Unity】can't be loaded because it was not built with the right version or build target

can't be loaded because it was not built with the right version or build target Android版のアプリでiOS版のアセットバンドルをダウンロードしようとしたり、 iOS版のアプリでAndroid版のアセットバンドルをダウンロードしようとするなど、 間違ったプ…

【Unity】iOSにおいて3Dの表示が真っ黒になる不具合の解決方法

iOSにおいて、開発しているゲームの3D表示が真っ黒になる不具合に遭遇したので 解決方法を書き残しておきます Unityのバージョン:4.6.5p4 「File>Build Settings...」を選択 「Platform」で「iOS」を選択 「Player Settings...」を選択 「Dynamic Batching…

【Unity】JenkinsでUnityバッチビルドがクラッシュする不具合と解決方法

Receiving unhandled NULL exception Launching bug reporter UnityをJenkinsで自動ビルドできるようにしてゲーム開発していたところ Unityのバッチビルド中にクラッシュして上記のエラーが発生する問題に遭遇しました 原因としては、InitializeOnLoadMethod…

【Unity】「Unity Performance Casual Talk」メモ

Unity Performance Casual Talk GREE Tech Talk #07 : Unity Performance Casual Talk メモ一覧 【Unity】Unity Performance Casual Talk 「Live2Dの描画の裏側の話」 レポート - Qiita 【Unity】Unity Performance Casual Talk 「Unityカジュアルゲーム…

【Unity】TransformのTranslate関数の拡張メソッド

using UnityEngine; public static class TransformExtensions { /// <summary> /// X 軸方向に移動します /// </summary> public static void TranslateX( this Transform self, float x ) { self.Translate( x, 0, 0 ); } /// <summary> /// Y 軸方向に移動します /// </summary> public static v…

【Unity】パフォーマンス改善 文字列連結編

Unity+C# でゲームを開発している場合 StringBuilder クラスを使用して文字列連結することで 処理速度が高速化し、ガベージコレクションの実行回数を削減できます 検証用スクリプト string クラスの文字列連結 using System; using UnityEngine; public clas…

【Unity】Projectビューにエクスプローラで開くボタンを追加するエディタ拡張

上記のスクリプトを Unity プロジェクトの 「Editor」フォルダに追加していただくことで Project ビューにエクスプローラで開くボタンを追加できます 参考サイト様 OpenInFileBrowser - Unify Community Wiki

【Unity】Inspector で Flags 属性が適用された列挙型の値を設定しやすくする PropertyDrawer その2

using System; using UnityEngine; [Flags] public enum TYPE // タイプ { GRASS = 1 << 0, // くさ FIRE = 1 << 1, // ほのお WATER = 1 << 2, // みず } public class NewBehaviourScript : MonoBehaviour { [EnumFlags] public TYPE Type; public void On…

【Unity】Inspector で Flags 属性が適用された列挙型の値を設定しやすくする PropertyDrawer

using System; using UnityEngine; [Flags] public enum TYPE // タイプ { GRASS = 1 << 0, // くさ FIRE = 1 << 1, // ほのお WATER = 1 << 2, // みず } public class NewBehaviourScript : MonoBehaviour { [EnumFlags] public TYPE Type; public void On…

【Unity】「Unity Lua Interface Library」を使用してみる その3

【Unity】「Unity Lua Interface Library」を使用してみる その2 - コガネブログ 今回は「Unity Lua Interface Library」を使用して C# で定義した関数を Lua から呼び出すテストをしました 手順としては、C# で定義した関数を Lua に登録してから Lua のス…

【Unity】「Unity Lua Interface Library」を使用してみる その2

【Unity】「Unity Lua Interface Library」を使用してみる - コガネブログ 以前、「Unity Lua Interface Library」のサンプルを実行してみました 今回はこれを使用してブロックが移動したり回転したりするだけの 簡単なプロジェクトを作成してみました Lua …

【おすすめスライド】UnityでのLINQ活用例

LINQでの活用例 from Ryota Murohoshi

【Unity】Error building Player: UnityException: Bundle Identifier has not been set up correctly

Error building Player: UnityException: Bundle Identifier has not been set up correctly Please set the Bundle Identifier in the Player Settings. The value must follow the convention 'com.YourCompanyName.YourProductName' and can contain alph…

【Unity】UnassignedReferenceException: The variable XXXX of YYYY has not been assigned.

UnassignedReferenceException: The variable XXXX of YYYY has not been assigned. You probably need to assign the XXXX variable of the YYYY script in the inspector. Inspector でゲームオブジェクトやコンポーネントの参照を指定していない値を スク…

【Unity】「ニコニ立体ちゃんのお天気情報」Android版を公開しました

日曜日に時間があったので一度作ってみたかった 天気予報アプリを作成してみました 現在は Google Play で公開しています 参考アプリ 「ユニティちゃんのお天気情報」を参考にさせて頂きました https://itunes.apple.com/jp/app/yunitichannoo-tian-qi-qing/…

【Unity】ArgumentException: The thing you want to instantiate is null.

ArgumentException: The thing you want to instantiate is null. GameObject.Instantiate 関数の引数に null を渡した場合に発生しました Resources.Load で読み込んできたプレハブや Inspector で設定したプレハブを GameObject.Instantiate 関数で使用す…

【Unity】Script error (XXXX): YYYY() can not take parameters.

Script error (XXXX): YYYY() can not take parameters. MonoBehaviourを継承したクラスでAwake関数やStart関数を定義した時に 引数の型や数が合っていない場合、上記のエラーが発生します

【Unity】Scripting Define Symbolsを簡単に設定できるようにするエディタ拡張

UnityエディタでPlayer Settingsを開いてから 「Scripting Define Symbols」に定義したいシンボル名を入力することで #ifディレクティブの条件として使用できるようになりますが 毎回Player Settingsを開いて文字列を入力するのが手間なので 簡単にシンボル…

【Unity】Player Settingsを簡単に開けるようにするエディタ拡張

UnityエディタでPlayer Settingsを開く場合は二通りのやり方があります。 「Build Settings」ウィンドウの「Player Settings...」ボタンを選択する 「Edit>Project Settings>Player」を選択する Player Settingsは頻繁に開くメニューですが、開くまでの手順…

【Unity】Import Packageの一覧に表示される.unitypackageを追加する

Unityエディタのメニューの「Assets>Import Package」を選択すると Unityパッケージのインポートが簡単にできますが よく使うUnityパッケージをこの一覧に追加することも可能です C:\Program Files (x86)\Unity\Editor\Standard Packages C:\Program Files\U…

【Unity】モバイルにおけるテクスチャの最大サイズ

モバイルにおけるテクスチャの最大サイズが気になったので調べてみました iOS 1024x1024 iPhone iPhone 3G 2048x2048 iPhone 3GS iPhone 4 iPad 4096x4096 iPhone 4S ~ iPad 2 ~ Android 1024x1024 Android 2.0 ~ 3.0 2048x2048 Android 3.0 ~ 4.0 4096x…

【Unity】複数のリソースの読み込み速度の検証結果

複数のリソースを読み込む場合に Resources.Load で一個ずつ読み込むか Resources.LoadAll で一度に読み込むか どちらの方が高速なのか気になったので検証しました Unityのバージョンは 4.6.1f1 で、Unity エディタ上で検証 Resources フォルダに Textures …

【Unity】Unity 2D でゲームを作りはじめました その3

先週、Unityを使用してWeb Player用に開発した下記の2Dゲームを Android版に移植してGoogle Playに公開しました 【Unity】Unity 2D でゲームを作りはじめました その2 - コガネブログ Android版に移植するにあたって対応したことを書き残しておきます オンラ…

【おすすめスライド】「工程の手戻りを最低限に 2Dエンジン活用における傾向と対策」

CEDEC 2014『工程の手戻りを最低限に 2Dエンジン活用における傾向と対策』発表資料 気になったところのまとめ スプライト描画性能比較 スマホの世代による性能差はわりと大きい スマホの性能は、今後もしばらく向上が予想されるので、リリース時点の状況を予…

【Unity】transform.position assign attempt for 'XXXX' is not valid. Input position is { Infinity, 0.000000, 0.000000 }.

transform.position assign attempt for 'XXXX' is not valid. Input position is { Infinity, 0.000000, 0.000000 }. transform 型の position や eulerAngles などの要素に 無限の値を代入すると上記のエラーが発生します var x = 1f / 0f; transform.posi…

【Unity】transform.position assign attempt for 'XXXX' is not valid. Input position is { NaN, 0.000000, 0.000000 }.

transform.position assign attempt for 'XXXX' is not valid. Input position is { NaN, 0.000000, 0.000000 }. transform 型の position や eulerAngles などの要素に 非数値を代入すると上記のエラーが発生します var x = 0f / 0f; transform.position = …

【Unity】Can't destroy Transform component of 'XXXX'

Can't destroy Transform component of 'XXXX'. If you want to destroy the game object, please call 'Destroy' on the game object instead. Destroying the transform component is not allowed. Destroy関数でTransform型のインスタンスを削除しようと…

【Unity】Unity 2D でゲームを作りはじめました その2

Unity Plane UnityRoom:こちら UnityGameUploader:こちら 日曜日にUnity 4.6を使用して簡単なゲームを作成しました ゲームシステムはドンキーコングリターンズの ロケットバレルのステージを参考にしています 最近のUnityは2Dのゲームも簡単に作れていい感…

【Unity】Unity 2D でゲームを作りはじめました

「Unityではじめる2Dゲーム作り徹底ガイド」と 「ゲーム作りのはじめかた」を買ったので これらを参考にアングリーバードのようなゲームの開発を始めました 画像は「OpenGameArt.org」で 公開されているものを使用させて頂いています のんびり開発していきま…

【Unity】uGUIのTextでリッチテキストを使用する

サポートされているタグ タグ 説明 例 b 太字 We are <b>not</b> amused i イタリック We are <i>usually</i> not amused size ピクセル単位でテキストのサイズを設定 We are <size=50>largely</size> unaffected color テキストの色を設定 We are <color=green>green</color> with envy

【Unity】Unity 4.6のuGUIでアウトラインをつける

影をつけたいUIのオブジェクトを Scene ビューや Hierarchy ビューで選択する Unityのメニューの「Component>UI>Effects>Outline」を選択する Effect Color:アウトラインの色 Effect Distance:アウトラインの表示位置

【Unity】Unity 4.6のuGUIで影をつける

影をつけたいUIのオブジェクトを Scene ビューや Hierarchy ビューで選択する Unityのメニューの「Component>UI>Effects>Shadow」を選択する Effect Color:影の色 Effect Distance:影の表示位置

【Unity】Unity 4.6 新機能「GetComponents<List<T>>」

// 従来 // 配列でコンポーネントの一覧を取得 BoxCollider[] array; array = GetComponents<BoxCollider>(); array = GetComponentsInChildren<BoxCollider>(); // 新規 // List でコンポーネントの一覧を取得 var list = new List<BoxCollider>(); GetComponents<BoxCollider>( list ); GetComponentsInChildren<BoxCollider></boxcollider></boxcollider></boxcollider></boxcollider></boxcollider>…

【Unity】Unity 4.6 変更点「Edit Collider」

Unity 4.6 から Collider の Inspector 上に「Edit Collider」というボタンが追加されました このボタンを押すと、Scene ビューで Collider のサイズを調整できるようになります

【Unity】Unity 4.6 変更点「Create メニュー」

Unity 4.5 の GameObject メニュー Unity 4.6 の GameObject メニュー Unity 4.5 の Hierarchy の Create メニュー Unity 4.6 の Hierarchy の Create メニュー Unity 4.5 の Hierarchy の Context メニュー Unity 4.6 の Hierarchy の Context メニュー 主…

【Unity】Unity 4.6 新機能「SetParent」

// ワールド座標系の位置情報を保持する transform.parent = parent; transform.SetParent( parent ); transform.SetParent( parent, true ); // ワールド座標系の位置情報を親オブジェクトのローカル座標系に変換する transform.SetParent( parent, false )…

【Unity】Unity 4.6 新機能「OnTransformParentChanged」

Unity - Beta - Unity 4.6 Release Notes using UnityEngine; using System.Collections; public class Example : MonoBehaviour { private void OnTransformParentChanged() { Debug.Log( "OnTransformParentChanged" ); } } Unity 4.6 で「OnTransformPare…