Unity笔记-03
Animation &&AnimationState
首先要录制动画:
首先在需要录制动画的对象下添加Animation 组件,再点击对象在Animation 栏目点击Create 创建动画,对需要变换的组件,通过Add Property按钮添加,会出现类似AE的时间条,通过添加移动关键帧来操作时间,点击红点(录制按钮),在对关键帧进行操作,操作完毕,在此点击红点,完成录制。
录制完毕,需要将素材添加到对象Animation 组件下,方可使用。
Animation播放模式:
Once:每次输入播放指令,播放一次
Loop:输入播放指令后,循环播放
Clamp Forever:播放一次之后,固定在动画最后一帧
Ping Pong:正向播放完毕后反向播放,循环往复
代码:animation.IsPlaying("动画名")
检查动画是否在播放,返回bool类型
代码:animation.Play("动画名")
播放指定动画
代码:animation["动画名"]
获取指定的动画对象
代码:animation[].speed
动画播放速度,1为正常速度,负数则为反向播放
代码:animation[].wrapMode=wrapMode.PingPong
设置动画播放模式
代码:animation[].length
获取动画总时长
代码:animation[].time
获取动画当前播放到的时间
代码块-开门与关门脚本练习:
public class DoorAnimationDemo : MonoBehaviour
{
private bool doorState = false;
private Animation anima;
private string animaName = "Door";
private void Start()
{
anima = this.GetComponent<Animation>();
}
private void OnMouseDown()
{
if (doorState)
{
if (!anima.isPlaying)
{
anima[animaName].time = anima[animaName].length;
}
anima[animaName].speed = -1;
}
else
{
anima[animaName].speed = 1;
}
anima.Play(animaName);
doorState = !doorState;
}
}
|