Esempio n. 1
0
        //オブジェクトを描画する
        internal AdvGraphicObject Draw(string name, AdvGraphicOperaitonArg arg)
        {
            AdvGraphicObject obj = GetObjectCreateIfMissing(name, arg);

            obj.Draw(arg);
            return(obj);
        }
        public override void DoCommand(AdvEngine engine)
        {
            string layer = layerName;

            if (string.IsNullOrEmpty(layer))
            {
                layer = engine.GraphicManager.BetweenCharaAndBgSprite.DefaultLayer.name;                    //レイヤー名指定なしなら背景とキャラの間のデフォルトレイヤー
            }

            //表示する
            var prefab = runAnimGraphic.File.UnityObject as GameObject;

            if (prefab == null)
            {
                Debug.LogError("[AdvCommandRunShake] DoCommand Error!! : object not setting.");
                return;
            }
            UniRx.MainThreadDispatcher.StartCoroutine(this.PlayAndWaitAnimation(layer, engine));

            // 背景表示切り替え
            var bgGraphicArg = new AdvGraphicOperaitonArg(this, toGraphic.Main, 0);

            engine.GraphicManager.IsEventMode = false;
            engine.GraphicManager.BgManager.DrawToDefault(engine.GraphicManager.BgSpriteName, bgGraphicArg);
        }
Esempio n. 3
0
        public override void DoCommand(AdvEngine engine)
        {
            AdvGraphicOperaitonArg graphicOperaitonArg = new AdvGraphicOperaitonArg(this, graphic.Main, fadeTime);

            engine.GraphicManager.IsEventMode = false;
            //表示する
            if (string.IsNullOrEmpty(layerName))
            {
                engine.GraphicManager.BgManager.DrawToDefault(engine.GraphicManager.BgSpriteName, graphicOperaitonArg);
            }
            else
            {
                engine.GraphicManager.BgManager.Draw(layerName, engine.GraphicManager.BgSpriteName, graphicOperaitonArg);
            }

            //基本以外のコマンド引数の適用
            AdvGraphicObject obj = engine.GraphicManager.BgManager.FindObject(engine.GraphicManager.BgSpriteName);

            if (obj != null)
            {
                //位置の適用(Arg4とArg5)
                obj.SetCommandPostion(this);
                //その他の適用(モーション名など)
                obj.TargetObject.SetCommandArg(this);
            }
        }
Esempio n. 4
0
        //キャラクターオブジェクトとして、特殊な表示をする
        internal AdvGraphicObject DrawCharacter(string layerName, string name, AdvGraphicOperaitonArg arg)
        {
            //既に同名のグラフィックがあるなら、そのレイヤーを取得
            AdvGraphicLayer oldLayer = null;

            foreach (var keyValue in layers)
            {
                if (keyValue.Value.IsEqualDefaultGraphicName(name))
                {
                    oldLayer = keyValue.Value;
                    break;
                }
            }

            //レイヤー名の指定がある場合、そのレイヤーを探す
            AdvGraphicLayer layer = FindLayer(layerName);

            if (layer == null)
            {
                //レイヤーがない場合は、旧レイヤーかデフォルトレイヤーを使う
                layer = (oldLayer == null) ? DefaultLayer : oldLayer;
            }

            //レイヤー変更があるか
            bool changeLayer = (oldLayer != layer && oldLayer != null);

            //レイヤー変更ないなら、描画しておわり
            if (!changeLayer)
            {
                //レイヤー上にデフォルトオブジェクトとして表示
                return(layer.DrawToDefault(name, arg));
            }

            Vector3    oldScale    = Vector3.one;
            Vector3    oldPosition = Vector3.zero;
            Quaternion oldRotation = Quaternion.identity;
            //レイヤーが変わる場合は、昔のほうを消す
            AdvGraphicObject oldObj;

            if (oldLayer.CurrentGraphics.TryGetValue(name, out oldObj))
            {
                oldScale    = oldObj.rectTransform.localScale;
                oldPosition = oldObj.rectTransform.localPosition;
                oldRotation = oldObj.rectTransform.localRotation;
                oldLayer.FadeOut(name, arg.GetSkippedFadeTime(manager.Engine));
            }

            //レイヤー上にデフォルトオブジェクトとして表示
            AdvGraphicObject obj = layer.DrawToDefault(name, arg);

            //ローカルTransform値を引き継ぐ処理
            if (!manager.ResetCharacterTransformOnChangeLayer)
            {
                obj.rectTransform.localScale    = oldScale;
                obj.rectTransform.localPosition = oldPosition;
                obj.rectTransform.localRotation = oldRotation;
            }
            return(obj);
        }
