コガネブログ

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

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

【Unity】プログラマのためのネーミング辞書「Codic」をVisual Studioで使用できるようにする「Codic Extension for Visual Studio」

はじめに 変数や関数の名前付けに困った時に 「codic」で日本語を入力すると良い感じの英語に変換してくれます この「codic」をVisual Studio上で使用できるようにするツールが 「Codic Extension for Visual Studio」です 導入方法や使用方法は上記のGitHub…

【Unity】Unity で Lua を使用できるようにする「slua」紹介

はじめに http://www.slua.net/ 「slua」はUnityでLuaを使用できるようにするアセットです 前回紹介した「MoonSharp」は LuaからUnityのAPIを呼び出すことができなかったですが こちらの「slua」は呼び出すことができるようです 特徴(公式サイトから引用) …

【Unity】Unity で Lua を使用できるようにする「MoonSharp」紹介(無料)

はじめに 「MoonSharp」はUnityでLuaを使用できるようにするアセットです 公式サイト http://www.moonsharp.org/ 検証環境 MoonSharp:1.5.0.1 Unity:5.2.3p3 Xcode:6.2.3 Android:5.0.1 iOS:8.2 導入方法 「http://www.moonsharp.org/」を開く 「Zip fi…

【Unity】Unity 製のスマホゲームを調べてみた(2016/3/28)

はじめに Google PlayやApp Storeで公開されているスマホゲームが Unity製かどうか気になったので調査しました 調査方法 Androidの場合、Unityの標準機能を使用してDLしたアセットバンドルは /sdcard/Android/data/【Bundle Identifier】/files/UnityCache …

【Unity】【Tips】MonoBehaviourを継承したシングルトンではなくstaticクラスを使用する

Before public class ScoreManager : SingletonMonoBehaviour<ScoreManager> { public int Score { get; set; } } ScoreManager.Instance.Score += 100; After public static class ScoreManager { public static int Score { get; set; } } ScoreManager.Score += 100; と</scoremanager>…

【Unity】【Tips】Mathf.Clampを使用して処理を短く記述する

Before if ( pos.x > 1.5f ) { pos.x = 1.5f; } else if ( pos.x < -1.5f ) { pos.x = -1.5f; } After pos.x = Mathf.Clamp( pos.x, -1.5f, 1.5f );

【Unity】【Tips】拡張メソッドを定義してCollision2DのGetComponentを短く記述する

Before private void OnCollisionEnter2D( Collision2D other ) { var rigidBody = other.gameObject.GetComponent<Rigidbody2D>(); } After public static class Collision2DExtensions { public static T GetComponent<T>( this Collision2D self ) { return self.gameObje</t></rigidbody2d>…

【Unity】【Tips】拡張メソッドを定義して文字列判定を短く記述する

Before if ( other.collider.tag == "Enemy" || other.collider.tag == "Wall" || other.collider.tag == "Bullet" ) { ... } After using System.Linq; public static class GenericExtensions { public static bool ContainsAny<T>( this T self, params T[] </t>…

【C#】GroupBy でリストをグループ化する時に複数のキーを指定する

C#

概要 // アイテムタイプ enum ITEM_TYPE { FREE_MONEY, // 無料通貨 PAY_MONEY , // 有料通貨 RECOVERY , // 回復アイテム EQUIPMENT , // 装備アイテム OTHER , // その他 } // アイテム情報 class ItemData { public int m_id ; // ID public ITEM_TYPE m_…

【Unity】Unity 5.3.4 新機能「UNITY_5_3_OR_NEWER」

Unity 5.3.4 から「UNITY_5_3_OR_NEWER」が追加されました このシンボルを使用することで Unity 5.3 以上でのみ実行する処理を記述できます #if UNITY_5_3_OR_NEWER ... #endif 参考サイト様

【Jenkins】URLの覚書

URL 説明 [JenkinsのURL]/scm/SubversionSCM/enterCredential SVNの認証 [JenkinsのURL]/restart Jenkinsの再起動 [JenkinsのURL]/safeRestart Jenkinsの再起動(ジョブの実行完了を待つ) [JenkinsのURL]/threadDump スレッドダンプ [ジョブのURL]/build ジ…

【Unity】iOSアプリの申請時に発生したエラー「Missing required icon file.」

ERROR : "Missing required icon file. The bundle does not contain an app icon for iPad of exactly '167x167' pixels, in .png format ." iOSアプリの申請時に遭遇しました 5.3.3以前のバージョンのUnityで作成したiOSアプリを申請すると 発生する可能性…

【C#】並列でタスクを管理する独自クラス

C#

概要 var task = new MultiTask(); task.Add( onEnded => { Debug.Log( "1" ); onEnded(); } ); task.Add( onEnded => { Debug.Log( "2" ); onEnded(); } ); task.Add( onEnded => { Debug.Log( "3" ); onEnded(); } ); task.Play( () => { Debug.Log( "comp…

【C#】直列でタスクを管理する独自クラス

C#

概要 var task = new SingleTask(); task.Add( onEnded => { Debug.Log( "1" ); onEnded(); } ); task.Add( onEnded => { Debug.Log( "2" ); onEnded(); } ); task.Add( onEnded => { Debug.Log( "3" ); onEnded(); } ); task.Play( () => { Debug.Log( "com…

【Unity】WWWクラスのerror内容の覚書

エラー内容 原因 Could not resolve host: hoge; No data record of requested type エディタ上で不正なURL設定 java.net.ConnectException: failed to connect to Androidで機内モードONもしくはWi-Fi無効化 java.net.UnknownHostException: Unable to reso…

【C#】リストが変更された時にコールバック関数が呼び出される独自クラス

C#

概要 SelectableList<int> mSelectedList = new SelectableList<int>(); void Awake() { // リストが変更された時に呼び出されるコールバック関数を登録します mSelectedList.mChanged += () => Debug.Log( mSelectedList.Count ); // リストに要素を挿入します mSelec</int></int>…

【C#】値が変更された時にコールバック関数が呼び出される独自クラス

C#

概要 Selectable<int> mSelectedValue = new Selectable<int>(); void Awake() { // 値が変更された時に呼び出されるコールバック関数を登録します mSelectedValue.mChanged += value => Debug.Log( value ); // 値を変更します(コールバック関数が呼び出されます) m</int></int>…

【Unity】UnityEngine.UnityException: Texture 'XXXX' is not readable, the texture memory can not be accessed from scripts

UnityEngine.UnityException: Texture 'XXXX' is not readable, the texture memory can not be accessed from scripts. You can make the texture readable in the Texture Import Settings. 読み書きを無効にしているテクスチャを編集しようとした場合 上…

【Unity】Script 'CharacterController' has the same name as built-in Unity component.

Script 'CharacterController' has the same name as built-in Unity component. AddComponent and GetComponent will not work with this script. 「CharacterController.cs」というスクリプトを作成すると 上記の警告が出力されます これはUnityが標準で「…

【C#】配列やリストから重複している要素を抽出する拡張メソッド

ソースコード public static class IListExtensions { /// <summary> /// 重複している要素を抽出して返します /// </summary> public static T[] GetDistinct<T>( this IList<T> self ) { var uniqueList = new List<T>(); var result = new List<T>(); foreach ( var n in self ) { if ( u</t></t></t></t>…

【Unity】Unity 5.2 新機能 「C# Project Generation」

Unity 5.2 から「C# Project Generation」が追加されました 「Edit>Project Settings>Editor」を選択して表示される 「Editor Settings」に「C# Project Generation」が追加されています 「Additional extensions to include」に記載されている拡張子のファ…