前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity动画☀️五、分割、播放动画、控制模型位移

Unity动画☀️五、分割、播放动画、控制模型位移

作者头像
星河造梦坊官方
发布2024-08-14 15:59:44
1180
发布2024-08-14 15:59:44
举报
文章被收录于专栏:星河造梦坊专栏

一、分割动画

Perfab:Import Animation是否导入动画

勾选后可在下方分割动画

Start:开始帧

End:结束帧

Loop Time:循环播放

Loop Pose:让循环播放更加完美(无缝隙的)

二、播放动画

Animator组件控制状态机,状态机控制动画Animation Clips,Animator组件可搜索添加,也可设置为Generic、Humanoid时自动添加

1、在AnimControllers文件夹新建状态机,并将其赋予Model Animator—Controller

2、双击状态机/Window—Animator进入状态机,建立动画切换之间的控制策略

右键Animation Clip选择Make Transition,连接至另一个动画,选中直线

Has Exit Time:代表只有本动画播放完,才可进入下一动画

思路:Animator—Layers里面设置参数,给状态机里面的动画设置与这些参数设置关联的切换条件,通过代码控制参数,从而控制了状态机里面动画的切换

1、在Parameters里设置Int型参数“Vertical”

思路:通过方法,按下不同按键C#给Animator—Controller的状态机的Vertical赋三个值:按上时赋值1,下-1,不按0;

并且状态机要检测到数值变化要做什么,即要设置检测到数值变化,根据变化条件不同来切换动画——如果按上,从Idel到切换到RunForward;按下,从Idel切换到RunBack:

选中Transition方向线,Conditions(条件)添加条件,选中要识别的参数,选择Greater(大于)、Less、Equals或NotEqual,右侧填入比较的数值,取消Has Exit Time

2、若不添加转换回去的条件,动画会在当前状态,不会切换到其他动画去

即如果不添加RunForward到IdelTransition,它是不会切换回去的,也不会到RunBackward,即使Parameters数值满足Idel到RunBackward的条件

3、C#代码

代码语言:javascript
复制
using UnityEngine;

public class Biker : MonoBehaviour {

    private Animator anim;

	// Use this for initialization
	void Start () {
        anim = GetComponent<Animator>();
	}
	
	// Update is called once per frame
	void Update () {
        float v = Input.GetAxisRaw("Vertical");  //这个Vertical对应着键盘垂直方向上下键,名称可在下图位置设置
        anim.SetInteger("Vertical", (int)v);   //这个Vertical对应着状态机里面的参数Vertical,且它被我们定义为是Int型,所以需要转化

        transform.Translate(Vector3.forward * v * Time.deltaTime*4);  //4米每秒

    }
}

Input.AxisRaw详解

Time.deltaTime详解

大家还有什么问题,欢迎在下方留言!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档