在Unity中实现动画的正反播放代码

using UnityEngine;
using System.Collections;
public class AnimationAntiSowing : MonoBehaviour {
  public static AnimationAntiSowing _initialise;
  void Awake()
  {
    _initialise = this;
  }
  /// <summary>
  /// 动画进行正反播放
  /// </summary>
  /// <param name="gameObject">需要播放动画的物体</param>
  /// <param name="isZhengOrFan">动画的播放状态</param>
  /// <param name="animation">动画状态</param>
  /// <returns></returns>
  public bool isPositiveAndNegativePlay(GameObject gameObject,bool isZhengOrFan,AnimationState animation)
  {
    //判断传入的动画的播放状态
    //----传入的状态为true时,表示正常播放
    //----传入的状态为false时,表示动画播放完,可以进行反向播放
    if(!isZhengOrFan)
    {
      //当没有播放动画的时候,播放动画
      if(!gameObject.animation.isPlaying)
      {
        gameObject.animation.Play();
        //-----改变动画的播放状态-----
        //动画的当前时间置为初始
        animation.time = 0f;
        //动画的播放速度为正常速度
        animation.speed = 1.0f;
        //改变传入的bool变量的值
        isZhengOrFan = true;
      }
    }
    else
    {
      //当没有播放动画的时候,播放动画
      if (!gameObject.animation.isPlaying)
      {
        gameObject.animation.Play();
        //-----改变动画的播放状态-----
        //动画的当前时间置为动画的时长
        animation.time = animation.length;
        //向后走,即动画进行反向播放,从终点向起点播放
        animation.speed = -1.0f;
        //改变传入的bool变量的值
        isZhengOrFan = false;
      }
    }
    return isZhengOrFan;
  }
}

以上就是本文分享的全部内容了,希望大家能够喜欢。

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  在Unity中实现动画的正反播放代码

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23105.html

相关内容

C#设计模式之Template模板方法模式实现ASP.NET自定义控件 密码强度检测功能

C#多线程之Thread类详解

C#编程中使用设计模式中的原型模式的实例讲解

c#读写App.config,ConfigurationManager.AppSettings 不生效的解决方法


C#使用foreach语句搜索数组元素的方法

史上最简洁C# 生成条形码图片思路及示例分享

C#中WinForm程序退出方法技巧总结

C# .net实现货币转换示例

时间: 2024-10-05 04:43:44

在Unity中实现动画的正反播放代码的相关文章

android中Animation动画的连续播放与播放完毕后停留在最后的状态

我们做安卓应用的苦逼程序员们常常会需要用到Animation也就是动画.比如做地图功能的时候.我们在手机旋转时需要根据手机重力感应来调整地图的角度,让它上面的“北”一直指向地球的北面...好多人做动画的时候会遇到这么两个难题(我也曾经遇到过):1:动画执行完了一遍后又立刻恢复到了初始状态,或者动画只能不断循环动作.[问题:我想让动画动到某个位置或转到某个角度后停在那里,该如何做呢?]2:点击按钮一.动画从0度转到了10度,我再点击按钮二.需要动画从之前的10度位置再继续转到20度.再点击按钮三.

关于Unity中新版动画系统的使用

Mecanim动画 1:旧版动画系统只能通过代码来控制动画播放,随着动画种类变多,代码复杂度也会增加,同时动画过渡也需要非常繁琐的代码控制,为了让有经验的动画师开发动画,unity推出了针对人物角色的Mecanim动画系统;2:Mecanim支持运动重定向(Retargeting)功能,即把动画从一个角色模型应用到另一个角色模型;3: Mecanim允许使用"肌肉"来控制不同骨骼的运动范围;觉得某个动画太夸张的时候,可以用"肌肉"来限制一下.4: Mecanim动画

关于Unity中Mecanim动画的动画状态代码控制与代码生成动画控制器

对于多量的.复杂的.有规律的控制器使用代码生成 动画状态代码控制 1:每个动画状态,比如进入状态,离开状态, 等都有可能需要代码来参与和处理,比如,进入这个动画单元后做哪些事情,来开这个动画单元后做哪些事情,为了解决这个问题,unity允许每个动画单元来绑定一个脚本代码,这个脚本代码必须继承于StateMachineBehaviour;2: 可以在动画状态的Add Behaviour上添加挂载一个脚本到动画状态;3: StateMachineBehaviour主要接口: (1)OnStateEn

Unity中开场动画设置(二)

上一篇文章中对Unity中视频的播放设置是在PC端配置的 经过测试后发现并不能在手机端运行 因为在移动设备上我们需要使用另一种方式来播放视频 注意: 在移动端,unity并不提供MovieTexture,AVPro QuickTime也用不了,其最基本的显示方案使用通过 PlayFullScreenMovie ()函数进行全屏播放,根据其官网解释,主要有以下方面: (1)视频流直接从设备存储器中获得,所以文件只能是单独提供,视频文件放置在StreamingAssets 文件夹中 (2) 视频播放

神马都是浮云,unity中自己写Coroutine协程源代码

孙广东   2014.7.19 无意之间看到了,Unity维基上的一篇文章,  是关于自己写协程的介绍. 认为非常好,这样能更好的了解到协程的执行机制等特性.还是不错的. 原文链接地址例如以下: http://wiki.unity3d.com/index.php?title=CoroutineScheduler 项目地址:  http://download.csdn.net/detail/u010019717/8912069 详细的内容例如以下:        一个简单的协同调度程序. 这个协同

关于unity中spine动画切换时有残影或者动画播放不正确的解决方法

问题描述: 最近在用spine动画时发现,有时候角色在切换动画的时候会有残影,或者动画播放不正确,例如会丢失一部分节点,例如切换动画后角色虽然动画播放正常,但丢失了武器. 解决办法: 在unity编辑器下找到spine动画的SkeletonData文件,在Animationgs下面有一个"Setup Pos",这个按钮可以将骨骼(bones).资源槽(slots)或两者重置为装配动作(setup pose).它与调用`setBonesToSetupPose` 或 `setSlotsTo

unity5, 在unity中编辑动画

如图,dock是一个空gameObject,其下包含mouth_dn,mouth_up (应该叫lip_dn,lip_up更合适,这不是重点,先不改了),head,eye_left,eye_right等组成部分. 选中dock,然后打开animation窗口(菜单->Window->Animation).新建一个clip命名为speak,然后在其下点Add Property,可以看到能对dock下的所有组件编辑动画,这里我们对eye_left,eye_right,mouth_dn,mouth_

unity中遍历动画得到动画名字和动画数量

using UnityEngine;using System.Collections; public class AnimationsCount : MonoBehaviour { Animation anim; string[] animName; // Use this for initialization void Start () { anim = this.gameObject.GetComponent<Animation>(); int a = anim.GetClipCount(

Unity中开场动画设置

using System.Collections; public class Test: MonoBehaviour { // 电影纹理 public MovieTexture movTexture; void Start () { // 设置电影纹理播放模式为循环 movTexture.loop = false; movTexture.Play (); } void Update () { if (Input.GetMouseButtonDown (0)) { Debug.Log ("当点击屏