private void LoadAssets(TerrainItem item) { foreach (int textureId in item._mTextureIds) { TerrainTextureConfigItem textureCfg = SingletonManager.Get <TerrainTextureConfigManager>().GetTextureById(textureId); if (null == textureCfg) { continue; } TerrainTextureTypeConfigItem typeCfg = SingletonManager.Get <TerrainTextureTypeConfigManager>().GetTextureTypeById(textureCfg.Type); if (null == typeCfg) { continue; } //Sound LoadSoundAsset(typeCfg.SoundInfo.Normal); LoadSoundAsset(typeCfg.SoundInfo.Brake); foreach (int id in typeCfg.SoundInfo.WalkIds) { LoadSoundAsset(id); } //Effects LoadEffectAsset(typeCfg.EffectInfo.Normal); LoadEffectAsset(typeCfg.EffectInfo.Brake); LoadEffectAsset(typeCfg.EffectInfo.BrokenBrake); //Material LoadMaterialAsset(typeCfg.MaterialInfo.Track); LoadMaterialAsset(typeCfg.MaterialInfo.Slippery); } }
public void OnLoadSucc(int[] para, UnityObject unityObj) { var assetInfo = unityObj.Address; var obj = unityObj.AsObject; if (null == obj) { _logger.ErrorFormat("Asset {0}:{1} Load Fialed ", assetInfo.BundleName, assetInfo.AssetName); return; } if (para == null || para.Length != 2) { return; } try { EAssetType atype = (EAssetType)para[0]; switch (atype) { case EAssetType.BYTES: { //TerrainData var asset = obj as TextAsset; if (null == asset.bytes) { _logger.ErrorFormat("TerrainConfig is NULL"); return; } int subId = para[1]; TerrainImporter import = new TerrainImporter(); TerrainItem item = new TerrainItem(); import.ImportBytesConfig(asset.bytes, item); _terrains[subId] = item; LoadAssets(item); break; } case EAssetType.MATERIAL: { //Material var asset = obj as Material; if (null == asset) { return; } int materialId = para[1]; _dictMaterials.Add(materialId, asset); break; } } } catch (Exception e) { _logger.ErrorFormat(e.Message); } }
//取TextureId public int GetId(Vector3 worldPos) { int posX = Math.Max((int)(worldPos.x - _terrainInitPos.x), 0); int posZ = Math.Max((int)(worldPos.z - _terrainInitPos.z), 0); int subId = CalcPos2SubId(posX, posZ); TerrainItem item = GetSubTerrain(subId); if (item != null) { posX %= _splitWidth; posZ %= _splitHeight; return(item.GetTextureId(posX, posZ, _defaultId)); } return(_defaultId); }
public static char ConvertTo(TerrainItem symbol) { return(_outputCharMap[symbol]); }
public TreeSlope SetPosition(int x, int y, TerrainItem item) { this._terrainActive[x, y] = item; return(this); }