unity3d animation.play 程序没有问题 但是播放没反应

程序代码如下usingUnityEngine;usingSystem.Collections;publicclassDoorManager:MonoBehaviour{b... 程序代码如下
using UnityEngine;
using System.Collections;

public class DoorManager : MonoBehaviour {
bool doorIsOpen = false;
float doorTimer = 0.0f;
public float doorOpenTime = 3.0f;
// Use this for initialization
void Start () {
doorTimer=0.0f;
}

// Update is called once per frame
void Update () {
if(doorIsOpen){
doorTimer += Time.deltaTime;
if(doorTimer>doorOpenTime){
Door(false,"doorshut");
doorTimer = 0.0f;
}
}

}
void DoorCheck(){
if(!doorIsOpen){
Door(true,"dooropen");
Debug.Log("find doorcheck");
}
}
void Door (bool openCheck , string animName){
doorIsOpen = openCheck;
bool flag;
flag =transform.root.gameObject.animation.Play(animName);
Debug.Log("play ani"+flag);
}
}
在运行时,debug调试没有问题,也没有报错,可是物体就是不动,模型是3dmax导入的,动画是传统模式分割后的。。。
展开
 我来答
步虚真人
推荐于2017-11-26 · TA获得超过1344个赞
知道小有建树答主
回答量:601
采纳率:91%
帮助的人:484万
展开全部
if(doorIsOpen){
doorTimer += Time.deltaTime;
if(doorTimer>doorOpenTime){
Door(false,"doorshut");
doorTimer = 0.0f;
}
}
其实动画是播放的。
但是就放了一帧。
doorIsOpen是true,然后 Door(false,"doorshut");又把doorIsOpen置为false.
这样Door函数貌似调用了仅仅一次,播放不完就没办法播放了。

新手,如果见解出现问题,请指正。
追问
抱歉,不是这个问题,逻辑没有问题,问题是unity自己版本有问题,这是新老动画系统的问题,用了新的动画系统后来没问题了。不过还是谢谢。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式