//オブジェクトを描画する 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); }
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); } }
//キャラクターオブジェクトとして、特殊な表示をする 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); }
bool CheckFailedCrossFade(AdvGraphicOperaitonArg arg) { if (arg.Graphic.FileType != DefaultObject.LastResource.FileType) { return(true); } return(DefaultObject.TargetObject.CheckFailedCrossFade(arg.Graphic)); }
//オブジェクトを描画する 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); }
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); }
//デフォルトオブジェクトとして描画する 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; }
//デフォルトオブジェクトとして描画する 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) { } }
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) { } }
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); }
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)); }
//デフォルトオブジェクトとして描画する 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); }
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; }
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); } }
//指定の名前のオブジェクトを取得、なければ作成 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); }
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); }
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); } }
//キャラクターオブジェクトとして、特殊な表示をする 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)); }
//表示する 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; }
//デフォルトレイヤーのデフォルトオブジェクトとして表示する public virtual AdvGraphicObject DrawToDefault(string name, AdvGraphicOperaitonArg arg) { return(DefaultLayer.DrawToDefault(name, arg)); }
//表示する 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) { }