/// <summary> /// セーブデータ用のバイナリ読みこみ /// </summary> /// <param name="reader">バイナリリーダー</param> public void ReadSaveData(BinaryReader reader) { UtageToolKit.ReadLocalTransform(this.transform, reader); this.LocalColor = UtageToolKit.ReadColor(reader); //Tweenがある場合は、Tween情報を読み込む int tweenCount = reader.ReadInt32(); for (int i = 0; i < tweenCount; ++i) { iTweenPlayer tween = this.gameObject.AddComponent <iTweenPlayer>() as iTweenPlayer; tween.Read(reader, pixelsToUnits); } //各スプライトの読み込み int count = reader.ReadInt32(); for (int i = 0; i < count; ++i) { string name = reader.ReadString(); AdvFadeSprites sprite = GetSpriteCreateIfMissing(name); sprite.Read(reader); } string defaultSpriteName = reader.ReadString(); if (!string.IsNullOrEmpty(defaultSpriteName)) { DefaultSprite = FindSprite(defaultSpriteName); } }
/// <summary> /// 全て消去 /// </summary> public void Clear() { ResetLayer(); sprites.Clear(); UtageToolKit.DestroyChildren(this.transform); DefaultSprite = null; }
/// <summary> /// 全スプライトをフェードアウト /// </summary> /// <param name="fadeTime">フェード時間</param> public void FadeOutAllSprite(float fadeTime) { foreach (var sprite in sprites) { sprite.FadeOut(fadeTime, true); } sprites.Clear(); defaultSprite = null; }
/// <summary> /// デフォルトのスプライトのテクスチャ設定 /// </summary> /// <param name="name">スプライト名</param> /// <param name="texture">テクスチャファイル</param> /// <param name="fadeTime">フェード時間</param> public void SetDefaultSprite(string name, AssetFile texture, object x, object y, float fadeTime) { if (DefaultSprite == null) { //まだデフォルトスプライトがない場合はスプライトを作成して設定 DefaultSprite = SetSprite(texture, name, x, y, fadeTime); } else { //デフォルトスプライトがある場合は既存のスプライトを使いまわして名前を変える SetSprite(texture, DefaultSprite.name, x, y, fadeTime); DefaultSprite.name = name; } }
/// <summary> /// デフォルトのスプライトのテクスチャ設定 /// </summary> /// <param name="name">スプライト名</param> /// <param name="graphic">テクスチャファイル</param> /// <param name="fadeTime">フェード時間</param> public void SetDefaultSprite(string name, GraphicInfo graphic, object x, object y, float fadeTime) { if (DefaultSprite == null) { //まだデフォルトスプライトがない場合はスプライトを作成して設定 DefaultSprite = SetSprite(graphic, name, x, y, fadeTime); } else { //デフォルトスプライトがある場合は既存のスプライトを使いまわして名前を変える SetSprite(graphic, DefaultSprite.name, x, y, fadeTime); DefaultSprite.name = name; } }
/// <summary> /// スプライトのフェードアウト /// </summary> /// <param name="spriteName">スプライト名</param> /// <param name="fadeTime">フェード時間</param> public void FadeOutSprite(string spriteName, float fadeTime) { var sprite = FindSprite(spriteName); if (sprite == null) { return; } if (defaultSprite == sprite) { defaultSprite = null; } sprite.FadeOut(fadeTime, true); sprites.Remove(sprite); }
/// <summary> /// 指定の名前のGameObjectを取得 /// </summary> /// <param name="name"></param> public GameObject FindGameObject(string name) { AdvLayer layer; if( layers.TryGetValue( name, out layer ) ) { return layer.gameObject; } foreach (var item in layers.Values) { AdvFadeSprites sprite = item.FindSprite(name); if (sprite != null) { return sprite.gameObject; } } return null; }
/// <summary> /// スプライトの設定 /// </summary> /// <param name="texture">テクスチャファイル</param> /// <param name="spriteName">スプライト名</param> /// <param name="x">表示座標X floatのobject nullを指定することで位置移動なし</param> /// <param name="y">表示座標Y floatのobject nullを指定することで位置移動なし</param> /// <param name="fadeTime">フェード時間</param> /// <returns>設定したスプライト</returns> public AdvFadeSprites SetSprite(AssetFile texture, string spriteName, object x, object y, float fadeTime) { AdvFadeSprites sprite = GetSpriteCreateIfMissing(spriteName); sprite.SetTexture(texture, fadeTime); if (x != null || y != null) { Vector3 pos = sprite.transform.localPosition; if (x != null && x is float) { pos.x = (float)x / pixelsToUnits; } if (y != null && y is float) { pos.y = (float)y / pixelsToUnits; } sprite.transform.localPosition = pos; } return(sprite); }
/// <summary> /// スプライトのフェードアウト /// </summary> /// <param name="spriteName">スプライト名</param> /// <param name="fadeTime">フェード時間</param> public void FadeOutSprite(string spriteName, float fadeTime) { var sprite = FindSprite(spriteName); if (sprite == null) return; if (defaultSprite == sprite) { defaultSprite = null; } sprite.FadeOut(fadeTime, true); sprites.Remove(sprite); }