Skip to content

Instantly share code, notes, and snippets.

@st0326s
Last active August 29, 2015 14:17
Show Gist options
  • Save st0326s/d9c047a5d534d52e7fca to your computer and use it in GitHub Desktop.
Save st0326s/d9c047a5d534d52e7fca to your computer and use it in GitHub Desktop.
Animationのタイムラインからメソッドを呼ぶ一連の流れ ref: http://qiita.com/satotin/items/da7a3a5611b8676872f5
using UnityEngine;
using System.Collections;
public class TestAnimationMethod : MonoBehaviour {
private GameObject ParticleObject;
private Animator animator;
private int _plusVal = 0;
private float _blendTreeVal = 0.0f;
public void EndAnimationMethod()
{
// アニメーション状態を取得
AnimatorStateInfo state = GetComponent<Animator>().GetCurrentAnimatorStateInfo(0);
// パーティクルを取得
ParticleSystem particle = ParticleObject.GetComponent<ParticleSystem>();
Debug.Log("アニメーションから呼ばれました");
// Random クラスの新しいインスタンスを生成する
// 0.0 以上 1.0 以下の乱数を取得する
float redcolor = Random.Range(0.0f, 1.0f);
float greencolor = Random.Range(0.0f, 1.0f);
float bluecolor = Random.Range(0.0f, 1.0f);
particle.startColor = new Color(redcolor, greencolor, bluecolor);
// パーティクルをスタート
particle.Play();
// ステータス状態はIdleか?
if(state.IsName("Idle") == true)
{
Debug.Log("Idle");
}
// ステータス状態はTestAnimeか?
else if (state.IsName("TestAnime") == true)
{
Debug.Log("TestAnime");
}
// ステータス状態はSetValueか?
else if (state.IsName("SetValue") == true)
{
Debug.Log("SetValue");
}
else
{
Debug.Log("Not Exist");
}
// tag1か?
if (state.IsTag("tag1") == true)
{
Debug.Log("tag1");
}
// tag2か?
else if (state.IsTag("tag2") == true)
{
Debug.Log("tag2");
}
// tag3か?
else if (state.IsTag("tag3") == true)
{
Debug.Log("tag3");
}
else
{
Debug.Log("tag Not Exist");
}
}
// Use this for initialization
void Start()
{
animator = GetComponent<Animator>();
// アニメーションをTrueにする。
//animator.enabled = true;
}
// Update is called once per frame
void Update()
{
// 上矢印が押されている間だけテストアニメが実行される。
if (Input.GetKey(KeyCode.UpArrow))
{
animator.SetBool("GoTestAnime", true);
_plusVal++;
animator.SetInteger("SetText", _plusVal);
}
// 下矢印が押されている間だけBlendTreeが実行される。
else if (Input.GetKey(KeyCode.DownArrow))
{
_blendTreeVal = _blendTreeVal + 0.05f;
animator.SetFloat("BlendVal1", _blendTreeVal);
}
// 上矢印が押されていない間は動作なし
else
{
if (_plusVal > 1000)
{
animator.SetBool("GoTestAnime", false);
_plusVal = 0;
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment