在Unity中,如何创建指针集合?



是否可以在c#中创建指针列表或数组?

我想有一个T*的列表,而不是使用IntPtr,因为我永远不得不在所有地方键入MarshalPtr To Structure方法,而不是通过->命令直接访问方法。

我试着用T*做一个列表,但是它说它不能用它作为一个类型。那么,我唯一的选择是在需要时不断地从IntPtr转换吗?

  1. 可以声明一个指针数组

    unsafe Vector3*[] vectorPointerArray;
    
  2. 不能像List<Vector3*>那样使用指针作为泛型参数,这仍在考虑之中。

  3. 由于可行性1,你可以创建一个集合来保存指针,尽管它不能实现像IList<T>这样的通用接口。

    unsafe class UnsafePointerList<T> where T : unmanaged
    {
    private T*[] _items;
    public T* this[int index] => _items[index];
    }
    UnsafePointerList<Vector3> vectorPointerList;
    var x = vectorPointerList[0]->x;
    

相关内容

  • 没有找到相关文章