Tanoda
SetAnimatorParam.cs
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright (C) Ultraleap, Inc. 2011-2020. *
3 * *
4 * Use subject to the terms of the Apache License 2.0 available at *
5 * http://www.apache.org/licenses/LICENSE-2.0, or another agreement *
6 * between Ultraleap and you, your company or other organization. *
7 ******************************************************************************/
8
9using UnityEngine;
10
11public class SetAnimatorParam : MonoBehaviour {
12
13 #pragma warning disable 0649
14 [SerializeField]
15 private Animator _animator;
16
17 [SerializeField]
18 private bool _revertOnDisable = true;
19
20 [SerializeField]
21 private AnimatorControllerParameterType _type = AnimatorControllerParameterType.Float;
22
23 [SerializeField]
24 private string _paramName;
25
26 [SerializeField]
27 private bool _boolValue;
28
29 [SerializeField]
30 private int _intValue;
31
32 [SerializeField]
33 private float _floatValue;
34 #pragma warning restore 0649
35
36 private object _defaultValue;
37
38 private void Awake() {
39 switch (_type) {
40 case AnimatorControllerParameterType.Bool:
41 _defaultValue = _animator.GetBool(_paramName);
42 break;
43 case AnimatorControllerParameterType.Int:
44 _defaultValue = _animator.GetInteger(_paramName);
45 break;
46 case AnimatorControllerParameterType.Float:
47 _defaultValue = _animator.GetFloat(_paramName);
48 break;
49 }
50 }
51
52 private void OnEnable() {
53 switch (_type) {
54 case AnimatorControllerParameterType.Bool:
55 _animator.SetBool(_paramName, _boolValue);
56 break;
57 case AnimatorControllerParameterType.Int:
58 _animator.SetInteger(_paramName, _intValue);
59 break;
60 case AnimatorControllerParameterType.Float:
61 _animator.SetFloat(_paramName, _floatValue);
62 break;
63 case AnimatorControllerParameterType.Trigger:
64 _animator.SetTrigger(_paramName);
65 break;
66 }
67 }
68
69 private void OnDisable() {
70 if (_revertOnDisable) {
71 switch (_type) {
72 case AnimatorControllerParameterType.Bool:
73 _animator.SetBool(_paramName, (bool)_defaultValue);
74 break;
75 case AnimatorControllerParameterType.Int:
76 _animator.SetInteger(_paramName, (int)_defaultValue);
77 break;
78 case AnimatorControllerParameterType.Float:
79 _animator.SetFloat(_paramName, (float)_defaultValue);
80 break;
81 case AnimatorControllerParameterType.Trigger:
82 _animator.ResetTrigger(_paramName);
83 break;
84 }
85 }
86 }
87}