【c#】範囲演算子を配列やリストで使う

C#の8.0から配列やリストで範囲演算子が利用できるようになったみたいです。

learn.microsoft.com

範囲演算子

範囲演算子には、「..」 と 「^」 の2つの主要な構文があります。

  • 「..」 は範囲を指定するために使用されます。
  • 「^」 は配列やリストの末尾からのインデックスを指定するために使用されます。

例えば、ある配列を次のようにfor文を使ってロジックを組んでいたとします。

for (int i = 0; i < hogeList.Length - 1; i++)
{
    var hoge = hogeList[i];
}

範囲演算子を利用すると次のように置き換えることができます。

 foreach (var panel in hogeList[..^1])
{
}

次が範囲演算子の例になります。 必要な組み合わせの範囲を取得することができます。

int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// 最初の5つの要素を取得
var firstFive = numbers[..5];

// 最後の5つの要素を取得
var lastFive = numbers[^5..];

// 3番目から7番目の要素を取得
var middle = numbers[2..7];

// 最後の要素を取得
var lastElement = numbers[^1];

UnityのEditor拡張メモ

Editor拡張の話です。

EditorApplication.playModeStateChanged

EditorApplication.playModeStateChangedという関数があります。こちらは、PlayモードとEditorモードの2つのモードの切り替え時に呼び出されます。 PlayModeStateChangeという型の引数が渡され、この引数を参照してそれぞれの処理を実装します。

実装例

static TestScriptEditor()
{
    EditorApplication.playModeStateChanged += OnChanged;
}

private static void OnChanged(PlayModeStateChange state)
{
    switch (state)
    {
        case PlayModeStateChange.EnteredEditMode:
            Debug.Log("Entered Edit Mode");
            break;
        case PlayModeStateChange.ExitingEditMode:
            Debug.Log("Exiting Edit Mode");
            break;
        case PlayModeStateChange.EnteredPlayMode:
            Debug.Log("Entered Play Mode");
            break;
        case PlayModeStateChange.ExitingPlayMode:
            Debug.Log("Exiting Play Mode");
            break;
    }
}

Selection.selectionChanged

Selection.selectionChangedは、エディタ内で選択が変更されたときに発生します。 エディタ内でゲームオブジェクトやアセットなどの選択が変わると、このイベントが発生します。

実装例

static TestScriptEditor()
{
     Selection.selectionChanged += OnSelectionChanged;
}

private static void OnSelectionChanged()
{
    Debug.Log("Selection Changed");
}

UnityEditor.Callbacks.DidReloadScripts

UnityEditor.Callbacks.DidReloadScripts属性が付けられている関数は、スクリプトがリロードされたときに呼び出されます。 スクリプトがリロードされるのは、主に新しいスクリプトが作成されたとき、既存のスクリプトが変更されたとき、またはUnityエディタが再起動されたときです。

実装例

[UnityEditor.Callbacks.DidReloadScripts]
private static void OnScriptsReloaded()
{
}

天橋立を見に行ってきました

天橋立傘松公園からの景色がとても綺麗ということで行ってきました。 駐車場に車を止めて、ケーブルカー(リフト)の駅に向かいます。

料金は同じなので、どちらでも良いと思いますが、ケーブルカーは時間が決まっているのでリフトで登ってみました。 背が高い(足が長い)と所々地面に接触するおそれがありそうですので、乗るときには注意が必要です。

天候は良くないですが、雨は降っていなかったので景色がきれいでした。

帰りはケーブルカーに乗りました。 ケーブルカーに乗ること自体本当に久しぶりでした。

その他

個人的に気になったのが、成相寺のイメージキャラクターがいることでした。

www.nariaiji.jp

何かグッズがあれば買おうか思いましたが、香水しかなかったので諦めました。

【C104】コミックマーケットに参加してきました。

本日、東京ビッグサイトで開催されたコミックマーケット104にて、サークル「西-さ02a albatrus」として参加させていただきました。 非常に暑い日ではありましたが、スペースにお越しいただき、誠にありがとうございました。

西館

前回は久しぶりの東館だったのですが、今回は西館でした。 サークルスペースにはいつものポスターと、今回から「お品書き」を立てかけられるアクリル立てを持っていきました。

サークルスペース

同人誌

「UnityEffectGuild」を持っていきました。 UGUIとParitcleSystemの描画順を主に書いた本です。

表紙

配布結果

前回に引き続き20部を印刷しました。 開場は10:30で、15:30に配布を終りました。

感想

今回はかなり心に響くサークル参加になりました。 会場時間が10:30だったのですが、11:20頃まで1冊も配布できませんでした(そもそもサークルに立ち寄る方が全くいませんでした)。いつもなら12時から13時の一番人が多い時間帯も本当に疎らな状況でした。 帰りのことを考えて15:30に撤収をしましたが、非常に辛い経験となりました。

原因

これはコロナ明けから感じていたことですが、サークルに訪れる人が極端に減ったことで、ついにその波が来たかと思いました。Unityへの興味や注目度が少なくなっているのだと感じます。 自分のサークルだけでなく、ほかのUnity関係のサークルも同じような状況が見受けられました。

また、今回自分が書いた内容にも原因があると思っています(おそらくこちらのほうが正しいでしょう)。 しっかりと記事を練り上げて書いたかどうか、読者がそれを知りたいかどうか、そして視覚的に理解しやすいサンプルを用意したかどうか。また、ブログなどで正しくアピールできていたか、Unityに関する内容も含めて、もう少し突き詰めていく必要があると感じています。 一旦、次のコミケには申し込まない予定です。 しっかりと内容がまとまり次第、年に一度良質な作品を出せるように努めたいと思います。

EditorPrefsについて調べてみた

EditorPrefsはUnityのクラスで、Unityのエディタ設定の保存や取得などをするメソッドを提供します。 Unityエディタで保存されるため、プロジェクトを変更してもその設定が継続されます。

次の設定を保存できます。

  • String (文字列)
  • Int (整数)
  • Float (浮動小数点)
  • Bool (ブール値)

Bool値を保存、取得する例

まずは保存をするためのKeyを定義します。

string key = "BoolKey";

実際に値を保存するためにコートは次のようになります。

EditorPrefs.SetBool(key, true);

保存された値を使う場合は次のようになります。

var value = EditorPrefs.GetBool(key);

keyを削除する場合には次のようなコードになります。

EditorPrefs.DeleteKey(key);

keyが登録されているかどうかを判定する場合は次のようなコードになります。

 EditorPrefs.HasKey(key)

docs.unity3d.com

兵庫県の出石で楽しむ伝統料理

兵庫県の出石にそばを食べに行ってきました。

そば

出石そばは、兵庫県豊岡市出石町で古くから食されている伝統的なそば料理です。 出石そばの特徴は、細くて短い麺と、薄味のつゆで食べる点にあります。そば粉をふんだんに使用した麺は風味豊かで、つゆは鰹節や昆布でとった出汁でさっぱりとしています。

また、出石そばは小さな皿に少量ずつ盛り付けられ、「皿そば」として知られています。通常、5枚から15枚の皿が一組とされており、食べる人が好みの枚数を選んで楽しみます。

www.izushi-katsura.com

町並み

出石(いずし)は、兵庫県豊岡市にある歴史的な町です。江戸時代に城下町として栄え、その趣のある町並みが今も多く残っています

時計台が有名です。

城趾もあります。

最後に

出石は昔一回いったこと合ったのですが、久しぶりでした。 おそばも特徴があって美味しかったです。