ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:17.49KB ,
资源ID:24349784      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24349784.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(unity3D游戏开发之详解Animation类和Animator类.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

unity3D游戏开发之详解Animation类和Animator类.docx

1、unity3D游戏开发之详解Animation类和Animator类详解Animation类和Animator类Animation类animation组件用于播放动画。可以指定动画剪辑到动画组件并从脚本控制动画播放。在Unity的动画系统基于权重并且支持动画融合,叠加动画,动画混合,标签和完全控制动画播放的各个方面。如果想播放一个简单的动画,可以使用Animation.Play;如果想在动画之间交叉淡入,可以使用Animation.CrossFade;如果想改变动画模式(循环,一次,乒乓),可以改变动画导入设置里面的动画帧的WrapMode,或者在运行时改变AnimationState.wra

2、pMode的值;AnimationState可以用于改变动画的层,修改播放速度,并且直接控制融合与混合。动画也支持枚举,所以你可以像这样在AnimationStates之间循环【狗刨学习网】:/使这个角色的所有动画的播放速度降为一半for(varstate:AnimationStateinanimation)state.speed=0.5;Variables变量clip默认的动画剪辑。playAutomatically是否在开始的时候自动播放默认的动画wrapMode动画剪辑播放完成之后,应该如何操作isPlaying是否在播放任何动画?thisstringname返回名称为name的动画状态

3、。animatePhysics如果打开这个选项,动画会在物理循环过程中被执行。这个选项只有在结合运动学刚体的时候才有用。animateOnlyIfVisible如果打开这个选项,Unity可能在它认为用户不会看到当前动画的时候停止播放。cullingType控制动画组件的消隐。localBounds在本地坐标空间这个动画的动画组件的AABB。Functions函数Stop停止所有当前Animation正在播放的动画。Rewind倒播名称为name的动画。Sample在当前状态对动画进行采样。IsPlaying名为name的动画正在播放吗?Play没有任何混合的播放动画。CrossFade在一定

4、时间内淡入名称为name的动画并且淡出其他动画。Blend在接下来的几秒内混合名称为name的动画直到targetWeightCrossFadeQueued在前一个动画播放完成之后淡入淡出下一个动画。PlayQueued在前一个动画播放完成之后直接播放下一个动画。AddClip给动画添加一个名称为newName的动画剪辑。RemoveClip从动画列表移除剪辑。GetClipCount取得当前动画的动画剪辑数量。SyncLayer同步某层的动画的播放速度。Animator类Mecanim动画系统中,通过Animator组件来控制动画的播放,设置和获取动画中的参数。变量isHuman是否为人形动

5、画。Humanoid则返回true。Generic则返回false。humanScale人形动画Avatar缩放倍数。(generic默认返回1)deltaPosition相对于上一帧Avatar位置变化量。deltaRotation相对于上一帧Avatar旋转(朝向)变化量。rootPosition根节点(gameObject)位置。rootRotation根节点(gameObject)朝向。applyRootMotion根节点受动画(animations)控制。animatePhysics如果为true,动画在物理循环中播放.仅用来和动力学刚体(kinematicrigidbodies)交

6、互。gravityWeight重力值,取决于当前播放的动画。bodyPosition重心位置。bodyRotation重心方向。stabilizeFeet动画切换和混合时自动对齐脚layerCount动画控制器(AnimatorController)层数。feetPivotActive脚底轴心权值.为0%表示轴心在重心,为100%轴心在脚底。pivotWeight轴心权值;pivotPosition轴心当前位置。isMatchingTarget是否自动匹配。speed播放速度。(1表示未缩放)。targetPosition目标点位置通过SetTarget()函数设置。targetRotatio

7、n目标点方向.通过SetTarget()设置。cullingMode裁剪模式.avatar获取和设置当前Avatar。layersAffectMassCenter附加层,影响重心。函数GetFloat获取一个浮点数类型的参数。SetFloat设置一个浮点数类型的参数。GetBool获取一个布尔类型的参数。SetBool设置一个布尔类型的参数。GetInteger获取一整数类型的参数。SetInteger设置一个整数类型的参数。GetVector获取一个向量类型的参数。SetVector设置一个向量类型的参数。GetQuaternion获取一个四元数类型的参数。SetQuaternion设置一个

8、四元数类型的参数。IsParameterControlledByCurve参数是否通过曲线控制。GetIKPosition得到反向动力学的目标点位置。SetIKPosition设置反向动力学的目标点位置。GetIKRotation获取反向动力学目标点的方向。SetIKRotation设置反向动力学的目标点方向。GetIKPositionWeight得到反向动力学位移权重。(0表示原始位置。1表示反向动力学目标位置)SetIKPositionWeight设置反向动力学位移权重。GetIKRotationWeight得到反向动力学方向权重。SetIKRotationWeight设置反向动力学方向权

9、重。SetLookAtPosition设置观察方向(z轴正方向)。SetLookAtWeight设观察点方向权重。GetLayerName得到层的名称。GetLayerWeight得到层的当前权重。SetLayerWeight设置层的当前权重。GetCurrentAnimatorStateInfo获取当前动画控制器当前状态信息。GetNextAnimatorStateInfo得到当前动画控制器的下一个状态信息。GetAnimatorTransitionInfo得到指定动画控制器层上的转换信息。GetCurrentAnimationClipState得到当前动画剪辑的状态信息。GetNextAn

10、imationClipState获取下一个动画剪辑状态信息。IsInTransition是否正在进行状态切换MatchTarget自动对齐到目标位置和方向。InterruptMatchTarget中断自动对齐操作。ForceStateNormalizedTime设置归一化时间(到达目标点的时间)。SetTarget设置目标位置。IsControlledtransform属性是否受Animator控制。GetBoneTransform返回骨骼的Transform属性。动画播放和取样在3dsMax或者Maya中创建了一个每秒60帧的动画后,当导入进Unity,同样也是60帧的动画。然而游戏在运行的

11、时候,帧率却不是恒定不变的。在一些速度较快的PC上帧率会更快,帧率也会每一秒在摄像机与给出的任意一点上所看到复杂度不同。基本上这意味着我们可以不用当游戏运行的时候去假设确切的帧率。如果有一个60帧的动画,它应该是可以从不同的帧率上回放回来,比如56.18fps,或者87.61fps,可以是任何的点。Unity在不同帧率上的的采样动画,并不是它们真正的帧率。但是很幸运,3D电脑图形上的动画不是由分离的帧所组成的,而是连续的曲线。这些曲线对任何点的采样都是很适合的,不是光只是在时间轴上原始帧的那些点。这意味着游戏在运行的时候,在比较高的帧率上,动画效果看起来会更平滑和流畅。在大多数练习的情况下,事

12、实上Unity采样动画在这些可变的帧率上并不是你想像中还需要去做连接的。然而,如果你有一个在游戏逻辑上要去判断控制动画的坐标属性,那就得注意了。举个例子,如果你有一个30帧的动画是来旋转一个对象从0-180度,你想知道当代码何时进行到当动画进行到一半的时候即90度,不应该去添加一个条件语句来判断现在对象的旋转是不是已经进行到了90度。因为Unity的动画采样是依照游戏不同的帧率来进行的,当旋转在90度以下的时候就该判断了,等到90度的时候就刚好。如果你需要知道何时动画中一个指定点的时候,应该去用AnimationEvent代替。要注意在可变帧率上的因果关系,一个回放动画要用WrapMode.Once是不可能为一个上一帧的准确时间来采样的。在游戏的动画帧上可以在动画播放后去采样,在下一个帧上的时间上就有多余动画长度,所以就关闭也不会去采样。如果你真的需要上一帧的动画去做采样,就需要WrapMode.ClampForever.这样动画就会正常保持上一帧的采样直到你要停止播放动画。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1