private void RefreshAssets() { #if !UnitTest if (Logger.IsDebugEnabled) { Logger.DebugFormat("RefreshAssets cur {0} last {1}", _weapon.Asset, _lastWeapon.Asset); } #endif if (_weapon.Id != _lastWeapon.Id) { if (HasLastWeapon()) { _weaponModelLoadController.Unload(_lastWeapon.Asset); } _weaponModelLoadController.LoadWeapon(_weapon.Asset); } foreach (var partPair in _weaponPartDic) { var lastPart = _lastWeaponPartDic[partPair.Key]; if (partPair.Value.Id != lastPart.Id) { _weaponModelLoadController.Unload(_lastWeaponPartDic[partPair.Key].Asset); if (partPair.Value.Id > 0) { var location = WeaponTypeConvertUtil.GetLocationByPartType(partPair.Key); _weaponModelLoadController.LoadPart(_weaponPartDic[partPair.Key].Asset, location); } } } _weapon.CopyTo(_lastWeapon); foreach (var partPair in _weaponPartDic) { partPair.Value.CopyTo(_lastWeaponPartDic[partPair.Key]); } }