//キャラクターオブジェクトとして、特殊な表示をする 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); }
//キャラクターオブジェクトとして、特殊な表示をする 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)); }
//デフォルトレイヤーのデフォルトオブジェクトとして表示する public virtual AdvGraphicObject DrawToDefault(string name, AdvGraphicOperaitonArg arg) { return(DefaultLayer.DrawToDefault(name, arg)); }
//デフォルトレイヤーのデフォルトオブジェクトとして表示する internal AdvGraphicObject DrawToDefault(string name, AdvGraphicOperaitonArg arg) { return(defaultLayer.DrawToDefault(name, arg)); }