我做的是窗帘的开和关:
animOpenCurtain=GameObject.Find ("sh").GetComponent
AnimatorStateInfo animatorinfo = animOpenCurtain.GetCurrentAnimatorStateInfo (0);
if (animatorinfo.normalizedTime > 1) {
animOpenCurtain.speed=-1f;
animOpenCurtain.Play ("Open", 0, 1f);
} else {
animOpenCurtain.speed=1f;
animOpenCurtain.Play ("Open", 0, 0f);
}
“Open”是状态机的窗帘开的动画;还要把动画循环勾选去掉,用代码控制就行了;
大概思路是这样,不行的话把上面animOpenCurtain.Play ("Open", 0, 0f)里的参数改改试试。
把这个√取消
在Unity3D中,当动画播放完毕后,物体形态会默认回到之前的状态,主要原因是动画建立时记录了原来物体的变换信息(如位移、旋转和缩放等)。当动画结束后,这些变换信息会作为动画的一部分被应用回物体,从而使其复原到原始状态。
以上内容仅供参考,可以咨询计算机专业人士或者查阅专业书籍获取更全面准确的信息。
实现不了,animation默认就是这样