游戏暂停同时角色动作暂停
需求
当在游戏暂停的时候,播放的动画也要相应地暂停,游戏暂停写成一个事件
FramGameManager
using UnityEngine; using System.Collections; public class FramGameManager : MonoBehaviour { public static FramGameManager instance; public delegate void gamePauseHandler(bool pauses); public event gamePauseHandler gamePause; void Awake(){ instance=this; } // Use this for initialization void Start () { } // Update is called once per frame void Update () { } }
FramPlayAnimation
using UnityEngine; using System.Collections; public class FramPlayAnimation : MonoBehaviour { private FramGameManager gameManager; private Animation thisAnimation; bool isPress = false; // Use this for initialization void Start () { thisAnimation = animation; thisAnimation ["Idle"].wrapMode = WrapMode.Loop; thisAnimation ["Idle"].layer = 1; thisAnimation.Play (); } void OnGUI () { if (GUILayout.Button ("Pause")) { isPress = !isPress; gamePause (isPress); } } public void gamePause (bool pause) { int speed = pause ? 0 : 1; foreach (AnimationState item in thisAnimation) { item.speed = speed; } } }
运行效果
运行结果,当点击暂停时角色动画将暂停