tonari note

オンラインゲームエンジニアの雑記

C#

静的クラスのお話

C#

C#では静的クラスというものを宣言することができます。静的クラスと静的クラス メンバ(MSDN)静的クラスには以下の特徴があります。 全てのメンバーは静的でなければなりません。 通常のクラスのようにインスタンス化はできません。 インターフェイスの実装…

Unityに自作ライブラリのDLLを参照させるお話

複数のゲームを作る場合、似たようなゲームのロジック部分などをライブラリ化し、使いまわしたい場合があります。 Unityでは以下のようにしてDLLを参照させることができます。 クラスライブラリを作成します。 プロジェクトのプロパティから、対象のフレーム…

UnityのエディタをVisualStudioに変更するお話

Untiyの標準エディタはMonoDevelopですが、これをVisualStudioに変更することができます。 今回はUnity 4とVisualStudio Express 2012 for Windows Desktopを使用します。両方の準備ができたら、Unityのプロジェクト側で以下の設定を変更します。 ここで指定…

Optionクラスを公開しました

Optionクラス(GitHub)Nullableでは以下のような演算が可能です。演算のどちらかがnullだった場合、結果もnullになります。参照型の場合、nullに対するメンバを呼び出そうとするとエラーになります。 これを回避するためにOptionクラスでオブジェクトをラッピ…

デリゲートとイベントのお話

C#

C#ではデリゲートを用いることでメソッドを変数のように扱うことができます。delegate(MSDN)また、これと似たようなキーワードにeventがあります。event(MSDN)単にメソッドを変数のように扱いたい時はデリゲート(Action/Func)を使用するのですが、クラス内に…

シーケンスの途中の要素を抜き出したい時のお話

C#

いくつかのシーケンスのうち、途中から途中までの範囲を切り出して処理をしたい時があります。 その時はSkipメソッドとTakeメソッドを使用します。Skip(MSDN) Take(MSDN)Skipはそこから何要素を飛ばすか、Takeはそこから何要素を取得するかです。 これらのメ…

Tupleのお話

Tupleとは組という意味だそうです。 ダブル、トリプルといった単語もこの言葉からきているようです。 Tupleの意味(weblio)プログラムでは、一時的に複数のオブジェクトをひとまとまりにする際に使用します。 C#では、Tupleクラスが4.0から追加されました。Tu…

ジェネリックとdefaultのお話

C#

C#には型に対しての既定値が用意されています。 ジェネリック コードの default キーワード(MDSN)既定値は、値型の場合は0、参照型の場合はnullです。 構造体では各メンバが既定値に初期化され、その値を返します。既定値を得るにはdefaultキーワードを使用…

Monoでちょっと気になったこと

昼間に軽くideoneさんで遊んでいた時に見つけた。 ListにAddしっぱなしにした時に、デストラクタの挙動が違ってたので気になった。 using System; using System.Collections.Generic; namespace ConsoleApplication1 { class Program { static void Main(str…

string.Format のお話

C#

オブジェクトを置換しながら文字列にしてくれるメソッドのお話。 Console.WriteLineメソッドと相性がいいのでよく使っています。 String.Format メソッド(MSDN) using System; public class Test { public static void Main() { // intを3ケタで表示 Consol…

Enum.GetValues のお話

C#

定義したEnumの各要素(定数)を配列に変換してくれる便利関数のお話。 MSDN using System; public class Test { enum Hoge { Hoge0 = 0, Hoge1, Hoge100 = 100, } public static void Main() { var hogeArray = Enum.GetValues(typeof(Hoge)); foreach (var…