Esempio n. 5
0
 bool CheckFailedCrossFade(AdvGraphicOperaitonArg arg)
 {
     if (arg.Graphic.FileType != DefaultObject.LastResource.FileType)
     {
         return(true);
     }
     return(DefaultObject.TargetObject.CheckFailedCrossFade(arg.Graphic));
 }
Esempio n. 6
0
        //オブジェクトを描画する
        internal AdvGraphicObject Draw(string name, AdvGraphicOperaitonArg arg)
        {
            AdvGraphicObject obj = GetObjectCreateIfMissing(name, arg.Graphic);

            obj.Loader.LoadGraphic(arg.Graphic, () =>
            {
                obj.Draw(arg, arg.GetSkippedFadeTime(Engine));
            });
            return(obj);
        }
        void OnLoadGraphicComplete(AdvGraphicOperaitonArg arg)
        {
            float time = GetCurrentFadeTime(arg.FadeTime);

            if (!arg.IsNoPtattern || Graphic == null)
            {
                OnDraw(arg.Graphic, time);
                Graphic = arg.Graphic;
            }
            OnDrawArg(arg);
        }
Esempio n. 8
0
        void OnLoadGraphicComplete(AdvGraphicOperaitonArg arg)
        {
            float time = GetCurrentFadeTime(arg.FadeTime);

            if (!arg.IsNoPtattern || Graphic == null)
            {
                OnDraw(arg.Graphic, time);
                Graphic = arg.Graphic;
                EffectColors.OnValueChanged.Invoke(EffectColors);
            }
            OnDrawArg(arg);
        }
Esempio n. 9
0
 //デフォルトオブジェクトとして描画する
 internal AdvGraphicObject DrawToDefault(string name, AdvGraphicOperaitonArg arg)
 {
     //デフォルトオブジェクトの名前が違うなら、そのオブジェクトを消す
     if (DefaultObject != null && DefaultObject.name != name)
     {
         //フェードアウトする
         FadeOut(DefaultObject.name, arg.FadeTime);
     }
     defaultObject = GetObjectCreateIfMissing(name, arg);
     defaultObject.Draw(arg);
     return(defaultObject);
 }
		//デフォルトオブジェクトとして描画する
		internal AdvGraphicObject DrawToDefault(string name, AdvGraphicOperaitonArg arg)
		{
			//デフォルトオブジェクトの名前が違うなら、そのオブジェクトを消す
			if (DefaultObject != null && DefaultObject.name != name)
			{
				//フェードアウトする
				FadeOut(DefaultObject.name, arg.FadeTime);
			}
			defaultObject = GetObjectCreateIfMissing(name,arg);
			defaultObject.Draw(arg);
			return defaultObject;
		}
