반응형
✔ Unity Animation
유니티 애니메이션 컨트롤, 유니티 거꾸로 재생
매번 애니메이션을 생성하고 버튼에 등록하기 번거로워 제작..
[AnimationControl.cs]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public static class AnimationControl
{
public delegate void AnimationButtonRegitEvent(Animation ani, Button button);
public delegate void AnimationToggleRegitEvent(Animation ani, Toggle toggle);
public static AnimationButtonRegitEvent ButtonRegit;
public static AnimationToggleRegitEvent ToggleRegit;
static AnimationControl()
{
ButtonRegit += AnimationButtonRegit;
ToggleRegit += AnimationToggleRegit;
}
public static void AnimationButtonRegit(Animation ani, Button button)
{
button.onClick.AddListener(() => AnimationPlay(ani));
}
public static void AnimationToggleRegit(Animation ani, Toggle toggle)
{
toggle.onValueChanged.AddListener((value) =>
{
AnimationPlayAndBack(ani, value);
});
}
public static void AnimationPlay(Animation ani)
{
ani.Play();
}
public static void AnimationPlayAndBack(Animation ani, bool isOn)
{
// 애니메이션 정상 재생
if (isOn)
{
ani[ani.clip.name].time = 0;
ani[ani.clip.name].speed = 1;
ani.Play();
}
// 애니메이션 거꾸로 재생
else
{
ani[ani.clip.name].time = ani[ani.clip.name].length;
ani[ani.clip.name].speed = -1;
ani.Play();
}
}
}
============================================================================AnimationControl.cs 는 토글과 버튼에 이벤트를 등록하는 함수를 포함하고 있습니다.
버튼 => 애니메이션 플레이 등록
토글 => 애니메이션 플레이 , 거꾸로 플레이 등록
필요하시면 등록 수정해서 사용하시면 됩니다.
AnimationButtonRegit => 버튼에 클릭이벤트에 해당 애니메이션 재생을 등록함.
AnimationToggleRegit => 토글 버튼에 해당 애니메이션을 등록( true : 재생 , false : 거꾸로 재생 )
아래 간단 예제 파일 입니다. 스크립트를 붙여서 토글과 애니메이션을 드래그 해서 넣어주면 알아서 등록됨..
[AnimationEventHandle.cs]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AnimationEventHandle : MonoBehaviour {
public Toggle [] toggles;
public Animation[] animations;
// Use this for initialization
void Start () {
for (int i = 0; i < toggles.Length; i++)
{
AnimationControl.ToggleRegit(animations[i], toggles[i]);
}
}
}
반응형
'Programming > Unity' 카테고리의 다른 글
[Unity] 유니티에서 Thread 사용 - UI 데이터 처리 (167) | 2019.09.27 |
---|---|
[Unity] 유니티 달력 패키지 - Calendar (8) | 2019.08.29 |
[Unity] entryPointNotFoundException: CreateNLSocket - 해결 (2) | 2019.08.28 |
[Unity] 유니티 팝업 윈도우 - Popup (34) | 2019.08.27 |
[Unity] 유니티 창 드래그 - 2D Image Drag Window (141) | 2019.08.27 |
댓글