1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class PlayerControll : MonoBehaviour
  6. {
  7. Transform playerTransform;
  8. Animation playerAnimation;
  9. Rigidbody playerRigidbody;
  10. public float moveSpeed;
  11. public float jumpAbility;
  12. bool canJump;
  13.  
  14. void Start()
  15. {
  16. playerTransform = GetComponent<Transform>();
  17. playerAnimation = GetComponent<Animation>();
  18. playerRigidbody = GetComponent<Rigidbody>();
  19. Debug.Log(playerTransform.name);
  20. }
  21.  
  22. void Update()
  23. {
  24. Move_Control();
  25. }
  26.  
  27. void Move_Control()
  28. {
  29. if (Input.GetKey(KeyCode.W))
  30. {
  31. playerTransform.Translate(Vector3.forward * Time.deltaTime * moveSpeed, Space.Self);
  32. playerAnimation.Play("runforward");
  33. }
  34.  
  35. if (Input.GetKeyUp(KeyCode.W))
  36. {
  37. playerAnimation.CrossFade("idle", 0.3f);
  38. }
  39.  
  40. if (Input.GetKey(KeyCode.S))
  41. {
  42. playerTransform.Translate(Vector3.back * Time.deltaTime * moveSpeed, Space.Self);
  43. playerAnimation.Play("runbackwards");
  44. }
  45. if (Input.GetKeyUp(KeyCode.S))
  46. {
  47. playerAnimation.CrossFade("idle", 0.3f);
  48. }
  49.  
  50. if (Input.GetKey(KeyCode.A))
  51. {
  52. playerTransform.Translate(Vector3.left * Time.deltaTime * moveSpeed, Space.Self);
  53. playerAnimation.Play("strafeleft");
  54. }
  55.  
  56. if (Input.GetKeyUp(KeyCode.A))
  57. {
  58. playerAnimation.CrossFade("idle", 0.3f);
  59. }
  60.  
  61. if (Input.GetKey(KeyCode.D))
  62. {
  63. playerTransform.Translate(Vector3.right * Time.deltaTime * moveSpeed, Space.Self);
  64. playerAnimation.Play("straferight");
  65. }
  66.  
  67. if (Input.GetKeyUp(KeyCode.D))
  68. {
  69. playerAnimation.CrossFade("idle", 0.3f);
  70. }
  71.  
  72. if (Input.GetKey(KeyCode.Space))
  73. {
  74. if (canJump)
  75. {
  76. playerRigidbody.AddForce(Vector3.up * jumpAbility, ForceMode.Impulse);
  77. playerAnimation.Play("jump");
  78. canJump = false;
  79. }
  80. }
  81. }
  82.  
  83. private void OnCollisionStay(Collision collision)
  84. {
  85. if (collision.transform.tag == "Ground")
  86. {
  87. canJump = true;
  88. //playerAnimation.Play("idle");
  89. playerAnimation.CrossFade("idle",0.2f);
  90. }
  91. }
  92. }

按88行那样写只摁WSAD中的一个按键人物正常移动,但是不正常执行动画,人物会漂移;按89行那样写只摁WSAD中的一个按键人物正常移动,并且正常执行动画。

但是同时摁下WD或WA或SD或SA,人物都会漂移。

Unity Animation.CrossFade Animation.Play的更多相关文章

  1. Unity 2D Skeletal Animation

    本文记录在Unity中制作2D 骨骼动画的笔记 Unity版本:4.3 Uni2D 使用骨骼动画前,把Sprite Mesh 的Type 改为 Grid ,设置合适的骨骼数量和分配权重 1.选中创建好 ...

  2. Animation & Property Animation 使用

    本篇主要讲Animation 和 Property Animation的使用,最后会讲QQ管家桌面火箭作为例子: 在Android中开发动效有两套框架可以使用,分别为 Animation 和 Prop ...

  3. Android动画总结#补间动画(Tween Animation/View Animation) #帧动画(Frame Animation/Drawable Animation)#属性动画(PropertyAnimation)

    1.共有三种动画,英文名字多种叫法如下 第一种动画:补间动画(Tween Animation/View Animation) 四个:RotateAnimation旋转. AlphaAnimation透 ...

  4. unity, Animation crossfade需要两动画在时间上确实有交叠

    unity现在播动画都用Animator了,但公司的老项用的还是Animation,今天遇到一个bug,是两个动画的衔接处不连贯. 最后发现是由于A动画已经播完之后B动画才开始播,而且还用了cross ...

  5. Unity 动画系统 Animation 和 Animator的小实例

    本文结合一个很简单的动画demo,分别采用2种方法,来对比Animation和Animator的使用方式: 方法1:单独使用Animation 方法2:Animation结合Animator 动画De ...

  6. Unity 动画系统 Animation和Animator 常用小功能

  7. Unity 动画系统 Animation和Animator等常用类

  8. Unity 动画系统 Animation 和 Animator 联系与区别

  9. [Angular] Two ways to create Angular Animation, using animation() or using state()

    We have two blocks to show to difference ways to do animation in Angular: <button (click)="t ...

随机推荐

  1. deb包制作(转)

    deb 包已被广泛应用但是也在不断的更新,这里介绍Ubuntu deb包安装设置使用,帮助大家安装更新Ubuntu deb包系统.制作Ubuntu deb包的三种方法 | Sean's Blog [转 ...

  2. url-pattern 的设置与匹配

  3. ConnectionState详解

    ConnectionState有六个属性值ConnectionState.Broken;与数据源连接断开.只有在连接打开后才有可能发生这种情况.可以关闭处于这种状态下的连接,然后重新打开.Connec ...

  4. 【转】 PHP 两个日期(时间段) 之间的日期数组

    在开发过程中会遇到这样一个需求:获取2018-11-02到2018-11-15之间的日期数组 希望得到如下数组: Array ( [] => -- [] => -- [] => -- ...

  5. sql开发技巧总结-1

    1.数据库分类 关系型 非关系型 2.sql语句分类 sql: ddl数据库定义语言  tpl事物处理语言 dcl数据控制语言  dml数据操作语言(insert delete update sele ...

  6. Python——用socket和线程实现全双工收发数据

    用socket和线程实现全双工收发数据 1.基础知识 Socket(套接字) 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.由此知道套接字是全双工的. 线程 ...

  7. BZOJ 3028: 食物

    \(\color{#0066ff}{ 题目描述 }\) 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应 该带一些什么东西.理所当然的,你当然要帮 ...

  8. idea 新建maven项目没有src及其子目录问题

    注意在这一步中,填写maven的本地地址还有手动修改settings地址非常重要!!! 如果你是第一次配置maven,少配置任何一个将导致你以后建立的mvn项目全部没有src目录!!! 解决办法就是卸 ...

  9. java 解决Hash(散列)冲突的四种方法--开放定址法(线性探测,二次探测,伪随机探测)、链地址法、再哈希、建立公共溢出区

    java 解决Hash(散列)冲突的四种方法--开放定址法(线性探测,二次探测,伪随机探测).链地址法.再哈希.建立公共溢出区 标签: hashmaphashmap冲突解决冲突的方法冲突 2016-0 ...

  10. 【bzoj2935】[Poi1999]原始生物

    2935: [Poi1999]原始生物 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 145  Solved: 71[Submit][Status][D ...