Unity3d之Animation(动画系统)

本文详细介绍了Unity中的动画系统配置及代码控制方法。首先通过界面配置动画,并调整关键帧属性;其次,利用C#脚本控制动画播放、停止及平滑过渡,提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,动画系统配置,2,代码控制动画

原文地址: http://blog.youkuaiyun.com/dingkun520wy/article/details/51247487

1,动画系统配置

创建游戏对象并添加Animation组件,然后将动画文件拖入组件。


进入动画文件的Debug属性面板


选中Legacy属性



选中游戏对象,打开Animation编辑窗口


添加动画变化属性


需改关键帧的属性值


配置完成后运行即可得到动画效果


2,代码控制动画

Play("ation 1" );,播放动画,传入参数为动画名字

Stop("ation 1") ,停止动画,传入参数为动画名字

CrossFade("ation 1", 0.5f); ,有过度的切换动画,传入参数(动画名字,过度时间)


实例代码

[csharp] view plain copy 在CODE上查看代码片派生到我的代码片

  1. using UnityEngine;  

  2. using System.Collections;  

  3.   

  4. public class NewBehaviourScript : MonoBehaviour {  

  5.        

  6.     Animation m_anim;  

  7.     private float scaleW = 1.0f;        //宽度缩放比  

  8.     private float scaleH = 1.0f;        //高度缩放比  

  9.     // Use this for initialization  

  10.     void Start () {  

  11.         //获取动画组件  

  12.         m_anim = GetComponent<Animation>();  

  13.         if (!m_anim.isPlaying)  

  14.         {  

  15.             //若没有动画播放,默认播放New Animation 1动画  

  16.             m_anim.CrossFade("ation 1", 0.2f);  

  17.         }  

  18.     }  

  19.       

  20.     // Update is called once per frame  

  21.     void Update () {  

  22.         scaleW = (float)Screen.width / 800;     //计算宽度缩放比  

  23.         scaleH = (float)Screen.height / 480;    //计算高度缩放比  

  24.     }  

  25.     void OnGUI()  

  26.     {  

  27.         GUI.skin.button.fontSize = (int)(25 * scaleW);        //调整按钮字体大小  

  28.   

  29.         if (GUI.Button(new Rect(70 * scaleW, 50 * scaleH, 90 * scaleW, 40 * scaleH), "ation 1"))  

  30.         {  

  31.             m_anim.Play("ation 1" );  

  32.         }   

  33.         if (GUI.Button(new Rect(70 * scaleW, 110 * scaleH, 90 * scaleW, 40 * scaleH), "imation"))  

  34.         {  

  35.             m_anim.Play("imation");  

  36.         }  

  37.         if (GUI.Button(new Rect(70 * scaleW, 170 * scaleH, 220 * scaleW, 40 * scaleH), "有过度播放ation 1"))  

  38.         {  

  39.             m_anim.CrossFade("ation 1", 0.5f);  

  40.         }  

  41.         if (GUI.Button(new Rect(70 * scaleW, 230 * scaleH, 220 * scaleW, 40 * scaleH), "有过度播放imation"))  

  42.         {  

  43.             m_anim.CrossFade("imation", 0.5f);  

  44.         }  

  45.           

  46.     }  

  47. }  


将代码添加到游戏对象,运行游戏。


 


转载于:https://my.oschina.net/igames/blog/668606

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值