using UnityEngine; using System.Collections; using UnityEngine.UI; /* * 自动漫游摄像机 * 点击自动漫游按钮,摄像机自动沿着设定好的路线自动漫游 */ public class FreeCamera : MonoBehaviour { public Text cameraControllerDetails;//获取文本 private Animator anim; private AnimatorStateInfo animatorInfo; void Start() { anim = GetComponent<Animator>(); } void Update() { animatorInfo = anim.GetCurrentAnimatorStateInfo(0);//获取动画信息 if (animatorInfo.IsName("FreeCamera"))//注意这里指的不是动画的名字而是动画状态的名字 { if (CommonController.isFreeCamera) { anim.enabled = true;//Animator组件启用 anim.speed = 1;//动画播放速度 cameraControllerDetails.text = "自动漫游中..."; Debug.Log("获取Animator的动画了!"); // 判断动画是否播放完成 if (animatorInfo.normalizedTime >= 1.0f) { //播放完毕,要执行的内容 cameraControllerDetails.text = "自动漫游结束,请点击主动漫游按钮,进行主动漫游!"; } } else { //anim.speed = 0;//动画播放速度 //anim.Stop(); anim.enabled = false;//Animator组件停用 cameraControllerDetails.text = "主动漫游中!"; Debug.Log("动画播放停止!"); } } } public void isFreeCamera() { CommonController.isFreeCamera = true; } public void isActiveCamera() { CommonController.isFreeCamera = false; } }
**经过我从网上找资料解决Animator组件控制Animation动画播放以及停止的办法来看,暂时还没发现有完整的播放、停止、判断动画结束的事例。为了解决动画的播放和停止,我自己想了一个较为笨拙的办法...
**办法:就是Animator组件的启用和停用。**