【Unity】新手初学Animation实现人物移动

【Unity】新手初学Animation实现人物移动

需求:开发影院系统,希望加入Avatar人物,在其中行走和坐下

环境:Unity2021.3

  1. 新手初学Animation教程:BV1BW41187fL

    Avatar人物模型资源:学长网盘链接分享

    Animation动作资源:浏览器搜索mixamo

  2. 开发流程

    1. 对坐标:XZ为平面、Y为竖直方向

    2. Avatar、Scripts、Animations、Controller

    3. 人物下添加Control脚本、CapsuleCollider、RigidBody

    4. 调整Animaton Type要一致

    5. 新建AnimatorController并拖拽给人物

    6. 固定Animation的Y,防止上移动

    7. 编辑AnimatorController

      1. 左侧添加Bool的Parameters
      2. 选中箭头,右侧添加Condition
    8. 编辑Script

      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      
      public class PlayerControl : MonoBehaviour
      {
      
          private Animator ani;
      
          // Start is called before the first frame update
          void Start()
          {
              
              ani = GetComponent<Animator>();
          }
      
          // Update is called once per frame
          void Update()
          {
              float vertical = Input.GetAxis("Vertical");
              float horizontal = Input.GetAxis("Horizontal");
              Vector3 dir = new Vector3(horizontal, 0, vertical);
      
              if(dir != Vector3.zero) {
                  transform.rotation = Quaternion.LookRotation(dir);
                  transform.Translate(Vector3.forward * 2 * Time.deltaTime);
                  ani.SetBool("Walking", true);
              } else {
                  ani.SetBool("Walking", false);
              }
      
              if(Input.GetKeyDown(KeyCode.L)) {
                  ani.SetBool("Sitting", true);
              } else if(Input.GetKeyDown(KeyCode.O)) {
                  ani.SetBool("Sitting", false);
              }
              
          }
      }
      
      
    9. 选中箭头,取消勾选HasExitTime

    10. 同理加上Sit

    注意:Avatar和Animator资源 Rig下的Animaton Type要一致(如都设置为Humanoid),否则不起作用

  3. 问题:加上动作后人物会飞起来

    解决:选中动作资源 - Inspector中的RootTransformPostion(Y) 勾选BakeIntoPose

    在这里插入图片描述

    注意:如果勾选后仍会飞,重启Unity可解决大部分这种情况

  4. 问题:按下按键后动作切换不及时

    原因:切换的条件:(1)当前动画播放完(2)满足切换条件

    解决:选中切换的箭头,取消勾选Has Exit Time

如有帮助,麻烦动动手指点一下赞,感谢!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值