//------------------------------------------------------------ // Game Framework // Copyright © 2013-2021 loyalsoft. All rights reserved. // Homepage: http://www.game7000.com/ // Feedback: http://www.game7000.com/ //------------------------------------------------------------ using System.Collections.Generic; namespace UnityGameFramework.Runtime { /// /// 内置版本资源列表序列化器。 /// public static partial class BuiltinVersionListSerializer { private const string DefaultExtension = "dat"; private const int CachedHashBytesLength = 4; private static readonly byte[] s_CachedHashBytes = new byte[CachedHashBytesLength]; private static int AssetNameToDependencyAssetNamesComparer(KeyValuePair a, KeyValuePair b) { return a.Key.CompareTo(b.Key); } private static int GetAssetNameIndex(List> assetNameToDependencyAssetNames, string assetName) { return GetAssetNameIndexWithBinarySearch(assetNameToDependencyAssetNames, assetName, 0, assetNameToDependencyAssetNames.Count - 1); } private static int GetAssetNameIndexWithBinarySearch(List> assetNameToDependencyAssetNames, string assetName, int leftIndex, int rightIndex) { if (leftIndex > rightIndex) { return -1; } int middleIndex = (leftIndex + rightIndex) / 2; if (assetNameToDependencyAssetNames[middleIndex].Key == assetName) { return middleIndex; } if (assetNameToDependencyAssetNames[middleIndex].Key.CompareTo(assetName) > 0) { return GetAssetNameIndexWithBinarySearch(assetNameToDependencyAssetNames, assetName, leftIndex, middleIndex - 1); } else { return GetAssetNameIndexWithBinarySearch(assetNameToDependencyAssetNames, assetName, middleIndex + 1, rightIndex); } } } }