void Start() { /* Initialize WorkArea */ ValuePrevious = int.MaxValue; FlagPaddingZeroPrevious = FlagPaddingZero; /* Initialize Animation-Datas */ if (null != InstanceRoot) { /* Start Animation */ int IndexAnimation = InstanceRoot.IndexGetAnimation("Digit08"); if (0 <= IndexAnimation) { InstanceRoot.AnimationPlay(IndexAnimation, 1); InstanceRoot.AnimationStop(); } /* Get Digit-Parts */ for (int i = 0; i < (int)Constant.DIGIT_MAX; i++) { IDPartsDigit[i] = InstanceRoot.IDGetParts(NameParts[i]); } /* Get Characters' Cell Index */ Library_SpriteStudio.Data.CellMap InstanceDataCellMap = InstanceRoot.DataCellMap.DataGetCellMap(0); for (int i = 0; i < (int)KindCharacter.TERMINATOR; i++) { IndexCell[i] = InstanceDataCellMap.IndexGetCell(NameCells[i]); } } }
// Update is called once per frame void Update() { //spritestudioルートクラスの取得. //spriteStudioRootを使用してアニメーションの制御を行います. if (null == ScriptRoot) { //初期化. ScriptRoot = Library_SpriteStudio.Utility.Parts.RootGetChild(gameObject); //アニメーション終了コールバックを設定. ScriptRoot.FunctionPlayEnd = AnimEnd; //アニメーション再生 ScriptRoot.AnimationPlay((int)AnimationType.STANCE, 1, 0, 1.0f); } //入力によってモーションを変更する if (Input.GetKey("z")) { if (press == false) { motion = AnimationType.ATTACK1; ScriptRoot.AnimationPlay((int)AnimationType.ATTACK1, 1, 0, 1.0f); } press = true; } else if (Input.GetKey("x")) { if (press == false) { motion = AnimationType.ATTACK2; ScriptRoot.AnimationPlay((int)AnimationType.ATTACK2, 1, 0, 1.0f); } press = true; } else if (Input.GetKey("c")) { if (press == false) { GameObject go = null; go = Instantiate(Resources.Load("Prefabs/hiteffect/effect_comipo/effect_comipo01_Control"), new Vector3(-400, 0, 0), Quaternion.identity) as GameObject; go.transform.localScale = new Vector3(2.5f, 2.5f, 1.0f); } press = true; } else { press = false; } }
public void Play(Script_SpriteStudio_Root scriptRoot, int timesPlay = 1, bool isHideEnd = false) { scriptRoot.FlagHideForce = false; scriptRoot.AnimationPlay(-1, timesPlay); if (isHideEnd) { //ループ終了チェック StartCoroutine(CheckAnimationEnd(scriptRoot)); } }
void Start() { int CountDigit = (int)Constant.DIGIT_MAX; /* Initialize WorkArea */ for (int i = 0; i < CountDigit; i++) { WorkAreaPartsDigit[i].CleanUp(); } ValuePrevious = int.MaxValue; FlagProportionalPrevious = FlagProportional; FlagPaddingZeroPrevious = FlagPaddingZero; /* Initialize Animation-Datas */ if (null != InstanceRoot) { /* Start Animation */ int IndexAnimation = InstanceRoot.IndexGetAnimation("Digit08"); if (0 <= IndexAnimation) { InstanceRoot.AnimationPlay(IndexAnimation, 1); InstanceRoot.AnimationStop(); } /* Get Digit-Parts */ Library_SpriteStudio.Control.Parts InstancePartsControl; int IDParts; for (int i = 0; i < CountDigit; i++) { IDParts = InstanceRoot.IDGetParts(NameParts[i]); WorkAreaPartsDigit[i].ID = IDParts; if (0 <= IDParts) { InstancePartsControl = InstanceRoot.ControlGetParts(IDParts); if (null != InstancePartsControl) { WorkAreaPartsDigit[i].InstanceGameObject = InstancePartsControl.InstanceGameObject; } } } /* Initialize Material-Table & Cell-Tables for Exchange (to Font-Change) */ FontInitialize(); /* Set Font */ IndexFontPrevious = IndexFont; FontSet(IndexFont); /* Get Color-Blend WorkArea */ InstanceColorBlendOverwrite = InstanceRoot.DataGetColorBlendOverwrite(); } }
void Start() { /* Initialize Animation-Datas */ if (null != InstanceRoot) { /* Start Animation */ int IndexAnimation = InstanceRoot.IndexGetAnimation("Normal"); if (0 <= IndexAnimation) { InstanceRoot.AnimationPlay(IndexAnimation, 0); /* Loop, Infinite */ } /* Get Parts-ID */ IDPartsAffectRate = InstanceRoot.IDGetParts(NamePartsAffectRate); } }
// Update is called once per frame void Update() { //spritestudioルートクラスの取得. //spriteStudioRootを使用してアニメーションの制御を行います. if (null == ScriptRoot) { //初期化. ScriptRoot = Library_SpriteStudio.Utility.Parts.RootGetChild(gameObject); //アニメーション再生 ScriptRoot.AnimationPlay(0); //名前からインスタンスパーツのIDを取得する IDParts = ScriptRoot.IDGetParts("face_base"); } count++; if ((count % 180) == 0) { string NameAnimation = ""; //インスタンスパーツが参照しているアニメーションを変更します //参照アニメーション(ssae)内でモーションを切り替えます。 switch (type) { case 0: NameAnimation = "face2"; type++; break; case 1: NameAnimation = "face3"; type++; break; case 2: NameAnimation = "face1"; type = 0; break; default: break; } //参照アニメの切り替えはアニメーションを停止して行ってください。 ScriptRoot.AnimationStop(); ScriptRoot.InstanceChange(IDParts, null, NameAnimation); ScriptRoot.AnimationPlay(); } }
// Update is called once per frame void Update() { //spritestudioルートクラスの取得 //spriteStudioRootを使用してアニメーションの制御を行います。 if (null == ScriptRoot) { //初期化. ScriptRoot = Library_SpriteStudio.Utility.Parts.RootGetChild(gameObject); //配置されているviweを取得し設定する. var go = GameObject.Find("View (Manager-Draw)"); ScriptRoot.InstanceManagerDraw = go.GetComponent <Script_SpriteStudio_ManagerDraw>(); //アニメーション終了コールバックを設定. ScriptRoot.FunctionPlayEnd = AnimEnd; //アニメーション再生 ScriptRoot.AnimationPlay(0, 1, 0, 1.0f); } }
void Update() { if (null == ScriptRoot) { //初期化. ScriptRoot = Library_SpriteStudio.Utility.Parts.RootGetChild(animePlayer); //アニメーション終了コールバックを設定. ScriptRoot.FunctionPlayEnd = AnimEnd; motion = AnimationType.break_idle; //アニメーション再生 ScriptRoot.AnimationPlay((int)AnimationType.break_idle, 0, 0, 1.0f); } if (isBreak) { moveFlag = false; if (GimmickManager.Instance.roboGo && GimmickManager.Instance.tapPositionUP == 1) { GimmickManager.Instance.roboAnima = true; motion = AnimationType.respair; ScriptRoot.AnimationPlay((int)AnimationType.respair, 1, 0, 1.0f); } } else if (isBreak == false) { if (GimmickManager.Instance.roboGo == false) { moveFlag = true; } if (GimmickManager.Instance.roboGo && GimmickManager.Instance.tapPositionDown == 1) { GimmickManager.Instance.roboAnima = true; moveFlag = false; motion = AnimationType.break_; ScriptRoot.AnimationPlay((int)AnimationType.break_, 1, 0, 1.0f); } } if (moveFlag) { if (isPlayerBack == false) { this.transform.position += transform.TransformDirection(Vector3.forward) * 0.1f; } if (PlayerMove_C.Instance.playerDirectionRight) { if (this.transform.position.x <= (PlayerMove_C.Instance.transform.position.x - 1.0f) && this.transform.position.x >= (PlayerMove_C.Instance.transform.position.x - 2.0f)) { isPlayerBack = true; this.transform.rotation = Quaternion.Euler(0, 90, 0); isLeft = false; isRight = true; } else { isPlayerBack = false; } } else if (PlayerMove_C.Instance.playerDirectionLeft) { if (this.transform.position.x >= (PlayerMove_C.Instance.transform.position.x + 1.0f) && this.transform.position.x <= (PlayerMove_C.Instance.transform.position.x + 2.0f)) { isPlayerBack = true; this.transform.rotation = Quaternion.Euler(0, -90, 0); isRight = false; isLeft = true; } else { isPlayerBack = false; } } if (GimmickManager.Instance.roboGo) { moveFlag = false; } } }
void Update() { if (null == ScriptRoot) { //初期化. ScriptRoot = Library_SpriteStudio.Utility.Parts.RootGetChild(animePlayer); //アニメーション終了コールバックを設定. ScriptRoot.FunctionPlayEnd = AnimEnd; motion = AnimationType.idle; //アニメーション再生 ScriptRoot.AnimationPlay((int)AnimationType.idle, 0, 0, 1.0f); } CheckGroundeed(); //---------------------------------------------------------------------- //---------------------------------------------------------------------- // 画面をタップしてる間 if (Input.GetMouseButton(0)) { tapPosition = Input.mousePosition; // タップいている場所を代入 worldPos = Camera.main.ScreenToWorldPoint(tapPosition) + new Vector3(0, 0, 1); // ワールド座標に変化 popUpTapEffect.transform.position = worldPos; // タップフェクトをタップしているところに常に表示 } //---------------------------------------------------------------------- //---------------------------------------------------------------------- // 画面から指を話したら if (Input.GetMouseButtonUp(0)) { tapFlag = 0; // タップが離れたらフラグを折る DestroyTapEffects(); // タップエフェクトを消去 tapCount = 0; // ギミックをタップするのを離れたら動けるようにする if (obj.tag == "Gimmick") { gimmickFlag = 0; moveFlag = true; } obj = nullObj; // 指を話した時にアニメーションがrunならアニメーションをidleに変える if (motion == AnimationType.run) { motion = AnimationType.idle; ScriptRoot.AnimationPlay((int)AnimationType.idle, 0, 0, 1.0f); } } if (motion == AnimationType.idle) { idleCount += 0.01f; } else { idleCount = 0; } if (motion == AnimationType.idle && idleCount > 3.0f) { if (playerDirectionLeft) { motion = AnimationType.idle_Q_L; ScriptRoot.AnimationPlay((int)AnimationType.idle_Q_L, 1, 0, 1.0f); } else if (playerDirectionRight) { motion = AnimationType.idle_Q_R; ScriptRoot.AnimationPlay((int)AnimationType.idle_Q_R, 1, 0, 1.0f); } } //---------------------------------------------------------------------- if (tapFlag == 1) { if (moveFlag) { // アニメーションをrunに切り替え if (motion != AnimationType.run) { motion = AnimationType.run; ScriptRoot.AnimationPlay((int)AnimationType.run, 0, 0, 1f); } //----------------------------------------------------------------------------------------------- // タップした時の移動処理 // 画面中央より左を押した時 if (0 < tapPosition.x && tapPosition.x < middle) { rotateCountLeft = 0; // 左の回転カウントを初期化 playerDirectionRight = false; // 右向きフラグを折る playerDirectionLeft = true; // 左向きフラグを立てる // 向いてる方向に動く transform.position += transform.TransformDirection(Vector3.forward) * moveSpeed; } // 画面中央より右を押した時 else if (middle < tapPosition.x) { rotateCountRight = 0; // 右の回転カウントを初期化 playerDirectionLeft = false; // 左向きフラグを折る playerDirectionRight = true; // 右向きフラグを立てる // 向いてる方向に動く transform.position += transform.TransformDirection(Vector3.forward) * moveSpeed; } // 中央部分かつプレイヤーを押した時 if (installationFlag && obj.tag == "Player") { jumpFlag = 1; // ジャンプフラグを立て } //----------------------------------------------------------------------------------------------- } //-------------------------------------------------------------------------------------- // プレイヤーのジャンプ処理 if (jumpFlag == 1) { motion = AnimationType.jump_1; ScriptRoot.AnimationPlay((int)AnimationType.jump_1, 1, 0, 1f); moveFlag = false; // ムーブフラグを折る installationFlag = false; // 地面から離れたら設置フラグを折る } //-------------------------------------------------------------------------------------- } //-------------------------------------------------------------------- // プレイヤーの方向転換処理 if (playerDirectionRight) { if (rotateCountLeft < 1) { transform.Rotate(new Vector3(0, 180, 0)); rotateCountLeft++; // 回った後にカウントアップ } } else if (playerDirectionLeft) { if (rotateCountRight < 1) { transform.Rotate(new Vector3(0, 180, 0)); rotateCountRight++; // 回った後にカウントアップ } } //-------------------------------------------------------------------- //------------------------------------------------------------------------- // それぞれのギミックを発動させたらそれ用のアニメーションを再生させるフラグを立てる if (GimmickManager_D.Instance.houseAnima) { gimmickAnimationFlag = true; } else { gimmickAnimationFlag = false; } // ギミッキを発動させた時のアニメーション切り替え if (gimmickAnimationFlag) { switch (motion) { case AnimationType.idle: case AnimationType.idle_Q_R: case AnimationType.idle_Q_L: case AnimationType.run: motion = AnimationType.up_1; ScriptRoot.AnimationPlay((int)AnimationType.up_1, 1, 0, 1f); if (seCount == 0) { seCount++; audioSource.mute = false; audioSource.PlayOneShot(gimmickSe); } break; default: break; } } if (gimmickAnimationFlag) { moveFlag = false; } if (gimmickAnimationFlag == false) { switch (motion) { case AnimationType.up_2: moveFlag = true; motion = AnimationType.up_3; ScriptRoot.AnimationPlay((int)AnimationType.up_3, 1, 0, 1.0f); break; default: break; } } }
private void SetAnimation(string name) { var index = sprite.IndexGetAnimation(name); sprite.AnimationPlay(index); }
public override void OnInspectorGUI() { Script_SpriteStudio_Root Data = (Script_SpriteStudio_Root)target; EditorGUILayout.LabelField("[SpriteStudio (Parts-)Root]"); int LevelIndent = 0; EditorGUILayout.Space(); Data.InstanceManagerDraw = (Script_SpriteStudio_ManagerDraw)(EditorGUILayout.ObjectField("View (Manager-Draw)", Data.InstanceManagerDraw, typeof(Script_SpriteStudio_ManagerDraw), true)); EditorGUILayout.Space(); FoldOutStaticDatas = EditorGUILayout.Foldout(FoldOutStaticDatas, "Static Datas"); if (true == FoldOutStaticDatas) { EditorGUI.indentLevel = LevelIndent + 1; Data.DataCellMap = (Script_SpriteStudio_DataCell)(EditorGUILayout.ObjectField("Data:CellMap", Data.DataCellMap, typeof(Script_SpriteStudio_DataCell), true)); Data.DataAnimation = (Script_SpriteStudio_DataAnimation)(EditorGUILayout.ObjectField("Data:Animation", Data.DataAnimation, typeof(Script_SpriteStudio_DataAnimation), true)); EditorGUI.indentLevel = LevelIndent; } EditorGUILayout.Space(); FoldOutMaterialTable = EditorGUILayout.Foldout(FoldOutMaterialTable, "Based-Material Table"); if (true == FoldOutMaterialTable) { EditorGUI.indentLevel = LevelIndent + 1; if (null != Data.TableMaterial) { int CountShader = (int)(Library_SpriteStudio.KindColorOperation.TERMINATOR - 1); int Count = Data.TableMaterial.Length / CountShader; int MaterialNoTop = 0; Library_SpriteStudio.KindColorOperation MaterialTableNo = 0; string NameField = ""; for (int i = 0; i < Count; i++) { MaterialNoTop = i * (int)(Library_SpriteStudio.KindColorOperation.TERMINATOR - 1); EditorGUILayout.LabelField("Material No [" + MaterialNoTop + "-" + ((MaterialNoTop + CountShader) - 1) + "]: Texture-" + i ); EditorGUI.indentLevel = LevelIndent + 2; for (int j = 0; j < CountShader; j++) { MaterialTableNo = (Library_SpriteStudio.KindColorOperation)(j + 1); NameField = "Shader [" + MaterialTableNo.ToString() + "]"; Data.TableMaterial[MaterialNoTop + j] = (Material)(EditorGUILayout.ObjectField(NameField, Data.TableMaterial[MaterialNoTop + j], typeof(Material), false)); } EditorGUILayout.Space(); EditorGUI.indentLevel = LevelIndent + 1; } } EditorGUI.indentLevel = LevelIndent; } EditorGUILayout.Space(); FoldOutPlayInformation = EditorGUILayout.Foldout(FoldOutPlayInformation, "Initial/Preview Play Setting"); if (true == FoldOutPlayInformation) { EditorGUI.indentLevel = LevelIndent + 1; // if((null != Data.DataAnimation) && (null != Data.DataCellMap)) if (null != Data.DataAnimation) { bool FlagUpdate = false; Data.FlagHideForce = EditorGUILayout.Toggle("Hide Force", Data.FlagHideForce); EditorGUILayout.Space(); Data.FlagAnimationStopInitial = EditorGUILayout.Toggle("Initial Stopping Animation", Data.FlagAnimationStopInitial); EditorGUILayout.Space(); /* "Animation" Select */ Library_SpriteStudio.Data.Animation DataAnimationBody = null; int CountAnimation = Data.DataAnimation.CountGetAnimation(); string[] ListNameAnimation = new string[CountAnimation]; for (int i = 0; i < CountAnimation; i++) { DataAnimationBody = Data.DataAnimation.DataGetAnimation(i); if (null != DataAnimationBody) { ListNameAnimation[i] = DataAnimationBody.Name; } else { ListNameAnimation[i] = "(Data Missing)"; } } int IndexAnimationCursor = Data.IndexAnimation; if ((0 > IndexAnimationCursor) || (Data.DataAnimation.ListDataAnimation.Length <= IndexAnimationCursor)) { IndexAnimationCursor = 0; FlagUpdate |= true; } int IndexNow = EditorGUILayout.Popup("Animation Name", IndexAnimationCursor, ListNameAnimation); if (IndexNow != IndexAnimationCursor) { IndexAnimationCursor = IndexNow; Data.IndexAnimation = IndexAnimationCursor; FlagUpdate |= true; } DataAnimationBody = Data.DataAnimation.DataGetAnimation(IndexAnimationCursor); int FrameNoLast = DataAnimationBody.CountFrame - 1; int CountLabel = DataAnimationBody.CountGetLabel(); EditorGUILayout.LabelField("- Frame Count: [" + DataAnimationBody.CountFrame.ToString() + "] (0 - " + FrameNoLast.ToString() + ")"); EditorGUILayout.Space(); /* "Label" Selector Create (for Start-Label / End-Label) */ string[] ListNameLabel = null; int[] ListIndexLabel = null; int[] ListFrameNoLabel = null; if (0 < CountLabel) { /* Has Labels */ CountLabel += 2; /* +2 ... "_start" and "_end" (Reserved-Labels) */ ListNameLabel = new string[CountLabel]; ListIndexLabel = new int[CountLabel]; ListFrameNoLabel = new int[CountLabel]; Library_SpriteStudio.Data.Label DataLabelBody = null; for (int j = 1; j < (CountLabel - 1); j++) { DataLabelBody = DataAnimationBody.DataGetLabel(j - 1); ListNameLabel[j] = DataLabelBody.Name; ListIndexLabel[j] = (j - 1); ListFrameNoLabel[j] = DataLabelBody.FrameNo; } } else { /* Has No-Labels */ CountLabel = 2; ListNameLabel = new string[CountLabel]; ListIndexLabel = new int[CountLabel]; ListFrameNoLabel = new int[CountLabel]; } ListNameLabel[0] = Library_SpriteStudio.ListNameLabelAnimationReserved[(int)Library_SpriteStudio.KindLabelAnimationReserved.START]; ListIndexLabel[0] = (int)(Library_SpriteStudio.KindLabelAnimationReserved.START | Library_SpriteStudio.KindLabelAnimationReserved.INDEX_RESERVED); ListFrameNoLabel[0] = 0; ListNameLabel[CountLabel - 1] = Library_SpriteStudio.ListNameLabelAnimationReserved[(int)Library_SpriteStudio.KindLabelAnimationReserved.END]; ListIndexLabel[CountLabel - 1] = (int)(Library_SpriteStudio.KindLabelAnimationReserved.END | Library_SpriteStudio.KindLabelAnimationReserved.INDEX_RESERVED); ListFrameNoLabel[CountLabel - 1] = FrameNoLast; int IndexListLabelStart = -1; int IndexListLabelEnd = -1; for (int i = 0; i < CountLabel; i++) { if (ListIndexLabel[i] == Data.IndexLabelStart) { IndexListLabelStart = i; } if (ListIndexLabel[i] == Data.IndexLabelEnd) { IndexListLabelEnd = i; } } if (0 > IndexListLabelStart) { IndexListLabelStart = 0; } if (0 > IndexListLabelEnd) { IndexListLabelEnd = CountLabel - 1; } int OffsetStart = Data.FrameOffsetStart; int OffsetEnd = Data.FrameOffsetEnd; int FrameNoStart = ListFrameNoLabel[IndexListLabelStart]; int FrameNoEnd = ListFrameNoLabel[IndexListLabelEnd]; int IndexListLabelNow; int FrameNoLimit; /* Range "Start" */ EditorGUILayout.LabelField("Range Start: (" + FrameNoStart.ToString() + " + " + OffsetStart.ToString() + ") = " + (FrameNoStart + OffsetStart).ToString() ); /* Start-Label Select */ IndexListLabelNow = EditorGUILayout.Popup("Range Start Label", IndexListLabelStart, ListNameLabel); if (IndexListLabelNow != IndexListLabelStart) { /* Data is valid & Changed Animation */ IndexListLabelStart = IndexListLabelNow; FlagUpdate |= true; } Data.IndexLabelStart = ListIndexLabel[IndexListLabelStart]; FrameNoStart = ListFrameNoLabel[IndexListLabelStart]; /* Start-Offset */ FrameNoLimit = FrameNoEnd + OffsetEnd; OffsetStart = EditorGUILayout.IntField("Range Start Offset", Data.FrameOffsetStart); EditorGUILayout.LabelField("- Valid Value Range: Min[" + (-FrameNoStart).ToString() + "] to Max[" + ((FrameNoLimit - FrameNoStart) - 1).ToString() + "] " ); OffsetStart = (FrameNoLimit <= (FrameNoStart + OffsetStart)) ? ((FrameNoLimit - FrameNoStart) - 1) : OffsetStart; OffsetStart = (0 > (FrameNoStart + OffsetStart)) ? (0 - FrameNoStart) : OffsetStart; OffsetStart = (FrameNoLast < (FrameNoStart + OffsetStart)) ? (FrameNoLast - FrameNoStart) : OffsetStart; if (Data.FrameOffsetStart != OffsetStart) { Data.FrameOffsetStart = OffsetStart; FlagUpdate |= true; } EditorGUILayout.Space(); /* Range "End" */ EditorGUILayout.LabelField("Range End: (" + FrameNoEnd.ToString() + " + " + OffsetEnd.ToString() + ") = " + (FrameNoEnd + OffsetEnd).ToString() ); /* End-Label Select */ IndexListLabelNow = EditorGUILayout.Popup("Range End Label", IndexListLabelEnd, ListNameLabel); if (IndexListLabelNow != IndexListLabelEnd) { /* Data is valid & Changed Animation */ IndexListLabelEnd = IndexListLabelNow; FlagUpdate |= true; } Data.IndexLabelEnd = ListIndexLabel[IndexListLabelEnd]; FrameNoEnd = ListFrameNoLabel[IndexListLabelEnd]; /* End-Offset */ FrameNoLimit = FrameNoStart + OffsetStart; OffsetEnd = EditorGUILayout.IntField("Range End Offset", Data.FrameOffsetEnd); EditorGUILayout.LabelField("- Valid Value Range: Min[" + ((FrameNoLimit - FrameNoEnd) + 1).ToString() + "] to Max[" + (FrameNoLast - FrameNoEnd).ToString() + "] " ); OffsetEnd = (FrameNoLimit >= (FrameNoEnd + OffsetEnd)) ? ((FrameNoLimit - FrameNoEnd) + 1) : OffsetEnd; OffsetEnd = (0 > (FrameNoEnd + OffsetEnd)) ? (0 - FrameNoEnd) : OffsetEnd; OffsetEnd = (FrameNoLast < (FrameNoEnd + OffsetEnd)) ? (FrameNoLast - FrameNoEnd) : OffsetEnd; if (Data.FrameOffsetEnd != OffsetEnd) { Data.FrameOffsetEnd = OffsetEnd; FlagUpdate |= true; } EditorGUILayout.Space(); int FrameNoRangeStart = FrameNoStart + OffsetStart; int FrameNoRangeEnd = FrameNoEnd + OffsetEnd; int CountFrameRange = FrameNoRangeEnd - FrameNoRangeStart; int FrameNoOffset = EditorGUILayout.IntField("Initial Start Offset", Data.FrameOffsetInitial); EditorGUILayout.LabelField("- Valid Value Range: Min[0] to Max[" + CountFrameRange.ToString() + "]"); FrameNoOffset = (0 > FrameNoOffset) ? 0 : FrameNoOffset; FrameNoOffset = (CountFrameRange <= FrameNoOffset) ? CountFrameRange : FrameNoOffset; if (FrameNoOffset != Data.FrameOffsetInitial) { Data.FrameOffsetInitial = FrameNoOffset; FlagUpdate |= true; } EditorGUILayout.Space(); bool FlagPingpongNow = EditorGUILayout.Toggle("Play-Pingpong", Data.FlagPingpong); if (FlagPingpongNow != Data.FlagPingpong) { Data.FlagPingpong = FlagPingpongNow; FlagUpdate |= true; } EditorGUILayout.Space(); if (0.0f == Data.RateSpeedInitial) { Data.RateSpeedInitial = 1.0f; } float RateSpeedNow = EditorGUILayout.FloatField("Rate Time-Progress", Data.RateSpeedInitial); EditorGUILayout.LabelField("(set Negative-Value, Play Backwards.)"); if (RateSpeedNow != Data.RateSpeedInitial) { Data.RateSpeedInitial = RateSpeedNow; FlagUpdate |= true; } EditorGUILayout.Space(); int TimesPlayNow = EditorGUILayout.IntField("Number of Plays", Data.TimesPlay); EditorGUILayout.LabelField("(1: No Loop / 0: Infinite Loop)"); if (TimesPlayNow != Data.TimesPlay) { Data.TimesPlay = TimesPlayNow; FlagUpdate |= true; } EditorGUILayout.Space(); if (true == GUILayout.Button("Reset (Reinitialize)")) { Data.IndexAnimation = 0; Data.FrameOffsetInitial = 0; Data.RateSpeedInitial = 1.0f; Data.TimesPlay = 0; Data.FlagPingpong = false; Data.IndexLabelStart = (int)(Library_SpriteStudio.KindLabelAnimationReserved.START | Library_SpriteStudio.KindLabelAnimationReserved.INDEX_RESERVED); Data.FrameOffsetStart = 0; Data.IndexLabelEnd = (int)(Library_SpriteStudio.KindLabelAnimationReserved.END | Library_SpriteStudio.KindLabelAnimationReserved.INDEX_RESERVED); Data.FrameOffsetEnd = 0; Data.FlagAnimationStopInitial = false; FlagUpdate = true; /* Force */ } /* Re-Play Animation */ if (true == FlagUpdate) { Data.AnimationPlay(); if (true == Data.FlagAnimationStopInitial) { Data.AnimationStop(); } } } else { EditorGUILayout.LabelField("Error[Datas Missing! (Fatal)]"); } } EditorGUI.indentLevel = LevelIndent; EditorGUILayout.Space(); // Data.FlagHideForce = EditorGUILayout.Toggle("Force-Hide", Data.FlagHideForce); // if(true == GUILayout.Button("Apply \"Force-Hide\" to Children")) // { // LibraryEditor_SpriteStudio.Utility.HideSetForce(Data.gameObject, Data.FlagHideForce, true, false); // } // EditorGUILayout.Space(); // EditorGUILayout.Space(); // if(true == GUILayout.Button("Reset Parent-\"View\"")) // { // Data.ViewSet(); // } if (true == GUI.changed) { EditorUtility.SetDirty(target); } }