目标匹配 Target Matchin avator

目标匹配 Target Matchin

0
在游戏中,有一种情况经常发生,就是在某个时刻你需要某个角色的手或者脚到达某个特定位置。比如说,某个角色需要在跳过踏板的时候抓住头顶上的某个横梁。
你可以用Animator.MatchTarget函数来解决这种情况。比如说,你有一个叫做“跳跃起来”(jump up)希望处理一个角色跳到平台上的情况时,你可以尝试下面的做法:
找到角色在动画剪辑中跳起时刻的位置。注:在这个例子中(这个位置是)画片段标准时间的0.141或者总动画时间的14.1%。
找到角色在动画剪辑中叫着地的位置。注:这个例子中(这个位置的)值是78.0%或者0.78。
建立一个名为(TargetCtrl.cs)的脚本,这个脚本产生一个MatchTarget函数调用,就像这样:
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模型上。
这个脚本将会移动角色,这样他就能从正确的位置起跳,并且他的左腿会落在目标点上。记住:目标匹配通常只有在游戏运行的正确位置调用才会生效。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值