ルルのゲーム開発備忘録

主にUnityやC#に関する情報を気まぐれに投稿していきま~す

【Unity】TextMeshProを新規追加したときのデフォルト値の設定方法

はじめに

今回はTextMeshProのデフォルト値の設定方法について紹介です。
これを設定しておくと毎回パラメータを変更する手間が省けたり、プロジェクト内で文字の大きさなどに統一感をもたせたりすることが楽になります。

設定方法

ツールバーのEdit→Project Settings → TextMesh Pro → Settigng
から様々な項目のデフォルト値を設定することができます。

【C#】インターフェース内で非同期メソッドを宣言する方法

はじめに

今回は非同期メソッドをインターフェースで宣言する方法についての紹介です。

asyncをつけてしまうと...

インターフェース内でasyncをつけて非同期メソッドを宣言すると、
「async修飾子は本体があるメソッドでのみ使用できます」とエラーが出て怒られてしまいます。

interfaceでasync

解決方法

asyncをつけずに、戻り値にTaskやUniTaskを指定してメソッドを宣言すると、
エラーが出ることもなく、外部からつかうときにawaitで非同期処理を行うことができます。

TaskやUniTaskでラップする

【Unity】インスペクター上のテキストで改行(複数行)を登録する方法

はじめに

こんにちは、ルルです。
今回はインスペクター上のテキストで改行(複数行)を登録する方法についての記事です。

TextArea属性をつける

結論から言うと、対象のstring変数に[TextArea]属性をつけると複数行を登録することができます。

TextArea

[TextArea]だけでも6行くらい?は複数行登録できました。自分の場合はもっと欲しかったので[TextArea(1, 10)]のように書くことで10行まで登録できました。

逆にこの属性がないstringのインスペクター上で文字列を登録した場合、\nを入力していも表示されるときに改行が認識されていませんでした。





【C#】using static ディレクティブ

はじめに

今回は、using staticディレクティブについて紹介します。

using static ディレクティブ

using staticディレクティブを使うと、型名を書かずに対象の型の静的メンバーを記述することができるようになります。
またenum型もusing staticディレクティブを使うと型名なしで記述することができるようになって、コードを少しスマートに書くことができるようになります。

使い方

using static UsingStaticTest.PIKUMIN;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void UsingStaticTest()
{
    // いきなりAKA_PIKUMINとかける
    UsingStaticTest.PIKUMIN pikumin = AKA_PIKUMIN;
}

public class UsingStaticTest
{
    public enum PIKUMIN
    {
        AKA_PIKUMIN,
        KI_PIKUMIN,
        AO_PIKUMIN,
        HIKARI_PIKUMIN,
        KORI_PIKUMIN,
    }
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

参考

Unityゲーム プログラミング・バイブル 2nd Generation
https://www.borndigital.co.jp/book/22432.html

【C#】outパラメータ修飾子について

はじめに

今回は、outパラメータ修飾子について紹介します。

outパラメータ修飾子

outパラメータ修飾子を使ったメソッドの特徴

・戻り値はbool。処理成功でtrue、失敗でfalse
・処理成功で、outが付いたパラメータの参照渡しで結果を返す

使い方

C#6.0までは、outのつく変数を事前に宣言しておく必要があったが、C#7.0からは以下のように簡潔に書けるようになった。
今回はint.TryParseを例に使ってみる。

string str = "1";
if (int.TryParse(str, out var number))
{
    number++; // 2
}

参考

Unityゲーム プログラミング・バイブル 2nd Generation
https://www.borndigital.co.jp/book/22432.html

【C#】private protectedについて

はじめに

今回は、private protectedを含めた、C#アセンブリに関連する代表的なアクセス修飾子について3つほど紹介します。
アクセス修飾子ってのはpublicとかprivateとかのやつです。

アセンブリに関連するアクセス修飾子

アクセス修飾子 説明
internal 「同一アセンブリ」のみからアクセス可
protected internal 「同一アセンブリ」または「その型・その派生型」からアクセス可
private protected 「同一アセンブリ」かつ「その型・その派生型」からアクセス可

注意点

protected internalは、internalって名前がついているからなんとなく同じアセンブリからしかアクセスできなさそうな雰囲気を出していますが、前述の通り、継承さえしていれば別アセンブリからでもアクセスできてしまいますの注意が必要です。

参考

Unityゲーム プログラミング・バイブル 2nd Generation
https://www.borndigital.co.jp/book/22432.html

【C#】パラメーターの in 修飾子について

はじめに

今回は、in修飾子について紹介します。

in修飾子

C#7.2からin修飾子が利用可能になりました。
in修飾子はメソッドに引数を渡すときに、参照として渡したいけどメソッド内では参照先の値の書き換えをさせないようにすることができます。

メソッドに値型を参照渡しする方法にはrefを使うこともできますが、refの方は値の書き換えが自由です。
使い方もrefと書いていた部分をinに変えるだけです。

ref修飾子について知りたい方は前回の記事を参考にどうぞ。
rurugamedev-blog.com

使い方

    void InTest(in int num)
    {
        // 値の書き換えをしようとするとコンパイルエラー
        // num = 3;
    }

参考

Unityゲーム プログラミング・バイブル 2nd Generation
https://www.borndigital.co.jp/book/22432.html