public static AssetPtr AssetPtrField(Rect rect, GUIContent label, AssetPtr value, Type assetType, out bool changed) { value ??= AssetPtr.NullPtr; Object asset = LoadAssetByGUID(value.AssetGUID, assetType); Object newAsset = EditorGUI.ObjectField(rect, label, asset, assetType, false); changed = newAsset != asset; return(changed ? newAsset.GetAssetPtr() : value); }