void Awake() { if (!animLoaded) { animLoaded = true; string path = "Sprites/Units/thug_all"; Unit.load(path, "thug"); } animSys = new AnimatorSystem(transform, this); loadAnimations("thug"); setAnimAndOr("walk", Orientation.Or_E); }
private void DrawAnimatorSystem(AnimatorSystem animSys) { EditorGroup.Horizontal(() => { animSys.animator = (Animator)EditorGUILayout.ObjectField(animSys.animator, typeof(Animator), true); if (GUILayout.Button("UpdateParameters", EditorStyles.miniButtonRight)) { animSys.UpdateParameters(); } }); var parameters = animSys.allAnimatorParameters.ToArray(); animSys.selectedParameter = EditorGUILayout.Popup("Parameters", animSys.selectedParameter, parameters); EditorGroup.Horizontal(() => { EditorGUILayout.LabelField("Direction", GUILayout.MinWidth(120), GUILayout.MaxWidth(120)); var isToBeginning = animSys.Sign == AnimationDirection.ToBeginning; if (GUILayout.Toggle(isToBeginning, "<-", EditorStyles.miniButtonLeft)) { animSys.SetSign(AnimationDirection.ToBeginning); } var isToEnd = animSys.Sign == AnimationDirection.ToEnd; if (GUILayout.Toggle(isToEnd, "->", EditorStyles.miniButtonRight)) { animSys.SetSign(AnimationDirection.ToEnd); } }); EditorGroup.Vertical(() => { animSys.frameRate = EditorGUILayout.FloatField("FrameRate", animSys.frameRate); if (animSys.allAnimatorParameters.Count > animSys.selectedParameter) { var newState = EditorGUILayout.Slider("State", animSys.State, 0, 1); if (Math.Abs(newState - animSys.State) > 0) { animSys.SetState(newState); } } animSys.playFromStart = EditorGUILayout.Toggle("PlayFromStart", animSys.playFromStart); }); EditorGroup.Horizontal(() => { if (GUILayout.Button("Reverse", EditorStyles.miniButtonLeft)) { if (Application.isPlaying) { animSys.ReverseAndPlayback(); } else { animSys.Reverse(); if (animSys.Sign == AnimationDirection.ToEnd) { animSys.SetState(1); } else if (animSys.Sign == AnimationDirection.ToBeginning) { animSys.SetState(0); } } } if (GUILayout.Button(animSys.isPlayback ? "Stop" : "Play current", EditorStyles.miniButtonMid)) { if (animSys.isPlayback) { animSys.isPlayback = false; } else if (Application.isPlaying) { if (animSys.Sign == AnimationDirection.ToEnd) { animSys.SetState(0); } else if (animSys.Sign == AnimationDirection.ToBeginning) { animSys.SetState(1); } animSys.Playback(); } } if (GUILayout.Button("Reset", EditorStyles.miniButtonRight)) { animSys.Reset(); } }); }