//セーブデータ用のバイナリ読み込み void ReadSaveData(BinaryReader reader) { int version = reader.ReadInt32(); if (version >= VERSION_0) { this.Clear(); if (version >= VERSION) { this.isEventMode = reader.ReadBoolean(); } int count = reader.ReadInt32(); for (int i = 0; i < count; i++) { string key = reader.ReadString(); AdvLayer layer = GetLayer(key); if (null != layer) { layer.ReadSaveData(reader); } else { Debug.LogError(LanguageAdvErrorMsg.LocalizeTextFormat(AdvErrorMsg.ReadLayerSaveData, key)); } } } else { Debug.LogError(LanguageErrorMsg.LocalizeTextFormat(ErrorMsg.UnknownVersion, version)); } }
/// <summary> /// 初期化 /// </summary> /// <param name="setting">レイヤー設定データ</param> public void InitLayerSetting(AdvLayerSetting setting) { foreach (AdvLayerSettingData item in setting.List) { AdvLayer layer = UtageToolKit.AddChildGameObjectComponent<AdvLayer>(this.transform, item.Name); layer.Init(item, PixelsToUnits); layers.Add(item.Name, layer); if (item == setting.DefaultBGLayer) { bgLayer = layer; } //キャラクターレイヤー登録 if (item.Type == AdvLayerSettingData.LayerType.Character) { characterLayers.Add(item.Name, layer); if (item == setting.DefaultCharacterLayer) { defaultCharacterLayer = layer; } } //スプライトレイヤー登録 if (item.Type == AdvLayerSettingData.LayerType.Sprite) { spriteLayers.Add(item.Name, layer); if (item == setting.DefaultSpriteLayer) { defaultSpriteLayer = layer; } } } }
/// <summary> /// 指定の名前のキャラクター表示をオフ /// </summary> /// <param name="characterName">キャラクター名</param> /// <param name="fadeTime">フェード時間</param> public void CharacterFadeOut(string characterName, float fadeTime) { AdvLayer layer = FindCurrentCharacterLayer(characterName); if (layer!=null) { layer.FadeOutDefaultSprite(fadeTime); } }
AdvLayer FindSpriteLayer(string layerName) { AdvLayer layer = null; if (!string.IsNullOrEmpty(layerName)) { spriteLayers.TryGetValue(layerName, out layer); } if (null == layer) { //レイヤーが名前で設定できないならデフォルトレイヤーを使う layer = DefaultSpriteLayer; } return layer; }
/// <summary> /// キャラクタ-テクスチャの設定 /// </summary> /// <param name="layerName">レイヤー名</param> /// <param name="characterName">キャラクター名</param> /// <param name="texture">テクスチャ名</param> /// <param name="x">表示座標X floatのobject nullを指定することで位置移動なし</param> /// <param name="y">表示座標Y floatのobject nullを指定することで位置移動なし</param> /// <param name="fadeTime">フェード時間</param> /// <returns>成功したらture。テクスチャがないなどで失敗したらfalse</returns> public bool SetCharacterSprite(string layerName, string characterName, AssetFile texture, object x, object y, float fadeTime) { //既に同名のキャラがいるなら、そのレイヤーを取得 AdvLayer oldLayer = FindCurrentCharacterLayer(characterName); if (oldLayer != null && texture == null) { //テクスチャ指定がない場合、前の同名キャラのテクスチャを引き継ぐ if (oldLayer.DefaultSprite != null) { texture = oldLayer.DefaultSprite.CurrentTexture; } } if (texture == null) { //キャラのテクスチャ表示なし(エラーではない) return(false); } //表示するレイヤーを探す AdvLayer layer = null; if (!string.IsNullOrEmpty(layerName)) { characterLayers.TryGetValue(layerName, out layer); } if (null == layer) { //レイヤーが名前で設定できないなら、今のレイヤーをそのまま使う layer = oldLayer; if (null == layer) { //それもなければデフォルトレイヤーを使う layer = DefaultCharacterLayer; } } //スプライトを設定 layer.SetDefaultSprite(characterName, texture, x, y, fadeTime); //レイヤーが変わる場合は、昔のスプライトを消す if (oldLayer != layer && oldLayer != null) { oldLayer.FadeOutDefaultSprite(fadeTime); } return(true); }
AdvLayer AddLayer(AdvLayerSettingData data) { AdvLayer layer = UtageToolKit.AddChildGameObjectComponent <AdvLayer>(this.transform, data.Name); layer.Init(data, PixelsToUnits); layers.Add(data.Name, layer); //キャラクターレイヤー登録 if (data.Type == AdvLayerSettingData.LayerType.Character) { characterLayers.Add(data.Name, layer); } //スプライトレイヤー登録 if (data.Type == AdvLayerSettingData.LayerType.Sprite) { spriteLayers.Add(data.Name, layer); } return(layer); }
/// <summary> /// 初期化 /// </summary> /// <param name="setting">レイヤー設定データ</param> public void InitLayerSetting(AdvLayerSetting setting) { foreach (AdvLayerSettingData item in setting.List) { AdvLayer layer = AddLayer(item); if (item == setting.DefaultBGLayer) { bgLayer = layer; } if (item == setting.DefaultCharacterLayer) { defaultCharacterLayer = layer; } if (item == setting.DefaultSpriteLayer) { defaultSpriteLayer = layer; } } if (bgLayer == null) { AdvLayerSettingData data = new AdvLayerSettingData(); data.InitDefault("BG UtageDefault", AdvLayerSettingData.LayerType.Bg, 0); bgLayer = AddLayer(data); } if (defaultCharacterLayer == null) { AdvLayerSettingData data = new AdvLayerSettingData(); data.InitDefault("Character UtageDefault", AdvLayerSettingData.LayerType.Character, 100); defaultCharacterLayer = AddLayer(data); } if (defaultSpriteLayer == null) { AdvLayerSettingData data = new AdvLayerSettingData(); data.InitDefault("Sprite UtageDefault", AdvLayerSettingData.LayerType.Sprite, 200); defaultSpriteLayer = AddLayer(data); } }