查看: 1361|回复: 0
打印 上一主题 下一主题

Unity3D脚本中文教程2.1

[复制链接]

1602

主题

1

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
24658
精华
6

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2012-5-14 14:36:33 |只看该作者 |倒序浏览
二、 运行时类

AnimationCurve



动画曲线,在给定的时间添加关键帧并确定曲线。

变量

◆  var keys : Keyframe[]

描述:定义在动画曲线中的所有键。这让你从数组中清理,添加或移除键。

如果键没有按照时间顺序,它们会在赋值的时候自动排序。

◆  var length : int

描述:曲线中键的数量(只读)。

◆  var preWrapMode : WrapMode

描述:第一帧之前动画的行为。

◆  var this[index : int] : Keyframe

描述:取向索引为index的键(只读)。

构造函数

◆  static function AnimationCurve(params keys : Keyframe[]) : AnimationCurve

描述:从任意数量的关键帧创建一个动画曲线。

该函数从可变数量的Keyframe参数创建一个曲线,如果你想从一个关键帧数组中创建一个曲线,创建一个空的曲线并指定keys属性。

//一个慢退慢出的动画曲线(切线都是平的)。

var curve = new AnimationCurve(Keyframe(0, 0), Keyframe(1, 1);

function Update ()

{

transform.position.x = Time.time;

transform.position.y = curve.Evaluate(Time.time);

}

◆  static function AnimationCurve () : AnimationCurve

描述:创建一个空的动画曲线

函数

◆  function AddKey (time : float, value : float) : int

描述:添加一个新的键到曲线。

平滑切线将被自动为该键的计算,返回该键的索引,如果因为在同一时间上已经有另一个关键帧而不能添加键,将返回-1。

◆  function AddKey (key : Keyframe) : int

描述:添加一个新的键到曲线。

返回该键的索引,如果因为在同一时间上已经有另一个关键帧而不能添加键,将返回-1。

◆  function Evaluate (time : float) : float

描述:该动画曲线在time的值。

◆  function MoveKey (index : int, key : Keyframe) : int

描述:移除index处的关键帧并插入键。

如果一个关键帧已经存在于key-time,老的关键帧位置时间key[index].time/将被用来替换,这对于在一个曲线编辑器中拖动关键帧是一个理想的行为,移动它后返回关键帧的索引。

◆  function RemoveKey (index : int) : void

描述:移除一个键

◆  function SmoothTangents (index : int, weight : float) : void

描述:平滑位于index处的关键帧的进出切线。

权值为0时平均切线。

类方法

◆  static function EaseInOut (timeStart : float, valueStart : float, timeEnd : float, valueEnd : float) : AnimationCurve

描述:一个渐进渐出的曲线,开始于timeStart,valueStart并结束于timeEnd, valueEnd.

◆  static function Linear (timeStart : float, valueStart : float, timeEnd : float, valueEnd : float) : AnimationCurve

描述:一个直线,开始于timeStart,valueStart并结束于timeEnd, valueEnd.

AnimationEvent



AnimationEvent类似于SendMessage让你调用一个脚本函数,这个脚本是动画播放的一部分。

变量

◆  var animationState : AnimationState

描述:引发这个事件的动画状态。

当这个方法在动画事件回调之外被调用用时返回null。

◆  var date:string

描述:存储在动画剪辑中的字符串数据并将被发送到动画事件。

◆  var functionName : string

描述:被调用的函数的名称

这与调用gameObject.SendMessage(animationEvent.functionName,animationEvent)相同;

◆  var messageOptions :SendMessageOptions

描述:如果选项被设置为SendMessageOptions.RequireReceiver(缺省),当消息没有被任何组件接收时将打印一个错误消息。

◆  var time:float

描述:该事件被引发的时间。

构造函数

◆  static function AnimationEvent () : AnimationEvent

描述:创建一个新的动画事件

AnimationState



AnimationState完全控制动画混合。

在大多数情况下Animation接口就足够了,并且更容易使用。如果你需要完全控制动画播放过程中的混合时,使用AnimationState。

当动画播放时,AnimationState允许你修改速度,权值。时间和层。也可以设置动画合成和wrapMode

动画

变量

◆  var blendMode : AnimationBlendMode

描述:使用哪个混合模式?

// 设置leanLeft动画为附加混合

animation["leanLeft"].blendMode = AnimationBlendMode.Additive;

◆  var clip :AnimationClip

描述:该动画状态播放的剪辑。

// 打印动画剪辑的帧频到控制台

print(animation[“walk”]clio.frameRate);

◆  var enabled : bool

描述:启用/禁用动画

对于需要考虑任何影响的动画,权值需要设置成为一个大于零的值。如果动画被禁用,时间将暂停直到动画再次启用。

// 启用walk循环

animation["Walk"].enabled = ***e;

animation["Walk"].weight = 1.0;

◆  var layer : int

描述:动画的层。在计算混合权值时,位于较高层的动画将首先获得它们的权值。

只有较高层的动画没有使用完全全部权值时,较低层的动画才能接收混合权值。

// 放置walk***n动画在层1

animation["Walk"].layer = 1;

animation["Run"].layer = 1;

◆  var length : float

描述:动画剪辑的长度,以秒计。

// 打印Walk动画的长度

print (animation["Walk"].length);

◆  var name :string

描述:动画的名称。

◆  var normalizedSpeed : float

描述:归一化播放速度。

这最常用于混合两个动画时同步播放速度。在多数情况下使用animation.SyncLayer是更容易也更好

// 同***n和walk速度

animation["Run"].normalizedSpeed = animation["Walk"].speed;

◆  var normalizedTime : float

描述:动画的当前归一化时间。

1为动画的末端。 0.5为动画的中部。

// 快进到动画的中部

animation["Walk"].normalizedTime = 0.5;

◆  var speed : float

描述:动画的播放速度。1为正常播放速度。

负的播放速度将回放动画。

// 向后走

animation["Walk"].speed = -1.0;

// 以双倍速度行走

animation["Walk"].speed = 2;

◆  var time :float

描述:动画的当前时间

如果时间大于长度它将按照wrapMode回绕。该值可以大于动画的长度。看这种情况下播放模式将在采样前重映射时间。这个值从0到无穷。

// 回退walk动画

animation["Walk"].time = 0.0;

◆  var weight : float

描述:动画的权值

// 设置walk动画的混合权值为0.5

animation["Walk"].weight = 0.5;

◆  var wrapMode : WrapMode

描述:动画的回绕模式

默认的wrapMode被初始化为在Animation组件中设置的回绕模式值。

// 设置walk动画回绕模式为循环

animation["Walk"].wrapMode = WrapMode.Loop;

函数
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-6-13 16:00 , Processed in 0.075003 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部