コガネブログ

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

【Unity】無効値を表す構造体「UniOptional」を GitHub に公開しました

リポジトリ

使用例

using Kogane;
using UnityEngine;

public sealed class Example : MonoBehaviour
{
    private static Optional<string> GetName()
    {
        return default;
    }

    private void Start()
    {
        var name = GetName();

        // 値を持っている場合
        if ( name )
        {
            Debug.Log( name );
        }
        // 無効値の場合
        else
        {
            Debug.Log( "無効値" );
        }

        // 値を取得、無効値の場合はデフォルト値を取得
        Debug.Log( name.GetOrDefault() );
        
        // 値を取得、無効値の場合は引数に渡した値を取得
        Debug.Log( name.GetOrDefault( "無効値" ) );

        // 暗黙的なキャスト
        string str = name;
        
        // 暗黙的なキャスト
        name = "ピカチュウ";
    }
}

使用用途

  • 無効な値を表す際に -1 や null の代わりに使用する想定になります
  • C++ の std::optional を参考にしています