Unity Animation.CrossFade Animation.Play
- 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的更多相关文章
- Unity 2D Skeletal Animation
本文记录在Unity中制作2D 骨骼动画的笔记 Unity版本:4.3 Uni2D 使用骨骼动画前,把Sprite Mesh 的Type 改为 Grid ,设置合适的骨骼数量和分配权重 1.选中创建好 ...
- Animation & Property Animation 使用
本篇主要讲Animation 和 Property Animation的使用,最后会讲QQ管家桌面火箭作为例子: 在Android中开发动效有两套框架可以使用,分别为 Animation 和 Prop ...
- Android动画总结#补间动画(Tween Animation/View Animation) #帧动画(Frame Animation/Drawable Animation)#属性动画(PropertyAnimation)
1.共有三种动画,英文名字多种叫法如下 第一种动画:补间动画(Tween Animation/View Animation) 四个:RotateAnimation旋转. AlphaAnimation透 ...
- unity, Animation crossfade需要两动画在时间上确实有交叠
unity现在播动画都用Animator了,但公司的老项用的还是Animation,今天遇到一个bug,是两个动画的衔接处不连贯. 最后发现是由于A动画已经播完之后B动画才开始播,而且还用了cross ...
- Unity 动画系统 Animation 和 Animator的小实例
本文结合一个很简单的动画demo,分别采用2种方法,来对比Animation和Animator的使用方式: 方法1:单独使用Animation 方法2:Animation结合Animator 动画De ...
- Unity 动画系统 Animation和Animator 常用小功能
- Unity 动画系统 Animation和Animator等常用类
- Unity 动画系统 Animation 和 Animator 联系与区别
- [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 ...
随机推荐
- deb包制作(转)
deb 包已被广泛应用但是也在不断的更新,这里介绍Ubuntu deb包安装设置使用,帮助大家安装更新Ubuntu deb包系统.制作Ubuntu deb包的三种方法 | Sean's Blog [转 ...
- url-pattern 的设置与匹配
- ConnectionState详解
ConnectionState有六个属性值ConnectionState.Broken;与数据源连接断开.只有在连接打开后才有可能发生这种情况.可以关闭处于这种状态下的连接,然后重新打开.Connec ...
- 【转】 PHP 两个日期(时间段) 之间的日期数组
在开发过程中会遇到这样一个需求:获取2018-11-02到2018-11-15之间的日期数组 希望得到如下数组: Array ( [] => -- [] => -- [] => -- ...
- sql开发技巧总结-1
1.数据库分类 关系型 非关系型 2.sql语句分类 sql: ddl数据库定义语言 tpl事物处理语言 dcl数据控制语言 dml数据操作语言(insert delete update sele ...
- Python——用socket和线程实现全双工收发数据
用socket和线程实现全双工收发数据 1.基础知识 Socket(套接字) 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.由此知道套接字是全双工的. 线程 ...
- BZOJ 3028: 食物
\(\color{#0066ff}{ 题目描述 }\) 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应 该带一些什么东西.理所当然的,你当然要帮 ...
- idea 新建maven项目没有src及其子目录问题
注意在这一步中,填写maven的本地地址还有手动修改settings地址非常重要!!! 如果你是第一次配置maven,少配置任何一个将导致你以后建立的mvn项目全部没有src目录!!! 解决办法就是卸 ...
- java 解决Hash(散列)冲突的四种方法--开放定址法(线性探测,二次探测,伪随机探测)、链地址法、再哈希、建立公共溢出区
java 解决Hash(散列)冲突的四种方法--开放定址法(线性探测,二次探测,伪随机探测).链地址法.再哈希.建立公共溢出区 标签: hashmaphashmap冲突解决冲突的方法冲突 2016-0 ...
- 【bzoj2935】[Poi1999]原始生物
2935: [Poi1999]原始生物 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 145 Solved: 71[Submit][Status][D ...