Beispiel #1
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);
        }
Beispiel #2
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));
        }
Beispiel #3
0
 //デフォルトレイヤーのデフォルトオブジェクトとして表示する
 public virtual AdvGraphicObject DrawToDefault(string name, AdvGraphicOperaitonArg arg)
 {
     return(DefaultLayer.DrawToDefault(name, arg));
 }
Beispiel #4
0
 //デフォルトレイヤーのデフォルトオブジェクトとして表示する
 internal AdvGraphicObject DrawToDefault(string name, AdvGraphicOperaitonArg arg)
 {
     return(defaultLayer.DrawToDefault(name, arg));
 }