Unity 6.3
0 онлайн 65 гостей 3 в системе
Вход

UnsafeUtility.ArrayElementAsRef

Declaration

public static ref T ArrayElementAsRef(void* ptr, int index);

Параметры

Параметр Описание
ПТР Указатель на первый элемент массива. Убедитесь, что этот указатель является действительным и указывает на выделенную память.
индекс Нулевой индекс элемента для ссылки. Проверьте, что индекс находится в пределах массива, чтобы предотвратить нарушения доступа.

Возвращаемое значение

T Ссылка на значение типа T в указанном индексе в массиве. Эта ссылка позволяет непосредственно манипулировать значением в его месте в памяти.

Описание

Получает ссылку на значение типа T в массиве с указанным индексом в памяти.

Метод ArrayElementAsRef позволяет прямой доступ к элементу массива по его индексу в памяти. Этот метод предоставляет ссылку на элемент, позволяющую эффективно манипулировать данными без копирования. Используйте этот метод с осторожностью, так как неправильное использование указателя может привести к повреждению памяти или сбоям приложения.

using UnityEngine;
using Unity.Collections.LowLevel.Unsafe;
using System.Runtime.InteropServices;

public class ArrayElementAsRefExample : MonoBehaviour { [StructLayout(LayoutKind.Sequential)] struct CustomStruct { public int Id; public float Value; }

void Start() { int arrayLength = 5;

// Allocate a buffer for CustomStruct using stackalloc unsafe { CustomStruct* structArray = stackalloc CustomStruct[arrayLength];

// Initialize the array with values for (int i = 0; i < arrayLength; i++) { structArray[i].Id = i; structArray[i].Value = i * 1.5f; }

// Get a reference to an element using ArrayElementAsRef ref CustomStruct element = ref UnsafeUtility.ArrayElementAsRef<CustomStruct>(structArray, 2); element.Value = 99.9f; // Modify the value in place

// Output the modified value Debug.Log($"Modified element at index 2: Id = {structArray[2].Id}, Value = {structArray[2].Value}"); } } }

Дополнительные ресурсы: ,UnsafeUtility.ReadArrayElement,, ,UnsafeUtility.WriteArrayElement,.