您的位置:首页 > 移动开发 > Unity3D

Unity 动画 Tag nameHash

2015-12-11 08:53 483 查看
using UnityEngine;

using System.Collections;

public class Test : MonoBehaviour {

Animator anim;

AnimatorStateInfo info;

int num_Parameter;

// Use this for initialization

void Start () {

anim = GetComponent<Animator> ();

num_Parameter = Animator.StringToHash("num_Parameter");

}

// Update is called once per frame

void Update () {

info = anim.GetCurrentAnimatorStateInfo (0);

//利用anim的Tag来确定此时正在执行的是哪一个动画

if (info.tagHash == Animator.StringToHash ("T")) {

print ("Test");

}

if (info.tagHash == Animator.StringToHash ("T1")) {

print ("Test1");

}

if (info.IsTag ("T")) {

print ("Test");

}

if (info.IsTag ("T1")) {

print ("T1");

}

//

//利用anim的名称来确定此时正在执行的是哪一个动画

if (info.nameHash == Animator.StringToHash ("Base Layer.Test")) {

print ("Test");

}

if (info.nameHash == Animator.StringToHash("Base Layer.Test1")) {

print ("Test1");

}

if (info.IsName ("Test")) {

print ("Test");

}

if (info.IsName ("Test1")) {

print ("Test1");

}

//

//num_Parameter = Animator.StringToHash("num_Parameter");

//利用动画参数的hash来确定动画的Transition

if (Input.GetMouseButtonDown (0)) {

if (info.IsName ("Test1")) {

anim.SetInteger(num_Parameter,0);

}

if(info.IsName("Test")){

anim.SetInteger(num_Parameter,1);

}

}

//利用动画参数的名称来确定动画的Transition

if (Input.GetMouseButtonDown (0)) {

if (info.IsName ("Test1")) {

anim.SetInteger("num_Parameter",0);

}

if(info.IsName("Test")){

anim.SetInteger("num_Parameter",1);

}

}

}

}







(其中 1 Test的tag是“T”,Test1的tag是“T1”

2 num_Parameter = 0时 Test1------》Test , num_Parameter
= 1时 Test------》Test1

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: