//キャラクターのパターン変更をキーフレームアニメーションから呼ぶためのメソッド public virtual void ChangePatternAnimation(string paraString) { if (LastResource == null) { Debug.LogError("ChangePatternAnimationError LastResource is null"); return; } AdvCharacterSettingData characterData = LastResource.SettingData as AdvCharacterSettingData; if (characterData == null) { Debug.LogError("ChangePatternAnimationError characterData is null"); return; } string[] after = paraString.Split(new char[] { ',' }); float fadeTime; if (after.Length <= 0) { Debug.LogError("ChangePatternAnimationError argString = " + paraString); return; } else if (after.Length == 1) { fadeTime = 0; } else { if (!WrapperUnityVersion.TryParseFloatGlobal(after[1], out fadeTime)) { Debug.LogError("ChangePatternAnimationError " + after[1] + " is not float string"); return; } } //0秒だと、DestroyImmediateが呼ばれてしまうが //AnimationClip中でそれが許可されていないため fadeTime = Mathf.Max(fadeTime, 0.001f); string pattern = after[0]; AdvCharacterSettingData newPatternData = Engine.DataManager.SettingDataManager.CharacterSetting.GetCharacterData(characterData.Name, pattern); if (newPatternData == null) { Debug.LogError("ChangePatternAnimationError pattern is not pattern name"); return; } //Graphicのロードは考慮しない var graphic = newPatternData.Graphic.Main; //描画 DrawSub(graphic, Engine.Page.ToSkippedTime(fadeTime)); //モーション変更 if (!string.IsNullOrEmpty(graphic.AnimationState)) { TargetObject.ChangeAnimationState(graphic.AnimationState, fadeTime); } }
//ロードの必要があるファイルを追加 public void AddLoadGraphic(AdvGraphicInfo graphic) { if (graphic == null) return; if (IsEntityType) return; AddLoadFileSub(graphic.File); //キャラクターの場合はアイコンファイルもロード if (graphic.SettingData is AdvCharacterSettingData) { AdvCharacterSettingData settingData = graphic.SettingData as AdvCharacterSettingData; if (settingData.Icon != null && settingData.Icon.File !=null) { AddLoadFileSub(settingData.Icon.File); } } }
public bool CheckType(AdvGraphicObjectType type) { if (LastResource == null) { return(false); } switch (type) { case AdvGraphicObjectType.Character: { AdvCharacterSettingData settingData = LastResource.SettingData as AdvCharacterSettingData; return(settingData != null); } case AdvGraphicObjectType.Bg: { AdvTextureSettingData settingData = LastResource.SettingData as AdvTextureSettingData; if (settingData == null) { return(false); } return(settingData.TextureType == AdvTextureSettingData.Type.Bg || settingData.TextureType == AdvTextureSettingData.Type.Sprite); } default: case AdvGraphicObjectType.Sprite: { AdvTextureSettingData settingData = LastResource.SettingData as AdvTextureSettingData; if (settingData == null) { return(false); } return(settingData.TextureType == AdvTextureSettingData.Type.Sprite); } } }
//テキストに変更があった場合 protected virtual bool TyrSetIcon(AdvPage page) { this.targetObject = null; AdvCharacterInfo info = page.CharacterInfo; if (info == null || info.Graphic == null || info.Graphic.Main == null) { return(false); } AdvGraphicInfo graphic = info.Graphic.Main; AdvCharacterSettingData settingData = graphic.SettingData as AdvCharacterSettingData; if (settingData == null) { return(false); } AdvCharacterSettingData.IconInfo iconInfo = settingData.Icon; if (iconInfo.IconType == AdvCharacterSettingData.IconInfo.Type.None) { return(false); } this.targetObject = Engine.GraphicManager.FindObject(info.Label); switch (iconInfo.IconType) { case AdvCharacterSettingData.IconInfo.Type.IconImage: SetIconImage(iconInfo.File); return(true); case AdvCharacterSettingData.IconInfo.Type.DicingPattern: SetIconDicingPattern(iconInfo.File, iconInfo.IconSubFileName); return(true); case AdvCharacterSettingData.IconInfo.Type.RectImage: IconGraphicType type = ParseIconGraphicType(graphic, info.Label); switch (type) { case IconGraphicType.Default: SetIconRectImage(graphic, iconInfo.IconRect); return(true); case IconGraphicType.Dicing: SetIconDicing(graphic, iconInfo.IconRect); return(true); case IconGraphicType.RenderTexture: SetIconRenderTexture(iconInfo.IconRect); return(true); case IconGraphicType.NotSupport: default: return(false); } case AdvCharacterSettingData.IconInfo.Type.None: default: return(false); } }
public static AdvCharacterInfo Create(AdvCommand command, AdvSettingDataManager dataManager) { if (command.IsEmptyCell(AdvColumnName.Arg1)) { return(null); } //名前 string nameText = command.ParseCell <string>(AdvColumnName.Arg1); string characterLabel = nameText; //第二引数を解析 //基本的にはパターン名だが //キャラクターラベルの指定タグがあったり、非表示タグする bool isHide = false; string erroMsg = ""; string pattern = ParserUtil.ParseTagTextToString( command.ParseCellOptional <string>(AdvColumnName.Arg2, ""), (tagName, arg) => { bool failed = false; switch (tagName) { case "Off": //非表示タグ isHide = true; break; case "Character": //キャラクターラベルの指定タグ characterLabel = arg; break; default: erroMsg = "Unkownn Tag <" + tagName + ">"; failed = true; break; } return(!failed); }); if (!string.IsNullOrEmpty(erroMsg)) { Debug.LogError(erroMsg); return(null); } if (!dataManager.CharacterSetting.Contains(characterLabel)) { //そもそもキャラ表示がない場合、名前表示のみになる return(new AdvCharacterInfo(characterLabel, nameText, pattern, isHide, null)); } AdvCharacterSettingData data = dataManager.CharacterSetting.GetCharacterData(characterLabel, pattern); //キャラの表示情報の記述エラー if (data == null) { Debug.LogError(command.ToErrorString(characterLabel + ", " + pattern + " is not contained in Chactecter Sheet")); return(null); } //名前テキストをキャラクターシートの定義に変更 if (!string.IsNullOrEmpty(data.NameText) && nameText == characterLabel) { nameText = data.NameText; } return(new AdvCharacterInfo(characterLabel, nameText, pattern, isHide, data.Graphic)); }