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

UnsafeUtility.AsRef

Declaration

public static ref T AsRef(void* ptr);

Параметры

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

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

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

Описание

Возвращает ссылку на структуру, расположенную по конкретному адресу в памяти.

AsRef метод даёт ссылку на структуру непосредственно в памяти. Это позволяет эффективно работать с данными без копирования. Применяйте его там, где критична производительность и нужно менять данные на месте. Неправильное использование может повредить память, поэтому всегда проверяйте корректность указателя.

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

public class AsRefExample : MonoBehaviour { struct Position { public float X; public float Y; public float Z; }

void Start() { // Allocate memory for Position using stackalloc unsafe { Position* positionPtr = stackalloc Position[1];

// Set initial values positionPtr->X = 1.0f; positionPtr->Y = 2.0f; positionPtr->Z = 3.0f;

// Use AsRef to get a reference to the struct ref Position positionRef = ref UnsafeUtility.AsRef<Position>(positionPtr);

// Modify the struct through the reference positionRef.X = 10.0f; positionRef.Y = 20.0f; positionRef.Z = 30.0f;

// Output the modified values Debug.Log($"Modified Position: X = {positionPtr->X}, Y = {positionPtr->Y}, Z = {positionPtr->Z}"); } } }

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