找回密码
 注册帐号

扫一扫,访问微社区

目标匹配

2015-1-8 18:22| 发布者: 杨炎| 查看: 1487| 评论: 0|原作者: 蛮牛|来自: unity3d脚本manual

摘要: 目标匹配在游戏中,常常会出现这样一种情形,角色必须在某个时间以一只手或脚停留在某个位置的方式移动。例如,角色可能需要跳过踏脚石或者跳起抓住头顶横梁。可使用animator.matchtarget 功能处理这种情况。例如, ...

目标匹配

游戏中,常常会出现这样一种情形,角色必须在某个时间以一只手或脚停留在某个位置的方式移动。例如,角色可能需要跳过踏脚石或者跳起抓住头顶横梁。

可使用animator.matchtarget 功能处理这种情况。例如,您希望设计一种情况(角色跳到平台上),且已针对该情况制作了名为跳起来 (jump up)的动画片段。为此,请遵循以下步骤。

在动画片段中找到角色开始离开地面的位置,请注意,在本例中,按标准化时间计算,动画片段中的位置值是 14.1% 或 0.141。

在动画片段中找到角色双脚将要落地的位置,请注意,在本例中,值为 78.0% 或 0.78。

创建一个将调用matchtarget的脚本 (targetctrl.cs),如下所示:

using unityengine;

using system;

[requirecomponent(typeof(animator))]

public class targetctrl :monobehaviour {

protected animator animator;

//the platform object in the scene

public transform jumptarget = null;

void start () {

animator = getcomponent();

}

void update () {

if(animator) {

if(input.getbutton("fire1"))

animator.matchtarget(jumptarget.position, jumptarget.rotation, avatartarget.leftfoot,

new matchtargetweightmask(vector3.one, 1f), 0.141f, 0.78f);

}

}

}

将该脚本附加到 mecanim 模型。

脚本将移动角色,这样角色就会从当前位置跳起,然后用左脚落在目标位置。请记住,使用 matchtarget 的结果通常只在它在游戏中的正确点被调用时才有意义。

(返回mecanim 简介)

相关阅读

文章点评
相关文章