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

UnsafeUtility.AddressOf

Declaration

public static void* AddressOf(ref T output);

Параметры

Параметр Описание
Выпуск Управляемый объект, для которого требуется адрес памяти. Убедитесь, что объект остается действительным и существует на протяжении всего периода использования его адреса.

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

void* Указатель void, представляющий адрес объекта в памяти. Он даёт прямой доступ к этой области памяти. Обращайтесь с таким указателем аккуратно, чтобы не получить ошибок во время выполнения.

Описание

Получает адрес памяти указанного объекта в качестве указателя.

Метод AddressOf извлекает адрес памяти управляемого объекта. Используйте его в сценариях, требующих прямого доступа к памяти или взаимодействия с неуправляемым кодом, где эффективность имеет решающее значение.

При использовании этого метода следует проявлять осторожность. Неправильное обращение с адресами памяти может привести к повреждению памяти или нестабильности приложения. Используйте этот метод для повышения производительности в областях, где безопасность управляемой памяти требует значительных затрат.

using Unity.Collections.LowLevel.Unsafe;
using UnityEngine;

public class AddressOfExample : MonoBehaviour { struct ExampleStruct { public int Number; }

void Start() { ExampleStruct example = new ExampleStruct { Number = 100 }; unsafe { // Get the memory address of the struct void* address = UnsafeUtility.AddressOf(ref example);

// Modify the struct's value directly through the pointer ExampleStruct* pointer = (ExampleStruct*)address; pointer->Number = 200;

Debug.Log($"Modified value: {example.Number}"); // Outputs: Modified value: 200 } } }

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