Esempio n. 11
0
        //デフォルトオブジェクトとして描画する
        internal AdvGraphicObject DrawToDefault(string name, AdvGraphicOperaitonArg arg)
        {
            bool    changeObject = false;
            bool    keepPosition = false;
            Vector3 oldPosition  = Vector3.zero;

            if (DefaultObject != null && DefaultObject.LastResource != null)
            {
                if (DefaultObject.name != name)
                {
                    //デフォルトオブジェクトの名前が違うなら、そのオブジェクトは変更
                    //場所も保持しない
                    changeObject = true;
                }
                else
                {
                    if (CheckFailedCrossFade(arg))
                    {
                        //クロスフェードに失敗するだけの場合
                        //場所は保持する
                        changeObject = true;
                        keepPosition = true;
                        oldPosition  = DefaultObject.transform.localPosition;
                    }
                    else
                    {
                        //クロスフェードできるならオブジェクトの変更を行わない
                        changeObject = false;
                    }
                }
            }
            if (changeObject)
            {
                //フェードアウトする
                if (SettingData.Type == AdvLayerSettingData.LayerType.Bg)
                {
                    DelayOut(DefaultObject.name, arg.GetSkippedFadeTime(Engine));
                }
                else
                {
                    FadeOut(DefaultObject.name, arg.GetSkippedFadeTime(Engine));
                }
            }
            DefaultObject = Draw(name, arg);

            //前の場所を保持する
            if (keepPosition && !Manager.IgnoreKeepPositionOnCrossFade)
            {
                DefaultObject.transform.localPosition = oldPosition;
            }
            return(DefaultObject);
        }
        //描画
        internal override void OnDrawArgCustom(AdvGraphicOperaitonArg arg)
        {
            string stateName = arg.Arg2;

            if (!string.IsNullOrEmpty(stateName))
            {
                Animator animator = currentObject.GetComponentInChildren <Animator>();
                animator.CrossFade(stateName, arg.FadeTime);
            }
            if (!arg.IsPostionArgs)
            {
            }
        }
Esempio n. 13
0
        public override void DoCommand(AdvEngine engine)
        {
            AdvGraphicOperaitonArg graphicOperaitonArg = new AdvGraphicOperaitonArg(this, this.graphic.Main, this.fadeTime);

            engine.GraphicManager.DrawObject(this.layerName, this.spriteName, graphicOperaitonArg);
            AdvGraphicObject obj2 = engine.GraphicManager.FindObject(this.spriteName);

            if (obj2 != null)
            {
                obj2.SetCommandPostion(this);
                obj2.TargetObject.SetCommandArg(this);
            }
        }
		//描画
		internal override void OnDrawArgCustom(AdvGraphicOperaitonArg arg)
		{
			string stateName = arg.Arg2;
			if(!string.IsNullOrEmpty(stateName))
			{
				Animator animator = currentObject.GetComponentInChildren<Animator>();
				animator.CrossFade(stateName, arg.FadeTime);
			}
			if (!arg.IsPostionArgs)
			{

			}
		}
Esempio n. 15
0
        public override void DoCommand(AdvEngine engine)
        {
            AdvGraphicOperaitonArg arg = new AdvGraphicOperaitonArg(this, this.graphic.Main, this.fadeTime);

            engine.SystemSaveData.GalleryData.AddCgLabel(this.label);
            engine.GraphicManager.IsEventMode = true;
            engine.GraphicManager.CharacterManager.FadeOutAll(arg.GetSkippedFadeTime(engine));
            engine.GraphicManager.BgManager.DrawToDefault(engine.GraphicManager.BgSpriteName, arg);
            AdvGraphicObject obj2 = engine.GraphicManager.BgManager.FindObject(engine.GraphicManager.BgSpriteName);

            if (obj2 != null)
            {
                obj2.SetCommandPostion(this);
                obj2.TargetObject.SetCommandArg(this);
            }
        }
 public AdvCommandParticle(StringGridRow row, AdvSettingDataManager dataManager) : base(row)
 {
     this.label = base.ParseCell <string>(AdvColumnName.Arg1);
     if (!dataManager.ParticleSetting.Dictionary.ContainsKey(this.label))
     {
         Debug.LogError(base.ToErrorString(this.label + " is not contained in file setting"));
     }
     this.graphic = dataManager.ParticleSetting.LabelToGraphic(this.label);
     base.AddLoadGraphic(this.graphic);
     this.layerName = base.ParseCellOptional <string>(AdvColumnName.Arg3, string.Empty);
     if (!string.IsNullOrEmpty(this.layerName) && !dataManager.LayerSetting.Contains(this.layerName))
     {
         Debug.LogError(base.ToErrorString(this.layerName + " is not contained in layer setting"));
     }
     this.graphicOperaitonArg = new AdvGraphicOperaitonArg(this, this.graphic, 0f);
 }
