tip:transition 勾选Has Exit Time B动画播放完毕后就可以自己返回A不用代码控制。因为想做一个小人静止时 隔两秒会摆动小手的特效。

附上代码参考:

  1 using UnityEngine;
  2 using System.Collections;
  3
  4 public class playeMove : MonoBehaviour
  5 {
  6
  7     public Animator PlayerAnimator;
  8     public const int HERO_UP = 0;
  9     public const int HERO_RIGHT = 1;
 10     public const int HERO_DOWN = 2;
 11     public const int HERO_LEFT = 3;
 12     float  FreakTime=3;
 13     //人物当前行走的方向状态
 14     public int state = 0;
 15     //人物移动速度
 16     public int moveSpeed =2;
 17
 18     //初始化人物位置
 19     public void Awake()
 20     {
 21         state = HERO_UP;
 22     }
 23     // Use this for initialization
 24     void Start()
 25     {
 26
 27     }
 28
 29     // Update is called once per frame
 30     void Update()
 31     {
 32
 33
 34         //获取控制的方向, 上下左右,
 35         float KeyVertical = Input.GetAxis("Vertical");
 36         float KeyHorizontal = Input.GetAxis("Horizontal");
 37         //Debug.Log("keyVertical" + KeyVertical);
 38         //Debug.Log("keyHorizontal" + KeyHorizontal);
 39         if (KeyVertical <0)
 40         {
 41             setHeroState(HERO_DOWN);
 42         }
 43         else if (KeyVertical >0)
 44         {
 45             setHeroState(HERO_UP);
 46         }
 47
 48         if (KeyHorizontal >0)
 49         {
 50             setHeroState(HERO_RIGHT);
 51         }
 52         else if (KeyHorizontal <0)
 53         {
 54             setHeroState(HERO_LEFT);
 55         }
 56
 57
 58
 59         //得到正在播放的动画状态
 60         AnimatorStateInfo info = PlayerAnimator.GetCurrentAnimatorStateInfo(0);
 61
 62         //如果没有按下方向键且状态不为walk时播放走路动画
 63         if (KeyVertical != 0 || KeyHorizontal != 0  && !info.IsName("Walk"))
 64         {
 65             PlayerAnimator.Play("Walk");
 66         }
 67         //否则如果按下方向键且状态为walk时播放静止动画
 68         else if((KeyVertical == 0 && KeyHorizontal == 0 && info.IsName("Walk") ))
 69         {
 70             PlayerAnimator.Play("Idle");
 71         }
 72
 73         //这里设定是玩家静止时隔2s会摆动一次
 74         if (KeyVertical == 0 && KeyHorizontal == 0)
 75         {
 76             //当玩家静止时,FreakTime才会计时
 77             if (info.IsName("Idle"))
 78             {
 79                 FreakTime -= Time.deltaTime;
 80                 if (FreakTime <= 0)
 81                 {
 82                     Debug.Log(FreakTime);
 83                     FreakTime = 2;
 84                     //FreakingOut设置为播放后自动退出到idle
 85                     PlayerAnimator.Play("FreakingOut ");
 86                 }
 87             }
 88         }
 89
 90
 91     }
 92
 93
 94     void setHeroState(int newState)
 95     {
 96         //根据当前人物方向与上一次备份的方向计算出模型旋转的角度
 97         int rotateValue = (newState - state) * 90;
 98         Vector3 transformValue = new Vector3();
 99
100         //播放行走动画
101
102         //模型移动的位置数值
103         switch (newState)
104         {
105             case HERO_UP:
106                 transformValue = Vector3.forward * Time.deltaTime;
107                 break;
108             case HERO_DOWN:
109                 transformValue = (-Vector3.forward) * Time.deltaTime;
110                 break;
111             case HERO_LEFT:
112                 transformValue = Vector3.left * Time.deltaTime;
113                 break;
114             case HERO_RIGHT:
115                 transformValue = (-Vector3.left) * Time.deltaTime;
116                 break;
117         }
118
119         transform.Rotate(Vector3.up, rotateValue);
120         //移动人物
121         transform.Translate(transformValue * moveSpeed, Space.World);
122         state = newState;
123     }
124
125
126 }
127  

View Code

转载于:https://www.cnblogs.com/ninomiya/p/6671315.html

