コガネブログ

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

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

【C#】配列やリストのすべての要素に対して指定された関数を適用する拡張メソッド

ソースコード using System; using System.Collections.Generic; public static class IEnumerableExtensions { /// <summary> /// リストのすべての要素に対して指定された関数を適用します /// </summary> public static void Apply<T>( this IList<T> list, Func<T, int, T> func ) { for ( in</t,></t></t>…

【参考書籍】2014年度に購入した参考書籍まとめ

Unity UnityゲームUI実践ガイド 開発者が知っておきたいGUI構築の新スタンダード作者:池和田有輔,時村良平エムディエヌコーポレーションAmazon Unityではじめる2Dゲーム作り徹底ガイド スマートフォンでも遊べる本格ゲーム開発に挑戦作者:大野 功二SBクリエ…

【おすすめスライド】「Unityカジュアルゲーム・ケーススタディ」

関連記事

【おすすめスライド】「Live2Dの描画の裏側の話」

Live2Dの描画の裏側の話 from Naoki Aso

【Unity】uLua 検証中に遭遇したエラー

Asset Store 現象 uLuaを購入してUnityプロジェクトにインポート 「01_HelloWorld.unity」を開いて実行 下記のエラーが発生 DllNotFoundException: ulua LuaInterface.LuaState..ctor () (at Assets/uLua/Core/Lua.cs:37) HelloWorld.Start () (at Assets/uL…

【C#】複数のシーケンスを連結して返す関数

ソースコード using System.Collections.Generic; public static class IEnumerableExtensions { public static IEnumerable<TSource> Concat<TSource>( params IEnumerable<TSource>[] sources ) { foreach ( var source in sources ) { foreach ( var n in source ) { yield return n;</tsource></tsource></tsource>…

【Xamarin Studio】エンターキー入力時の自動フォーマットを無効にする

「Xamarin Studio>Preferencecs...」を選択する 「テキストエディタ>動作」を選択する 「オン ザ フライでのコードフォーマッティングを有効にする」をオフにする

【C#】指定されたシーケンスから条件を満たさない要素を全て返す拡張メソッド

ソースコード using System; using System.Collections.Generic; using System.Linq; public static class IEnumerableExtensions { /// <summary> /// 指定されたシーケンスから条件を満たさない要素を全て返します /// </summary> public static IEnumerable<TSource> WhereNot<TSource, TResult>( this I</tsource,></tsource>…

【C#】シーケンスの先頭に値を追加して返す拡張メソッド

ソースコード using System.Collections.Generic; public static class IEnumerableExtensions { public static IEnumerable<TSource> StartWith<TSource>( this IEnumerable<TSource> source, params TSource[] value ) { foreach ( var n in value ) { yield return n; } foreach ( va</tsource></tsource></tsource>…

【おすすめスライド】「未来のプログラミング技術をUnityで -UniRx-」

関連記事

【おすすめスライド】「イテレータとコルーチン ~Unity ゲームにおける非同期処理~」

https://onedrive.live.com/view.aspx?resid=23A2E4BDDF571935!48128&ithint=file%2cpptx&app=PowerPoint&authkey=!AN2ci-Ql1IoghK8 関連記事

【C#】Unicode 文字列から Shift-JIS 文字列に変換して返す拡張メソッド

ソースコード using System.Text; public static class StringExtensions { public static string ToShiftJis( this string unicodeStrings ) { var unicode = Encoding.Unicode; var unicodeByte = unicode.GetBytes( unicodeStrings ); var s_jis = Encodi…

【C#】文字列を指定した文字数で分割する拡張メソッド

ソースコード public static class StringExtensions { public static string[] SubstringAtCount( this string self, int count ) { var result = new List<string>(); var length = ( int )Math.Ceiling( ( double )self.Length / count ); for ( int i = 0; i < l</string>…

【Unity】DateTime 型をわかりやすい形式の文字列に変換する拡張メソッド

はじめに var dt = new DateTime( 2013, 3, 3, 12, 34, 56 ); Debug.Log( dt.ToString() ); // 3/3/2013 12:34:56 PM Debug.Log( dt.ToShortDateString() ); // 3/3/2013 Debug.Log( dt.ToLongDateString() ); // Sunday, March 03, 2013 Debug.Log( dt.ToSh…

【Unity】Scene ビューの表示を Overdraw に変更して描画負荷を確認する

Scene ビュー左上の項目を「Overdraw」に変更することで描画負荷を確認できます

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

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

【C#】シーケンスが空かどうかを返す拡張メソッド

ソースコード using System.Collections.Generic; using System.Linq; public static class IEnumerableExtensions { public static bool IsEmpty<TSource>( this IEnumerable<TSource> source ) { return !source.Any(); } } 使い方 var array = new int[ 0 ]; if ( array.IsE</tsource></tsource>…

【Unity】「サイバーエージェント×Unity×デザイン塾」レポート

http://www.creativevillage.ne.jp/lp/cyberagent/ 「サイバーエージェント×Unity×デザイン塾」に参加したので レポートをQiitaにまとめました

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

概要 上記のスクリプトを Unity プロジェクトの 「Editor」フォルダに追加していただくことで Project ビューにエクスプローラで開くボタンを追加できます 関連記事

【Unity】Inspector ビューを複数表示する

概要 Inspector ビューや Project ビューの右上に表示されている 3 本線のアイコンをクリックして「Add Tab>Inspector」を選択することで Inspector ビューを複数表示できます これだけだと、どちらの Inspector ビューにも 同じオブジェクトの情報が表示さ…

【Unity】Scene ビューの Skybox を非表示にする

概要 Unity 5 から Scene ビューに Skybox が デフォルトで表示されるようになりました 非表示にしたい場合は Scene ビューの写真アイコンをクリックして 「Skybox」を選択してチェックを外します

【Unity】API の変更履歴

概要 http://docs.unity3d.com/ScriptReference/40_history.html Unity のバージョンアップごとに API に追加された機能や削除された機能は こちらのページから確認することができます

【Unity】Unity 5 新機能「Debug.LogFormat」 「Debug.LogWarningFormat」 「Debug.LogErrorFormat」

// Unity 4.6 まで Debug.Log( string.Format( "Id: {0}", 25 ) ); Debug.LogWarning( string.Format( "Id: {0}", 25 ) ); Debug.LogError( string.Format( "Id: {0}", 25 ) ); Debug.Log( string.Format( "Id: {0}", 25 ), this ); Debug.LogWarning( strin…

【Unity】Unity 5 新機能「Object.Instantiate」

using UnityEngine; public class Gun : MonoBehaviour { public Bullet Original; private void Awake() { var bullet = Instantiate( Original ); } } Unity 5 からジェネリック版のObject.Instantiateが追加されました 戻り値をキャストする必要がなくな…

【Unity】Unity 5 新機能「Application.logMessageReceived」

using UnityEngine; public class NewBehaviourScript : MonoBehaviour { public string Condition; public string StackTrace; public LogType Type; private void OnEnable() { Application.logMessageReceived += HandleLog; } private void OnDisable() …

【C#】1 つのキーに対して複数の値を登録できる Dictionary を実装する

ソースコード 使い方 var m = new MultiDictionary<string, string>(); m.Add( "ほのお", "ヒトカゲ" ); m.Add( "ほのお", "リザード" ); m.Add( "ほのお", "リザードン" ); m.Add( "でんき", "ピカチュウ", "ライチュウ" ); m.Remove( "でんき", "ライチュウ" ); m.Remove( </string,>…

【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 Lua Interface Library」を使用して C# で定義した関数を Lua から呼び出すテストをしました 手順としては、C# で定義した関数を Lua に登録してから Lua のスクリプトを読み込む必要があります Lua スクリプト C# スクリプト 実行結…

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

はじめに 以前、「Unity Lua Interface Library」のサンプルを実行してみました 今回はこれを使用してブロックが移動したり回転したりするだけの 簡単なプロジェクトを作成してみました Lua スクリプト C# スクリプト 実行結果 Lua を使用してゲームオブジェ…