Esempio n. 17
0
 private bool CheckChangeDafaultObject(string name, AdvGraphicOperaitonArg arg)
 {
     if (this.DefaultObject == null)
     {
         return(false);
     }
     if (this.DefaultObject.get_name() != name)
     {
         return(true);
     }
     if (this.DefaultObject.LastResource == null)
     {
         return(false);
     }
     return((arg.Graphic.FileType != this.DefaultObject.LastResource.FileType) || this.DefaultObject.TargetObject.CheckFailedCrossFade(arg.Graphic));
 }
Esempio n. 18
0
 //デフォルトオブジェクトとして描画する
 internal AdvGraphicObject DrawToDefault(string name, AdvGraphicOperaitonArg arg)
 {
     if (CheckChangeDafaultObject(name, arg))
     {
         //フェードアウトする
         if (SettingData.Type == AdvLayerSettingData.LayerType.Bg)
         {
             DelayOut(DefaultObject.name, arg.GetSkippedFadeTime(Engine));
         }
         else
         {
             FadeOut(DefaultObject.name, arg.GetSkippedFadeTime(Engine));
         }
     }
     DefaultObject = Draw(name, arg);
     return(DefaultObject);
 }
 //描画時の引数を適用
 internal virtual void OnDrawArg(AdvGraphicOperaitonArg arg)
 {
     if (arg.IsPostionArgs)
     {
         Vector3 pos = transform.localPosition;
         if (arg.X != null)
         {
             pos.x = (float)arg.X / PixelsToUnits;
         }
         if (arg.Y != null)
         {
             pos.y = (float)arg.Y / PixelsToUnits;
         }
         transform.localPosition = pos;
     }
     OnDrawArgCustom(arg);
 }
Esempio n. 20
0
        public override void DoCommand(AdvEngine engine)
        {
            //グラフィック表示処理を作成
            AdvGraphicOperaitonArg graphicOperaitonArg = new AdvGraphicOperaitonArg(this, graphic.Main, fadeTime);

            //表示する
            engine.GraphicManager.DrawObject(layerName, spriteName, graphicOperaitonArg);

            //基本以外のコマンド引数の適用
            AdvGraphicObject obj = engine.GraphicManager.FindObject(spriteName);

            if (obj != null)
            {
                //位置の適用(Arg4とArg5)
                obj.SetCommandPostion(this);
                //その他の適用(モーション名など)
                obj.TargetObject.SetCommandArg(this);
            }
        }
		//指定の名前のオブジェクトを取得、なければ作成
		internal AdvGraphicObject GetObjectCreateIfMissing(string name, AdvGraphicOperaitonArg arg)
		{
			AdvGraphicObject obj;
			if (currentGraphics.TryGetValue(name, out obj))
			{
				if ( obj.Graphic.FileType != arg.Graphic.FileType)
				{
					//違うファイルタイプなので、前のはいったん消す
					FadeOut( name, arg.FadeTime);
					//改めて作成
					obj = AddObject(name, arg.Graphic, false);
				}
			}
			else
			{
				//まだ作成されてないから作る
				obj = AddObject(name, arg.Graphic, false);
			}
			return obj;
		}