unity3d之控制人物转向移动并播放动画相关推荐

  1. android 自定义view 动画效果,Android自定义view----音乐播放动画

    先给大家看一下效果,因为我也不知道这个东西具体叫什么,标题上面写的是"音乐播放动画",可能描述的不太准确. 效果图.gif 前言 最近项目中做了一个音频播放的功能,播放条上需要一个 ...

  2. 【Playable API】不用Animator如何播放动画?

    你好,我是郑洪智,你可以叫我大智. 先问你一个问题:播放动画不想用Animator搞一堆Animator Controller,怎么做? Unity老玩家可能会先想到:Legacy Animation ...

  3. CSS 帧动画 播放动画

    CSS3 帧动画 amimation @keyframes 在 CSS3 出现之前,动画都是通过 JavaScript 动态的改变元素的样式属性来完成了,这种方式虽然能够实现动画,但是在性能上存在一些 ...

  4. 怎么在FLASH的场景中控制影片剪辑的播放和停止

    <--好消息!好消息!好消息! 粉丝超过2000的公众号主快来接单吧,快来领取你的第一笔广告费.(粉丝数不够的小伙伴,请私信我一并解决) 新用户注册红包1.8元,新用户注册并接单红包9.9元. ...

  5. Unity3D-游戏ARVR开发进阶课程 - 动画系统-宋晓波-专题视频课程

    Unity3D-游戏ARVR开发进阶课程 - 动画系统-10610人已学习 课程介绍         本套视频培训课程中会深入学习Unity中的Mecanim动画系统.包括动画剪辑.动画控制器.动画状 ...

  6. Unity(三十九):非运行状态下脚本播放动画、Animator Override Controller、RuntimeAnimatorController

    非运行状态下脚本播放动画 脚本 using UnityEngine;namespace Example_01.Scripts {[RequireComponent(typeof(Animator))] ...

  7. 【web前端】JavaScript实现图片幻灯片滚动播放动画效果

    JavaScript实现图片幻灯片滚动播放动画效果 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.co ...

  8. Unity animator不剪辑动画实现 分段播放动画

    public Animator anim;private AnimatorStateInfo animInfo; /// <summary>/// 控制动画暂停和播放/// </su ...

  9. 让任务管理器播放动画

    一.源起 原先在B站上看到各式各样拿Windows任务管理器播放动画的视频,感觉很新奇,也有人无私分享代码.有些视频中的动画是后期加上的,也有些是实时渲染的.不管怎样,像实时渲染这类程序就非常&quo ...

最新文章

  1. 机器学习笔记:为什么要对数据进行归一化处理?
  2. Python 【大风号】短视频的自动上传与发布实例演示,同时支持抖音、快手、哔哩哔哩、小红书、微视、西瓜视频、微信视频号等平台的视频自动化同步发布
  3. 科技推动时代发展,浅谈IT技术如何改善数据中心运维管理
  4. tensorflow中name_scope和variable_scope变量的使用
  5. 结构体实验报告总结_解读!清华、谷歌等10篇强化学习论文总结
  6. C++、python、CUDA性能分析--矩阵乘法
  7. 属于HTML文档头部相关标记,下列选项中,属于HTML文档头部相关标记的是 答案:title/titlemeta /...
  8. Android之jni编译出现multiple definition of ‘××××ב
  9. Object 的静态方法之 defineProperties 以及数据劫持效果
  10. Xcode7 添加PCH文件
  11. wordpress使用 ftp使用问题总结
  12. 中查询一个文件夹下文件数量_如何在 Bash 中使用循环 | Linux 中国
  13. 用诗歌描写计算机课,小班诗歌公开课教案范文【3篇】
  14. oracle11g 未,Oracle11g链接提示未“在本地计算机注册“OraOLEDB.Oracle”解决方法
  15. mysql数据库:mysql增删改、单表、多表及子查询
  16. 一次排查服务器端接口报500错误的经历
  17. R语言金融基础:tidyquant获取数据(股票每日行情)
  18. java 外文参考文献_java英文参考文献
  19. visual studio html插件,实用的 Visual Studio Code 插件
  20. Java项目:SSM校园共享自行车出租管理系统

热门文章

  1. mysql 查询某个字段SQL语句【mysql语句】
  2. MAC 修改文件夹以及子文件夹和子文件权限 以及 修改文件夹owner
  3. 使用Kylin导入JDBC数据源遇到的问题
  4. c语言第六次上机作业,C语言第五次上机作业参考答案
  5. java获取本周的开始时间和结束时间_创业板注册制开始时间/股票开户流程结束后,怎么炒股?...
  6. mysql动态变量查询_MySQL将变量传递给动态查询
  7. python调用numpy视频_Numpy的文件输入和输出使用
  8. gettype获取类名_在TypeScript中运行时获取对象的类名
  9. MongoDB简介、在node中使用MongoDB
  10. 麦肯锡方法中的经验(读书摘要)