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导入的,动画是传统模式分割后的。。。 展开
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导入的,动画是传统模式分割后的。。。 展开
1个回答
展开全部
if(doorIsOpen){
doorTimer += Time.deltaTime;
if(doorTimer>doorOpenTime){
Door(false,"doorshut");
doorTimer = 0.0f;
}
}
其实动画是播放的。
但是就放了一帧。
doorIsOpen是true,然后 Door(false,"doorshut");又把doorIsOpen置为false.
这样Door函数貌似调用了仅仅一次,播放不完就没办法播放了。
新手,如果见解出现问题,请指正。
doorTimer += Time.deltaTime;
if(doorTimer>doorOpenTime){
Door(false,"doorshut");
doorTimer = 0.0f;
}
}
其实动画是播放的。
但是就放了一帧。
doorIsOpen是true,然后 Door(false,"doorshut");又把doorIsOpen置为false.
这样Door函数貌似调用了仅仅一次,播放不完就没办法播放了。
新手,如果见解出现问题,请指正。
追问
抱歉,不是这个问题,逻辑没有问题,问题是unity自己版本有问题,这是新老动画系统的问题,用了新的动画系统后来没问题了。不过还是谢谢。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询