Esempio n. 22
0
        public override void DoCommand(AdvEngine engine)
        {
            AdvGraphicOperaitonArg arg = new AdvGraphicOperaitonArg(this, this.graphic.Main, this.fadeTime);

            engine.GraphicManager.IsEventMode = false;
            if (string.IsNullOrEmpty(this.layerName))
            {
                engine.GraphicManager.BgManager.DrawToDefault(engine.GraphicManager.BgSpriteName, arg);
            }
            else
            {
                engine.GraphicManager.BgManager.Draw(this.layerName, engine.GraphicManager.BgSpriteName, arg);
            }
            AdvGraphicObject obj2 = engine.GraphicManager.BgManager.FindObject(engine.GraphicManager.BgSpriteName);

            if (obj2 != null)
            {
                obj2.SetCommandPostion(this);
                obj2.TargetObject.SetCommandArg(this);
            }
        }
Esempio n. 23
0
        //指定の名前のオブジェクトを取得、なければ作成
        internal AdvGraphicObject GetObjectCreateIfMissing(string name, AdvGraphicOperaitonArg arg)
        {
            AdvGraphicObject obj;

            if (currentGraphics.TryGetValue(name, out obj))
            {
                if (obj.Graphic.FileType != arg.Graphic.FileType)
                {
                    //違うファイルタイプなので、前のはいったん消す
                    FadeOut(name, arg.FadeTime);
                    //改めて作成
                    obj = AddObject(name, arg.Graphic, false);
                }
            }
            else
            {
                //まだ作成されてないから作る
                obj = AddObject(name, arg.Graphic, false);
            }
            return(obj);
        }
Esempio n. 24
0
        bool CheckChangeDafaultObject(string name, AdvGraphicOperaitonArg arg)
        {
            if (DefaultObject == null)
            {
                return(false);
            }
            //デフォルトオブジェクトの名前が違うなら、そのオブジェクトは変更
            if (DefaultObject.name != name)
            {
                return(true);
            }

            if (DefaultObject.LastResource == null)
            {
                return(false);
            }
            if (arg.Graphic.FileType != DefaultObject.LastResource.FileType)
            {
                return(true);
            }
            return(DefaultObject.TargetObject.CheckFailedCrossFade(arg.Graphic));
        }
		//キャラクターオブジェクトとして、特殊な表示をする
		internal AdvGraphicObject DrawCharacter(string layerName, string name, AdvGraphicOperaitonArg arg)
		{
			//既に同名のグラフィックがあるなら、そのレイヤーを取得
			AdvGraphicLayer oldLayer = layers.Find((item) => (item.IsEqualDefaultGraphicName(name)));

			//レイヤー名の指定がある場合、そのレイヤーを探す
			AdvGraphicLayer layer = layers.Find((item) => (item.SettingData.Name == layerName));
			if (layer == null)
			{
				//レイヤーがない場合は、旧レイヤーかデフォルトレイヤーを使う
				layer = (oldLayer == null) ? defaultLayer : oldLayer;
			}

			//レイヤーが変わる場合は、昔のほうを消す
			if (oldLayer != layer && oldLayer != null)
			{
				oldLayer.FadeOut(name, arg.FadeTime );
			}

			//レイヤー上にデフォルトオブジェクトとして表示
			return layer.DrawToDefault(name, arg);
		}
Esempio n. 26
0
        public override void DoCommand(AdvEngine engine)
        {
            AdvGraphicOperaitonArg graphicOperaitonArg = new AdvGraphicOperaitonArg(this, graphic.Main, fadeTime);

            engine.SystemSaveData.GalleryData.AddCgLabel(label);
            //表示する
            engine.GraphicManager.IsEventMode = true;
            //キャラクターは非表示にする
            engine.GraphicManager.CharacterManager.FadeOutAll(graphicOperaitonArg.GetSkippedFadeTime(engine));
            //表示する
            engine.GraphicManager.BgManager.DrawToDefault(engine.GraphicManager.BgSpriteName, graphicOperaitonArg);

            //基本以外のコマンド引数の適用
            AdvGraphicObject obj = engine.GraphicManager.BgManager.FindObject(engine.GraphicManager.BgSpriteName);

            if (obj != null)
            {
                //位置の適用(Arg4とArg5)
                obj.SetCommandPostion(this);
                //その他の適用(モーション名など)
                obj.TargetObject.SetCommandArg(this);
            }
        }
