Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        //取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);
        }
Ejemplo n.º 4
0
 public static char ConvertTo(TerrainItem symbol)
 {
     return(_outputCharMap[symbol]);
 }
Ejemplo n.º 5
0
 public TreeSlope SetPosition(int x, int y, TerrainItem item)
 {
     this._terrainActive[x, y] = item;
     return(this);
 }