(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

C#

enumのToStringが遅いって本当ですか?【C#】【Unity】【拡張メソッド】【高速化】

拡張メソッドとは この記事でのバージョン Unity 5.6.1f1 はじめに enumのToStringは遅いという話を耳にしたので、気になって調べてみた系の記事です!ちなみに、以前にenumをkeyにしたDictionaryが遅いという話も記事にしてました。 そもそものenumのToStri…

カテゴリ別、厳選記事一覧【Unity】【エディタ拡張】【C#】

はじめに このブログに投稿した記事の中から、人気があったモノや有益っぽい気がするモノを厳選し、カテゴリ別にまとめてみました!随時更新中! 2017.06.19更新以下の項目を追加 - enumのToStringが遅いって本当ですか? 目次 はじめに 目次 Unityの機能 Un…

コンストラクタの継承【C#】

C#

はじめに 今回はC#でコンストラクタの継承を行う方法のご紹介です! コンストラクタの継承

Listを反転させる【C#】

C#

今回はListの小ネタで、中身を反転させる方法のご紹介です!やり方は簡単、Reverseというメソッドを使うだけです。 //リストを作成 List<int> list = new List<int>(); list.Add(1); list.Add(2); list.Add(3); //中身を列挙 foreach (int num in list) { print(num); </int></int>…

stringの文字数を揃える【C#】

C#

はじめに 今回はstringの文字数を揃える方法のご紹介です。"1" → "1000" "33" → "3300" "525" → "5250" みたいな感じで使えるやつです。 PadLeft, PadRight

enumをkeyにしたDictionaryが遅いって本当ですか?【C#】【Unity】【高速化】

この記事でのバージョン Unity 5.4.0f3 はじめに c#のenumは遅いという話を耳にしたので、気になって調べてみた系の記事です! そもそものc#のenumは遅いという由来は以下の通り。 enumは糖衣構文です。実態はclass Enumです。 糖衣構文……?知らぬ存ぜぬ。と…

時間を計る便利クラス【Unity】【C#】

この記事でのバージョン Unity 5.4.0f3 はじめに 今回はUnity上で時間を簡単に計る方法のご紹介!ちなみに、iOSやAndroid、Unityエディタ上はもちろん、エディタが再生してない時でも使えます!ようは、エディタ拡張で作った機能の処理時間も計れるというこ…

進数の変換と64進数【C#】

C#

はじめに 今回はC#で進数を変換する方法のご紹介!ついでに64進数の相互変換を行うクラスも作ってみたりしました。 System.Convert

ビットフラグを使いやすくするアレコレ【Unity】【C#】【エディタ拡張】【拡張メソッド】

エディタ拡張とは 拡張メソッドとは この記事でのバージョン Unity 5.4.0f3 はじめに タイトルの通り、今回はUnity&C#で開発を行う際にビットフラグを使いやすくするアレコレのご紹介です! ビットフラグ

Listをシャッフルしたり、ランダムに取得したり、先頭から取り出したり【C#】【拡張メソッド】

拡張メソッドとは はじめに 今回はListを便利にする拡張メソッドのご紹介!拡張メソッドってなんぞやという方は以下の記事をどうぞ。 拡張メソッドとは既存のクラスにメソッドを追加するというものです。 ListExtension

文字列の中に、任意の文字列がいくつあるか【C#】【拡張メソッド】

拡張メソッドとは 可変長引数とは はじめに タイトル通り、今回は文字列の中に、任意の文字列がいくつあるかを調べる方法の記事です。イメージとしては以下のような感じ。 string str = "ああいううえええええおお"; Debug.Log (CountOf (str, "あ")); //"あ…

設定する個数を変更できる引数(可変長引数)【C#】

C#

はじめに 今回は設定する個数を変更できる引数(可変長引数)のお話です。同じ型の引数を複数渡したいけど、渡す個数は決まっていない。みたいな時に使えるやつです。 params C#での可変長引数はparamsを使います。以下のように、paramsを配列の前に書く事で、…

確率判定【C#】【Unity】

この記事でのバージョン Unity 5.3.0f4 Personal はじめに ゲームを作ってると30%の確率でアイテム取得するだとか、ガチャのようにそれぞれ出現確率が違うものから一つ抽選するとか、確率を使って何かを判定するという事がよくあります。 今回はそんな確率判…

Unityで共通のdefineを定義する【Unity】【C#】

この記事でのバージョン Unity 5.2.2f1 Personal はじめに C#では#defineでシンボルを定義し、#unddef でシンボルを未定義にする事ができます。 シンボルを使えば以下のように、定義されているシンボルによって処理を変更できます。 なお、無効になっている…

日数や時間の保存、取得、計算【C#】【Unity】

この記事でのバージョン Unity 5.1.0f3 Personal はじめに 今回は現在時刻を取得したり、経過日数を知りたい時の方法です。

メソッド名を文字列で取得【C#】

C#

はじめに UnityでInvokeなどを使う時にメソッド名を文字列で指定する場合があります。こんな時に直打ちするとタイプミスする危険性があり、どうにかしてメソッド名を文字列で取得したいですね。今回はそんな記事です。 メソッド名を文字列で取得 早速、メソ…

特定の引数だけ指定してメソッド実行【C#】

C#

引数の設定 以下のように引数にデフォルト値が設定されているメソッドは、引数を省略するとデフォルト値がその引数に設定されます。 public void Log(string str = "text"){ Debug.Log (str + " : " + num); } public void Start(){ Log(); } text 複数の引…

keyが存在しない場合はデフォルト値を返すDictionaryの拡張メソッド【C#】【拡張メソッド】

拡張メソッドとは はじめに 以下のように、Dictionaryで存在しないkeyでvalueを取得しようとすると Dictionary<string, int> dict = new Dictionary<string, int>(); int tmp = dict["key"]; KeyNotFoundException: The given key was not present in the dictionary.と例外が発生して</string,></string,>…

ディレクトリとその中身を全て削除、ディレクトリをコピー【C#】

C#

はじめに C#でディレクトリを削除する時は以下のようにします。 //System.IOを忘れずに using System.IO; //Assetsディレクトリ以下にあるTestディレクトリを削除 Directory.Delete("Assets/Test"); しかし、ディレクトリ内にファイルが残っていると、IOExce…

デリゲートとは【C#】

C#

はじめに DelegateとEventって何が違うの?だとか、ラムダ式ってどうやって記述するの?という状態なので、今回は勉強がてら、デリゲートについてまとめてみた記事です。

拡張メソッドとは、全ての子オブジェクトにレイヤーとマテリアル設定を行ってみる【C#】【Unity】【拡張メソッド】

この記事でのバージョン Unity 5.1.0f3 Personal はじめに 以下のようなコードでスクリプトからLayerを変更する事が出来ます。 gameObject.layer = layerNo; しかし、このやり方だと子オブジェクトのレイヤーは変更されません。 例えば以下のような構造にな…

Genericsメソッド内で型に応じた処理を行う【C#】

C#

Genericsメソッドとは Genericsメソッドとは、いろいろな型に対応したメソッドの事です。 型だけ違って処理の内容が同じようなものを作るときに使う。 ジェネリック 例えば複数の型に対応した保存用のメソッドを作成する時、以下のようにオーバーロードを使…

Dictionaryの値をforeachで変更する【C#】

C#

Dictionaryのforeach まず、Dictionaryでforeachを行うには以下のようにKeyValuePairを使います。 Dictionary<string, int> dic = new Dictionary<string, string> (){ {"key1", 100}, {"key2", 200} ,{"key3", 300} }; foreach(KeyValuePair<string, int> pair in dic){ Debug.Log (pair.Key + " " + p</string,></string,></string,>…

列挙型と数値or文字列との相互変換や項目数の取得など【C#】

C#

列挙型 今回は列挙型と呼ばれるenumに対しての処理というか使い方についての記事です。 public enum StatusType{ HP = 0, ATK, DEF, SPD } 上記のようなRPGの能力を表したenumを例として使っていきます。

フォーマットを指定して文字列作成【C#】

C#

例えば、以下のように画像に名前が付いていた時、 monster_1_1_1 monster_3_2_5 数字部分だけ変えて画像名の文字列を作りたいと言った場合のやり方です。

配列⇔List変換、Listのコピー、末尾の改行文字等削除【C#】

C#

C#関連で記事のするほどじゃないけど、まとめておきたいモノを複数列挙する感じの記事です。 Tipsみたいなものなのでそれぞれに関係はありません。

参照渡し、Dictionaryのforeach、Listのソート【C#】

C#

C#関連で記事のするほどじゃないけど、まとめておきたいモノを複数列挙する感じの記事です。Tipsみたいなものなのでそれぞれに関係はありません。

文字列を1文字ずつ列挙、文字が数字か否か、パディング【C#】

C#

C#関連で記事のするほどじゃないけど、まとめておきたいモノを複数列挙する感じの記事です。Tipsみたいなものなのでそれぞれに関係はありません。

Sorting Layer一覧を取得する【Unity】【エディタ拡張】【C#】

エディタ拡張とは Sorting Layers 簡単に言うとSorting Layersとは2D部分のLayersです。設定はLayersやTagsと同じく、[Edit]-[Project Settings]-[Tags and Layers]から行えます。 同じ場所で設定出来るLayersやTagsは以下の方法で一覧を取得出来るのですが…