以下の内容はhttps://hacchi-man.hatenablog.com/entry/2020/10/17/220000より取得しました。


【Unity】Vector 系で利用できるインデクサー

Vector2, Vector3, Vector4, Vector2Int, Vector3Int にはインデクサーが定義されている
※ Color にもある

インデクサーとは下記のようなもので

    public float this[int index]
    {
      get
      {
        switch (index)
        {
          case 0:
            return this.x;
          case 1:
            return this.y;
          default:
            throw new IndexOutOfRangeException("Invalid Vector2 index!");
        }
      }
      set
      {
        switch (index)
        {
          case 0:
            this.x = value;
            break;
          case 1:
            this.y = value;
            break;
          default:
            throw new IndexOutOfRangeException("Invalid Vector2 index!");
        }
      }
    }

instance[num] でアクセスすることができる

例えば y の値が欲しい際には instance[1] で取得できる

var vector3 = Vector3.zero;
// x
vector3[0];
// y
vector3[1];
// z
vector3[2];

利用例

x, y, zによって乗算する倍率変えたいときに利用できたりする

   private static readonly Vector3 Value = new Vector3(1f, 1.5f, 2f);
 
    private Vector3 Calc(Vector3 src)
    {
        var ret = Vector3.zero;
#if true
        // インデクサーを利用する場合
        for (var i = 0; i < 3; i++)
            ret[i] = src[i] * Value[i];
#else
        // インデクサーを利用しない場合
        ret.x = src.x * Value.x;
        ret.y = src.y * Value.y;
        ret.z = src.z * Value.z;
#endif
 
        return ret;
    }



以上の内容はhttps://hacchi-man.hatenablog.com/entry/2020/10/17/220000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14