コガネブログ

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

2015-07-01から1ヶ月間の記事一覧

【Unity】区切り文字にスラッシュを使用してパスを連結する関数 その2

ソースコード using System.IO; public static class PathUtils { /// <summary> /// 文字列の配列を 1 つのパスに結合します /// </summary> public static string Combine( params string[] paths ) { return paths .Aggregate( ( a, b ) => Path.Combine( a, b ) ) .Replace(…

【Unity】区切り文字にスラッシュを使用してパスを連結する関数

using System.IO; public static class PathUtils { /// <summary> /// 2 つの文字列を 1 つのパスに結合します /// </summary> public static string Combine( string path1, string path2 ) { return Path .Combine( path1, path2 ) .Replace( "\\", "/" ); } } Path.Combine(…

【Unity】区切り文字にスラッシュを使用して指定したディレクトリ内のファイル名を返す関数

using System.IO; using System.Linq; public static class DirectoryUtils { /// <summary> /// <para>指定したディレクトリ内のファイルの名前 (パスを含む) を返します</para> /// <para>パスの区切り文字は「\\」ではなく「/」です</para> /// </summary> public static string[] GetFiles( string pat…

【C#】デリゲートが登録されているかどうかを返す拡張メソッド

ソースコード using System; public static class MulticastDelegateExtensions { public static bool IsNullOrEmpty( this MulticastDelegate self ) { if ( self == null || self.GetInvocationList() == null ) { return true; } return self.GetInvocati…

【Unity】Unity で使える拡張メソッド136個まとめ

はじめに Unity でスマホゲーム開発中に作った拡張メソッドに関する記事を136件まとめました 拡張メソッドに興味がある方はぜひ使用してみて頂ければと思います .NET Framework int ラップアラウンド関数を定義する 数値を加算して、範囲を超えた分は 0 から…

【C#】ListをStackの様に扱うための拡張メソッド

ソースコード public static class ListExtensions { /// <summary> /// 先頭にあるオブジェクトを削除せずに返します /// </summary> public static T Peek<T>( this IList<T> self ) { return self[ 0 ]; } /// <summary> /// 先頭にあるオブジェクトを削除し、返します /// </summary> public static T</t></t>…

【C#】ListをQueueの様に扱うための拡張メソッド

ソースコード using System.Collections.Generic; public static class ListExtensions { /// <summary> /// 先頭にあるオブジェクトを削除し、返します /// </summary> public static T Dequeue<T>( this IList<T> self ) { var result = self[ 0 ]; self.RemoveAt( 0 ); return resu</t></t>…

【C#】Func<bool>に登録されているいずれかのデリゲートがtrueを返すかどうかを確認する拡張メソッド

ソースコード 使い方 Func<bool> func = null; func += () => true ; func += () => false; func += () => true ; func += () => false; func.Any(); // True 関連記事</bool>

【C#】Func<bool>に登録されているすべてのデリゲートがtrueを返すかどうかを確認する拡張メソッド

ソースコード 使い方 Func<bool> func = null; func += () => true ; func += () => false; func += () => true ; func += () => false; func.All(); // False 関連記事</bool>

【GTMF2015】メモまとめ

Game Tools & Middleware Forum 2015 (GTMF 2015) メモ一覧

【GTMF2015】「Unity 5.1 テクノロジー&サービス 最新情報」メモ

UNITE 2015 TOKYO http://japan.unity3d.com/unite/unite2015/ 沢山のセッションビデオ、およびスライド資料などが利用可能になっています Unity 5 の新機能について知りたい・学びたい人は是非チェック UNITE 2015 EUROPE THE BLACKSMITH REALTIME DEMO UNI…

【GTMF2015】「Cocos最新情報と日本展開」メモ

http://jp.cocos.com Cocos2d-x, Cocos2d-JSの情報 Cocos2d-x日本語サイト http://jp.cocos.com Facebook Cocos2d-x(日本語) https://www.facebook.com/cocos2dxjapanese Twitter @cocos2dx_jp Instagram @cocos2dx_jp Cocos2d-x 最新版:Cocos2d-x v3.6 …

【Unity】Asset Storeからダウンロードした.unitypackageの一覧を表示してインポートできるエディタ拡張

ソースコード 使用例

【GTMF2015】「「音声再生遅延推測機能」正式リリース! ズレない!待たせない!快適なスマホゲームを実現する技術紹介」メモ

CRIWAREとは CRIのミドルウェア群の総称 CRI ADX2 オーディオ統合ソリューション CRI Sofdec2 動画再生ミドルウェア アルファムービーなど ファイルマジックPRO ファイル読み込み 圧縮/パッキング ネットワーク対応 モバイル環境での利用形態 iOSネイティブ…

【GTMF2015】「リピート率100%!日本のゲームデベロッパーを虜にし続け、さらに進化した最新の国産ゲームエンジン「OROCHI4」」メモ

アジェンダ OROCHIとは? OROCHI4のご紹介 特徴 物理ベースレンダリングエンジン「Mizuchiエクシステンション」とは? OROCHI4で利用可能になる新機能のご紹介 OROCHI3かたOROCHI4へ ワークフローがどう変わるか マルチプラットフォーム対応アプリケーション…

【GTMF2015】「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」メモ

テスト管理ツール「CAT」導入によるデバッグ管理の効率化 エクセルの集計・分析に時間を浪費! ファイルが破損すると目も当てられない事態に… 蓋を開けたら全然進んでいなかった! デバッグ会社QA部隊 報告コストを掛けるより、ちゃんとデバッグしよう! 1日…

【GTMF2015】「OPTPiX SpriteStudio Ver.5.5 エフェクト機能他、新機能のご紹介」メモ

OPTPiX SpriteStudio Ver.5.5 リリース完了のお知らせ 株式会社ウェブテクノロジは、2Dスプライトアニメーションデータ作成ツール「OPTPiX SpriteStudio」Ver.5.5の無償アップデートを2015年7月16日に公開 目次 OPTPiX SpriteStudio Ver.5.5 Upadte要素とコ…

【GTMF2015】「モノビットMOエンジンfor Unityのワークフロー解説」メモ

モノビットエンジンとは? モノビット社が提供するネットワークミドルウェア製品群 モノビットエンジン製品リスト ネットワークゲームフレームワーク いろいろなゲームのバックエンド システムで利用されているLAMPフレームワーク リアルタイム通信エンジン …

【GTMF2015】「バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。」メモ

Coverity 2002年、Stanford大学で設立 2014年、Synopsysの一事業部門に 静的解析技術をベースにしたソリューションを提供 ソフトウェア品質解析と測定で#1 世界的大企業を中心に1,100社余の顧客 5,000以上のオープンソースの品質向上に貢献 静的解析 静的解…

【Unity】メッセージに書式指定可能なAssert系の関数

ソースコード 使い方 AssertUtils.IsNullFormat( nullObj, "{0}", "メッセージ" ); AssertUtils.IsNotNullFormat( notNullObj, "{0}", "メッセージ" ); AssertUtils.IsTrueFormat( true, "{0}", "メッセージ" ); AssertUtils.IsFalseFormat( false, "{0}", "…

【Unity】メッセージに書式指定可能なMustExtensions系の拡張メソッド

ソースコード 使い方 nullObj .MustBeNullFormat( "{0}", "メッセージ" ); notNullObj .MustNotBeNullFormat( "{0}", "メッセージ" ); canJump .MustBeTrueFormat( "{0}", "メッセージ" ); isDead .MustBeFalseFormat( "{0}", "メッセージ" ); health .MustB…

【C#】ラップアラウンド関数を定義する

ソースコード public static class MathfUtils { public static int Wrap( int value, int min, int max ) { int n = ( value - min ) % ( max - min ); return n >= 0 ? n + min : n + max; } } 使い方 MathfUtils.Wrap( 0, 0, 3 ) // 0 MathfUtils.Wrap( 1…

【C#】配列やリストが空かどうかを返す拡張メソッド

ソースコード using System.Collections.Generic; public static class IListExtensions { public static bool IsEmpty<T>( this IList<T> self ) { return self.Count == 0; } } 使い方 var x = new int[ 0 ]; var y = new int[ 1 ]; x.IsEmpty(); // True y.IsEm</t></t>…

【C#】ジェネリッククラスの名前を名前空間と型引数付きで返す拡張メソッド

概要 var x = new List<int>(); var y = new Dictionary<int, string>(); print( x.GetType().ToString() ); // System.Collections.Generic.List`1[System.Int32] print( y.GetType().ToString() ); // System.Collections.Generic.Dictionary`2[System.Int32,System.String] </int,></int>…

【C#】ジェネリッククラスの名前を型引数付きで返す拡張メソッド

概要 var x = new List<int>(); var y = new Dictionary<int, string>(); print( x.GetType().Name ); // List`1 print( y.GetType().Name ); // Dictionary`2 型情報をType.GetType()で取得して Type.Nameを参照することで 型の名前を表す文字列が取得可能ですが、ジェネリッ</int,></int>…

【Unity】Component型のインスタンスのnullチェックを省略可能な拡張メソッド

概要 // コンポーネントからBoxColliderを取得する // コンポーネントがnullの場合は何もしない BoxCollider result = null; if ( com != null ) { result = com.GetComponent<BoxCollider>(); } 下記の拡張メソッドを使用することで Component型のインスタンスの上記のよ</boxcollider>…

【Unity】GameObject型のインスタンスのnullチェックを省略可能な拡張メソッド

概要 // ゲームオブジェクトをアクティブにする // ゲームオブジェクトがnullの場合は何もしない if ( go != null ) { go.SetActive( true ); } // ゲームオブジェクトからBoxColliderを取得する // ゲームオブジェクトがnullの場合は何もしない BoxCollider…

【Unity】Destroy may not be called from edit mode! Use DestroyImmediate instead.

Destroy may not be called from edit mode! Use DestroyImmediate instead. Also think twice if you really want to destroy something in edit mode. Since this will destroy objects permanently. エディタ拡張の処理でGameObject.Destroyを呼び出すと…

【Unity】The same field name is serialized multiple times in the class or its parent class. This is not supported: -> AAAA(MonoBehaviour) BBBB(CCCC) DDDD

The same field name is serialized multiple times in the class or its parent class. This is not supported: -> AAAA(MonoBehaviour) BBBB(CCCC) DDDD 基底クラスと派生クラスで同名のフィールドをシリアライズ可能にした場合 上記のエラーが発生します …

【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 にア…