目标匹配

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

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

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<Animator>();
	}

	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 简介

Page last updated: 2013-06-24