Esempio n. 27
0
        //キャラクターオブジェクトとして、特殊な表示をする
        internal AdvGraphicObject DrawCharacter(string layerName, string name, AdvGraphicOperaitonArg arg)
        {
            //既に同名のグラフィックがあるなら、そのレイヤーを取得
            AdvGraphicLayer oldLayer = layers.Find((item) => (item.IsEqualDefaultGraphicName(name)));

            //レイヤー名の指定がある場合、そのレイヤーを探す
            AdvGraphicLayer layer = layers.Find((item) => (item.SettingData.Name == layerName));

            if (layer == null)
            {
                //レイヤーがない場合は、旧レイヤーかデフォルトレイヤーを使う
                layer = (oldLayer == null) ? DefaultLayer : oldLayer;
            }

            //レイヤーが変わる場合は、昔のほうを消す
            if (oldLayer != layer && oldLayer != null)
            {
                oldLayer.FadeOut(name, arg.GetSkippedFadeTime(manager.Engine));
            }

            //レイヤー上にデフォルトオブジェクトとして表示
            return(layer.DrawToDefault(name, arg));
        }
 internal AdvGraphicObject DrawCharacter(string layerName, string name, AdvGraphicOperaitonArg arg)
 {
 internal AdvGraphicObject Draw(string layerName, string name, AdvGraphicOperaitonArg arg)
 {
     return(this.FindLayerOrDefault(layerName).Draw(name, arg));
 }
Esempio n. 30
0
 //表示する
 internal void DrawObject(string layerName, string label, AdvGraphicOperaitonArg graphicOperaitonArg)
 {
     FindLayer(layerName).Draw(label, graphicOperaitonArg);
 }
		//オブジェクトを描画する
		internal AdvGraphicObject Draw(string name, AdvGraphicOperaitonArg arg )
		{
			AdvGraphicObject obj = GetObjectCreateIfMissing(name, arg);
			obj.Draw(arg);
			return obj;
		}
Esempio n. 32
0
 //デフォルトレイヤーのデフォルトオブジェクトとして表示する
 public virtual AdvGraphicObject DrawToDefault(string name, AdvGraphicOperaitonArg arg)
 {
     return(DefaultLayer.DrawToDefault(name, arg));
 }
Esempio n. 33
0
 //表示する
 public virtual AdvGraphicObject Draw(string layerName, string name, AdvGraphicOperaitonArg arg)
 {
     return(FindLayerOrDefault(layerName).Draw(name, arg));
 }
 //描画時の引数を適用をさらにカスタム
 internal virtual void OnDrawArgCustom(AdvGraphicOperaitonArg arg)
 {
 }
		//表示する
		internal AdvGraphicObject Draw(string layerName, string name, AdvGraphicOperaitonArg arg)
		{
			return FindLayerOrDefault(layerName).Draw(name, arg);
		}
		//デフォルトレイヤーのデフォルトオブジェクトとして表示する
		internal AdvGraphicObject DrawToDefault(string name, AdvGraphicOperaitonArg arg)
		{
			return defaultLayer.DrawToDefault(name, arg);
		}
 internal virtual void Draw(AdvGraphicOperaitonArg arg)
 {
     StartCoroutine(CoLoadGraphic(arg.Graphic, () => OnLoadGraphicComplete(arg)));
 }
		/// <summary>
		/// デフォルト描画
		/// </summary>
		public void OnDrawDefault(AdvGraphicObject advGraphicObject, AdvGraphicOperaitonArg arg) { }