UnsafeUtility.As
Declaration
public static ref T As(ref U from);Параметры
| Параметр | Описание |
|---|---|
| от | Ссылка на объект одного типа, которую необходимо переинтерпретировать как ссылку на объект другого типа. Убедитесь, что преобразование осуществляется между совместимыми типами, чтобы избежать ошибок во время выполнения. |
Возвращаемое значение
T Ссылка на объект, интерпретируемый как тип целевого объекта.
Описание
Выполняет небезопасное преобразование указанного объекта в другой тип.
Метод As преобразует ссылку одного типа в другой тип. Используйте этот метод для прямого преобразования типов, например, во время операций с низкоуровневой памятью или при взаимодействии с неуправляемым кодом, где безопасность типов не применяется.
При использовании этого метода следует проявлять осторожность. Неправильное преобразование может привести к исключениям во время выполнения или неопределенному поведению, если типы несовместимы. Этот метод обходит обычные проверки безопасности типов и обеспечивает гибкость, но меньшую безопасность.
using Unity.Collections.LowLevel.Unsafe; using UnityEngine;
public class UnsafeUtilityAsExample : MonoBehaviour { enum ExampleEnum { First = 1, Second = 2, } struct SourceStruct { public int IntegerValue; }
struct TargetStruct { public ExampleEnum EnumValue; }
void Start() { SourceStruct source = new SourceStruct { IntegerValue = 2 };
// Use UnsafeUtility.As to convert the source struct to a target struct TargetStruct target = UnsafeUtility.As<SourceStruct, TargetStruct>(ref source);
// Output the converted value Debug.Log($"Converted value: {target.EnumValue}"); } }
Дополнительные ресурсы: ,UnsafeUtility.AddressOf,, ,UnsafeUtility.AsRef,.