我有一个名为Play的3dtext,点击后会播放动画;另一个名为Back,它会反转动画。问题是在我播放并支持它之后,当我点击播放时动画不再播放。
名为redsubmenu的动画处于遗留状态并且永久封装包裹模式。
public class PlayButtonScript : MonoBehaviour {
//public static PlayButtonScript pbs;
public GameObject redsubmenu;
void Update(){
#if UNITY_EDITOR
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Input.GetMouseButtonDown(0)&&Physics.Raycast(ray,out hit)){
if(hit.collider.name == "Play"){
redsubmenu.animation.Play();
}
}
#endif
}
}
public class BackButtonScript : MonoBehaviour {
// Update is called once per frame
void Update () {
#if UNITY_EDITOR
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Input.GetMouseButtonDown(0)&&Physics.Raycast(ray, out hit)){
if(hit.collider.name == "Back"){
transform.parent.animation["redsubmenu"].speed = -1;
transform.parent.animation.Play("redsubmenu");
}
}
#endif
}
}
答案 0 :(得分:0)
您似乎从未将动画的速度重置为1.当您第一次单击播放速度最初为1时,它可以正常工作。但是,当您返回时,将速度设置为-1,并且永远不会将其设置为任何其他值。
尝试使用:
if (hit.collider.name == "Play") {
transform.parent.animation["redsubmenu"].speed = 1;
redsubmenu.animation.Play();
}
在你的播放按钮脚本中。
您也可以使用Animation.Rewind。 http://docs.unity3d.com/ScriptReference/Animation.Rewind.html
答案 1 :(得分:0)
更具体地说,我编辑了我的playbuttonscript,如下所示:
if(Input.GetMouseButtonDown(0)&&Physics.Raycast(ray,out hit)){
if(hit.collider.name == "Play"){
if(redsubmenu.animation["redsubmenu"].speed == -1){
redsubmenu.animation["redsubmenu"].speed = 1;
} else {
redsubmenu.animation.Play();
}
}
}
在我的后退按钮中,我删除了transform.parent.animation.Play,不需要。