unity获得unity 当前动画名字播到多少秒

请问一下动画状态机怎么判断动画是否播完了?? - - 泰课在线 - 国内专业的Unity在线学习平台|Unity3d培训|Unity教程|Unity教程 Unreal 虚幻 AR|移动开发|美术CG|UI平面设计|前端开发 - Powered By EduSoho
2373个成员
创建时间:
3591 次查看
int actionID 默认0
idle -& attack 条件是:int actionID= 1;
attack -& idle 条件是: int actionID= 0;
我希望能每按完一次键,播放完一次攻击动画后 回复默认动画 可是我怎么调都调不对啊& 求大神们指点一下
attack -& idle 条件是: int actionID= 0;//这里的条件不需要设置,按照默认的exittime就可以了
可是这样就会循环播放这个动作呀
if (Input.GetMouseButtonDown (0)) {
anim.SetBool ("Hit", true);
anim.SetBool("Hit",false);
不按下鼠标,就不执行动画,这样行不?
mark一个助人先
谢谢 这个方法看起来不错~
这样是实现了恢复默认动画的功能,但是,当前动画还没有播放完毕就恢复默认动画了,要怎么解决????
回复 琳伯格L:使用trigger 播放完 跳转到idle
1. 脚本参考
AnimatorStateInfo.normalizedTime
float normalizedT
Description
Normalized time of the State.
The integer part is the number of time a state has been looped. The fractional part is the % (0-1) of progress in the current loop.
2. 代码如下:
void Start()
animator = this.GetComponent&Animator&();
void Update()
AnimatorStateInfo
info = animator.GetCurrentAnimatorStateInfo(0);
// 判断动画是否播放完成
if( info.normalizedTime &= 1.0f)
DoSomething();
我就是用得这种方法 = =
你还没有登录,请先或!
(大小不能超过2MB,文件类型支持png ,jpg ,gif ,doc ,xls ,txt ,rar ,zip .)
Unity3D技术交流1群
泰课Unity3D公开课
工作时间:9:00 - 18:30
北京客服:010 -
广州客服:020 -工具修订记录最近更改媒体管理器网站地图登录注册&
UnityEngine
UnityEngine.SceneManagement
场景管理类
script:unityengine:classes:animator:animator.getcurrentanimationclipstate
Animator.GetCurrentAnimationClipState 获取当前动画剪辑状态
JavaScript => GetCurrentAnimationClipState(layerIndex: int): AnimationInfo[];
C# => AnimationInfo[] GetCurrentAnimationClipState(int layerIndex);
Parameters 参数
layerIndexThe layer's index.
该层的索引。
Description 描述
Gets the list of AnimationInfo currently played by the current state.
获取当前状态播放的当前动画信息列表。unity开发,动画播放以及动画拼接播放 - 简书
unity开发,动画播放以及动画拼接播放
如需查看具体项目例子,可以去各大应用市场下载“萌萌鸡”app。体验功能!
Unity3D动画系统主要有两种:Animator和Animation. Animation Clip 动画剪辑 对于Animation Clip可以进行动画分割 对于每一个clip,在使用脚本来控制播放。
Unity3D支持多种格式模型,例如FBX、OBJ和MAX等导入模型之后,添加animation,会发现找不到动画记得 选择模型找到inspector,把animation Type设置为Legacy即可
Paste_Image.png
接下来就可以剪切动画了,Clips下面有+号就可以添加以及截取自己想要的片段了,和剪辑视频一样
Paste_Image.png
记得设置好了要保存,目录下,就多出来这几个Animation clips
Paste_Image.png
将模型添加到Target下面,选中模型添加add component
搜索Animation ,在animation里面element添加刚刚截取的动画就可以
Paste_Image.png
接下来就是书写代码了
using UnityE
using System.C
public class AnimateControl : MonoBehaviour {
// Use this for initialization
void Start () {
// Update is called once per frame
void Update () {
void OnGUI(){
if (GUI.Button (new Rect (0, 0, 100, 80),"左手动起来")) {
transform.animation.Play("fumo_left_hand");
if (GUI.Button (new Rect (0, 100, 100, 80),"右手动起来")) {
transform.animation.Play("fumo_right_hand");
if (GUI.Button (new Rect (0, 200, 100, 80),"左脚动起来")) {
transform.animation.Play("fumo_left_foot");
if (GUI.Button (new Rect (0, 300, 100, 80),"右脚动起来")) {
transform.animation.Play("fumo_right_foot");
把脚本绑定在模型上面,播放动画有2中方法
(1) transform.animation.Play("fumo_left_hand");//fumo_left_hand为动画的名字
(2) this.GetComponent&Animation&().Play("run");
如果不是脚本不是绑定在模型上面,那么按照目录去获取到模型
GameObject root = GameObject.Find("/imageTarget");
mHealthAnimationBian= root.transform.Find("HealthAnimationBian").gameO
//这样就能获取模型HealthAnimationBian
mHealthAnimationBian.transform.GetComponent&Animation&().Play("fumo_right_foot");
这个有play()方法,也可以用CrossFade()方法//play一个是直接插入播放,CrossFade另一个是混合淡入淡出~
接下来就是处理动画拼接播放
mHealthAnimationBian.GetComponent&Animation&().CrossFade("fumo_left_hand");//先播放这个动画
StartCoroutine(IntroduceVoice());
IEnumerator IntroduceVoice()
//播放fumo_left_hand的动画所需要的时间 为9秒,过后启动第二个动画
yield return new WaitForSeconds(9);
mHealthBaseAnimationDealPrefab.GetComponent&Animation& ().CrossFade ("fumo_right_hand");
yield关键字用于遍历循环中,yield return用于返回IEnumerable&T&,yield break用于终止循环遍历。StartCoroutine在unity3d的帮助中叫做协程,意思就是启动一个辅助的线程。当希望获取一个IEnumerable&T&类型的集合,而不想把数据一次性加载到内存,就可以考虑使用yield return实现"按需供给"。
可能有小伙伴遇到过unity模型在手机上面显示的模型有变形的效果,怎么处理?解决方案:模型中有一个normal 属性,设置calculate
就可以设置smoothing angle ,一般80-100
Paste_Image.png
动画复用的时候:有时候会出现没有动画效果,重启一下就好了,因为是复制的,可能没有及时刷新
unity3d 控制播放动画的速度:动画speed是AnimationState的参数用法:
//这是动画放慢一半速度
mHealthBaseAnimationDealPrefab.GetComponent&Animation& ()
["health_hudongshuohua"].speed=0.5f;//
微博:少年天蝎自己弄了很久都不知道怎么获取当前播放animation的时间_unity吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:19,329贴子:
自己弄了很久都不知道怎么获取当前播放animation的时间收藏
这里的playerAnimation和currentAnimationClip分别是用什么定义的
来火星时代学习unity,强大美术资源,多年游戏教学实力,20000家合作企业,毕业=就业,火星时代unity,业界精英一对一辅导,参与游戏实训项目,工作经验不再是零.
Animation animanim.GetClip(&动画的名字&).length就这样,之前一直在想这个问题都没有得到解答,刚刚无意间看到了这个
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或技能的动作播放,主要是个解决方案的问题。某个技能在播放的过程中哪个时间怎么动作,最主要是要触发什么操作,这个不是单单播放个动画就能解决的。-Unity3D-论坛-U3D在线
Unity3D在线
当前位置: ->
-> 技能的动作播放,主要是个解决方案的问题。某个技能在播放的过程中哪个时间怎么动作,最主要是要触发什么操作,这个不是单单播放个动画就能解决的。
Unity3D 论坛 > 技能的动作播放,主要是个解决方案的问题。某个技能在播放的过程中哪个时间怎么动作,最主要是要触发什么操作,这个不是单单播放个动画就能解决的。围观:484 | 回复:23
塔矢亮积分:24帖子:2
技能的动作播放,主要是个解决方案的问题。某个技能在播放的过程中哪个时间怎么动作,最主要是要触发什么操作,这个不是单单播放个动画就能解决的。
基因山小伯爵山本武积分:6帖子:0
还有是否有碰撞检测
三千院凪积分:18帖子:0
是在播放到某个帧,再播放技能效果吗
塔矢亮积分:24帖子:2
你思维没拓展开。
伊妮莉积分:2帖子:0
寻横版-安卓单机手游,国内外版本不限,包大小不限,CPS合作,资源丰富,有单机自研能力团队或公司也可以小窗我合作。欢迎大小CP加我合作。
塔矢亮积分:24帖子:2
暂且不考虑有碰撞检测的逻辑,一个技能播放可以考虑成一个时间轴,这个时间轴由谁来控制都可以,时间轴以时间计还是以帧计都无所谓,指定的时间要做什么事,触发什么操作的关键。比如一个挥刀砍人的技能,你要把刀举过头顶,这个时候或许要触发一个UI上的一个飞进来的特效名称,然后刀砍下去之后,要在合适的时间触发对方的掉血的效果,甚至还要控制对方的血怎么掉,比如说是一顿乱砍,掉血的红字要在每一次刀落下的时候掉冒一次。
基因山小伯爵山本武积分:6帖子:0
这些流程问题,思路清晰了还是比较容易的
三千院凪积分:18帖子:0
就是播放角色动作,在播放过程中,该触发效果时,才播放效果
塔矢亮积分:24帖子:2
每个技能在播放的时候时间轴上的逻辑都不一样
三千院凪积分:18帖子:0
绘硫积分:17帖子:1
我想一个问题
免责声明:本站所有内容来源于互联网,如果本站部分内容侵犯您的权益,请您告知,站长会立即处理
Copyright Unity3D在线 All Rights Reserved.Theme by U3dOL 备案:京ICP备号-4 |SiteMap |网站地图 |百度统计| 联系我们

我要回帖

更多关于 unity3d 骨骼动画 的文章

 

随机推荐