using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class PlayerControll : MonoBehaviour
{
Transform playerTransform;
Animation playerAnimation;
Rigidbody playerRigidbody;
public float moveSpeed;
public float jumpAbility;
bool canJump; void Start()
{
playerTransform = GetComponent<Transform>();
playerAnimation = GetComponent<Animation>();
playerRigidbody = GetComponent<Rigidbody>();
Debug.Log(playerTransform.name);
} void Update()
{
Move_Control();
} void Move_Control()
{
if (Input.GetKey(KeyCode.W))
{
playerTransform.Translate(Vector3.forward * Time.deltaTime * moveSpeed, Space.Self);
playerAnimation.Play("runforward");
} if (Input.GetKeyUp(KeyCode.W))
{
playerAnimation.CrossFade("idle", 0.3f);
} if (Input.GetKey(KeyCode.S))
{
playerTransform.Translate(Vector3.back * Time.deltaTime * moveSpeed, Space.Self);
playerAnimation.Play("runbackwards");
}
if (Input.GetKeyUp(KeyCode.S))
{
playerAnimation.CrossFade("idle", 0.3f);
} if (Input.GetKey(KeyCode.A))
{
playerTransform.Translate(Vector3.left * Time.deltaTime * moveSpeed, Space.Self);
playerAnimation.Play("strafeleft");
} if (Input.GetKeyUp(KeyCode.A))
{
playerAnimation.CrossFade("idle", 0.3f);
} if (Input.GetKey(KeyCode.D))
{
playerTransform.Translate(Vector3.right * Time.deltaTime * moveSpeed, Space.Self);
playerAnimation.Play("straferight");
} if (Input.GetKeyUp(KeyCode.D))
{
playerAnimation.CrossFade("idle", 0.3f);
} if (Input.GetKey(KeyCode.Space))
{
if (canJump)
{
playerRigidbody.AddForce(Vector3.up * jumpAbility, ForceMode.Impulse);
playerAnimation.Play("jump");
canJump = false;
}
}
} private void OnCollisionStay(Collision collision)
{
if (collision.transform.tag == "Ground")
{
canJump = true;
//playerAnimation.Play("idle");
playerAnimation.CrossFade("idle",0.2f);
}
}
}

按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. 数据结构_coprime_sequence(互质序列)

    coprime_sequence(互质序列) 问题描述 顾名思义,互质序列是满足序列元素的 gcd 为 1 的序列.比如[1,2,3],[4,7,8],都是互质序列. [3,6,9]不是互质序列.现在 ...

  2. Spring第六篇---AOP

    接着Spring第五篇讲 我们今天将叙述以下几个知识点 1 什么是AOP AOP 是一种思想  横向重复  纵向抽取 在软件业,AOP为Aspect Oriented Programming的缩写,意 ...

  3. STL源码剖析--迭代器(转)

    一.为什么需要traits编程技术 前面说了很多关于traits的光荣事迹,但是却一直没有介绍traits究竟是个什么东西,究竟是用来干什么的?traits在英文解释中就是特性,下面将会引入trait ...

  4. 《Linux内核设计与实现》读书笔记(九)- 内核同步介绍

    存在共享资源(共享一个文件,一块内存等等)的时候,为了防止并发访问时共享资源的数据不一致,引入了同步机制. 主要内容: 同步的概念 同步的方法-加锁 死锁 锁的粒度 1. 同步的概念 了解同步之前,先 ...

  5. Dubbo接口测试方法及步骤

    1)打开soapUI,点击File--New project: 2)右键New REST service from URL,注:因为dubbo接口不像http接口一样有URL,所以这里的URL可以随便 ...

  6. D3.js 之 d3-shap 简介(转)

    [转] D3.js 之 d3-shap 简介 译者注 原文: 来自 D3.js 作者 Mike Bostock 的 Introducing d3-shape 译者: ssthouse 联系译者: 邮箱 ...

  7. laravel安装[转https://laravelacademy.org/post/9528.html]

    Laravel 框架对PHP版本和扩展有一定要求,不过这些要求 Laravel Homestead 都已经满足了,不过如果你没有使用 Homestead 的话(那真是一件很遗憾的事情),有必要了解下这 ...

  8. 加快 hive 查询的 5 种方法

    1. 使用 Tez set hive.execution.engine=tez; 2. 使用 ORCFILE.当有多个表 join 时,使用 ORCFile 进行存储,会显著地提高速度. CREATE ...

  9. 验证码(captcha)的由来

    如果您允许用户在您的网站上发表内容,如留下评论和创建用户配置文件,那么您可能会看到,垃圾留言散播者试图利用这些渠道来给他们自己的网站创造流量.在您的网站上出现这类垃圾留言,对任何人来说都不愉快.用户可 ...

  10. 最短路【洛谷P1841】 [JSOI2007]重要的城市

    P1841 [JSOI2007]重要的城市 题目描述 参加jsoi冬令营的同学最近发现,由于南航校内修路截断了原来通向计算中心的路,导致去的路程比原先增加了近一公里.而食堂门前施工虽然也截断了原来通向 ...