コガネブログ

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

2014-05-01から1ヶ月間の記事一覧

【C#】スネークケースの文字列をキャメルケースに変換する拡張メソッド

C#

ソースコード using System; using System.Linq; /// <summary> /// string 型の拡張メソッドを管理するクラス /// </summary> public static class StringExtensions { /// <summary> /// スネークケースをアッパーキャメル(パスカル)ケースに変換します /// 例) quoted_printable_encod</summary>…

【C#】単語の先頭文字を大文字に変換する拡張メソッド

ソースコード public static class StringExtensions { public static string ToTitleCase(this string self) { return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(self); } } 使い方 "getName()".ToTitleCase(); // "GetName()"…

【C#】書式指定可能なStringBuilder.AppendLineを拡張メソッドで実装する

概要 var builder = new StringBuilder(); builder.AppendFormat("{0}/{1}", count, max).AppendLine(); よくStringBuilderを使用して文字列を整形するのですが AppendFormat関数を使って改行したい場合は AppendFormat関数の後にAppendLine関数を呼び出す必…

【C#】「Obsolete」属性を使用してクラスや関数を使用された時にエラーや警告を発生させる

using System; [Obsolete("use other class")] public static class MyClass { [Obsolete("use other function", true)] public static void Call() { } } MyClass.Call(); Obsolete属性をクラスや関数に適用すると そのクラスや関数が使用された時にエラー…

【C#】配列の要素をランダムに並べ替えて返す拡張メソッド

ソースコード using System; using System.Collections.ObjectModel; /// <summary> /// 配列の拡張メソッドを管理するクラス /// </summary> public static class ArrayExtensions { /// <summary> /// ランダムに並び替えた新しい配列を返します /// </summary> public static T[] Shuffle<T>(this T</t>…

【Unity】can't use image filters (npot-RT are not supported or RT are disabled completely)

can't use image filters (npot-RT are not supported or RT are disabled completely) ProライセンスではないUnityでImage Effectを使用すると 上記のようなエラーが出るようです http://stackoverflow.com/questions/15986689/cant-use-image-filters-npot…

【C#】#error ディレクティブでコンパイルエラーを発生させる

#error invalid script C#ではソースコード中で「#error」を使用すると 能動的にエラーを発生させることができます 例えばUnityのWeb Playerプラットフォームでは使用できないスクリプトを実装した場合は 下記のように使えます #if UNITY_WEBPLAYER #error i…

【Unity】「SkinnedMorphTargets.cs」を使用してモーフィングを実装するときの注意

使用するスクリプト http://minifriend.googlecode.com/svn/trunk/MiniFriend_Unity/Assets/Plugins/SkinnedMorphTargets/SkinnedMorphTargets.cs .fbxの設定 モーフィングを適用したい.fbxをProjectビューで選択して Inspectorで下記の項目を変更する必要が…

【Unity】Unity4.3.4で出力したiOS版のWWWでメモリリークが発生する問題の対策

http://terasur.blog.fc2.com/blog-entry-719.html Unity4.3.4でiOS版を作成すると、 WWWクラスを使用した場合にメモリが正しく解放されない不具合が存在します なので、シェルを使って上記の問題を解決する方法を書き残しておきます 1.Macのターミナルを起…

【Unity】オブジェクトプール関連サイト

http://terasur.blog.fc2.com/blog-entry-733.html 【Unity】PrefabPoolManagerクラスを作ってみた(再利用可能Prefabをつくる): 順調に転がってます 黄昏66 プレハブ生成に関して - Instantiating Prefabs[Unity] うにばな(SendMessage オブジェクトプール…

【Unity】Resourcesフォルダからのプレハブのパスを定数で管理するクラスを生成する拡張機能

関連記事 【Unity】レイヤー名を定数で管理するクラスを生成する拡張機能 【Unity】タグ名を定数で管理するクラスを生成する拡張機能 【Unity】シーン名を定数で管理するクラスを生成する拡張機能 // プレハブを読み込みます Resources.Load<GameObject>("Enemy"); Resou</gameobject>…

【Unity】アセットをunitypackageとしてエクスポートする関数

AssetDatabase.ExportPackage 忘れないように覚書です。

【C#】Arrayクラスのstatic関数をList<T>のメンバ関数のように使用できるようにする拡張メソッド

概要 var characters = new Character { new Character{ Job = "王国兵士" }, new Character{ Job = "魔法使い" }, }; var soldier = Array.Find(characters, c => c.Job == "王国兵士"); int index = Array.FindIndex(characters, c => c.Job == "王国兵士"…

【Unity】UnityエディタのProjectビューでアセットのファイルパスをコピーする機能を追加するエディタ拡張

概要 上記のスクリプトをUnityプロジェクトの「Editor」フォルダの階層に追加していただくことで Projectビューでアセットを右クリックしてファイルパスをコピーする機能を追加できます コマンド名 説明 From Asset Assets フォルダからのパスをコピーします…

【シェルスクリプト】IRCに通知を飛ばす

シェルスクリプトからIRCで発言 - Gists - GitHub https://gist.github.com/rch850/6725221 #!/bin/sh nc -w 10 $IRC_SERVER 6667 << EOF &>/dev/null PASS $IRC_PASS NICK $IRC_NICK USER $IRC_NICK 8 * : $IRC_NICK JOIN $IRC_CH PRIVMSG $IRC_CH : $1 QUI…

【Unity】テクスチャのファイル名によってフォーマットを自動で変更するクラス

using System.IO; using UnityEditor; using UnityEngine; public sealed class TexturePostprocessor : AssetPostprocessor { private void OnPreprocessTexture() { var importer = assetImporter as TextureImporter; importer.filterMode = FilterMode.B…

【Unity】「SoundManagerPro 3」が85%オフ

Unityでサウンドを効果的に扱うためのアセット 「SoundManagerPro 3」が85%オフの$9で販売されています 実際に使ったことがないのでどんなことができるかはわからないですが 下記のようなことができるようです エフェクト適用 グループ化 ダッキング インス…

【Unity】StartCoroutineでラムダ式を使用できるようにするラッパークラス

概要 public class Character : MonoBehaviour { private void Attack() { // エラー:yield ステートメントは、 // 匿名メソッドまたはラムダ式の内部では使用できません StartCoroutine(() => { yield return new WaitForSeconds(1); Debug.Log("攻撃"); }…

【Unity】Unable to insert branch island. No insertion point available. for architecture armv7

Unable to insert branch island. No insertion point available. for architecture armv7 UnityでiOSビルドを選んでXcodeプロジェクトを作成したところ Xcodeのビルドの時に上記のようなエラーに遭遇しました このエラーはUnityエディタの「File>Build Sett…

【C#】String.Splitをもっと使いやすくする拡張メソッド

はじめに 例えばCRLF(\r\n)の改行で区切られた文字列をString.Split関数で分割する場合 var src = "ピカチュウ\r\nカイリュー\r\nヤドラン"; // 1. エラー src.Split("\r\n"); // 2. OK src.Split(new []{ "\r\n" }, StringSplitOptions.None); 1のように文…