Animiation을 효율적으로 관리
window -> animation -> animator
Parameters : 조건
Has Exit Time : 앞에 애니메이션을 기다려 줄 것인가
Transition Duration : 얼마나 자연스럽게 전환 (0 ~ 1)
Transition Offset : 언제부터 실행될것인지 (0 ~ 1)
Interruption Souce : 중단 조건
public class camera : MonoBehaviour
{
[SerializeField]
private GameObject go_Target;
private Camera theCame;
[SerializeField]
private float speed;
private Vector3 difValue;
void Start()
{
difValue = transform.position - go_Target.transform.position;
difValue = new Vector3(Mathf.Abs(difValue.x), Mathf.Abs(difValue.y), Mathf.Abs(difValue.z));
}
void Update()
{
this.transform.position = Vector3.Lerp(this.transform.position, go_Target.transform.position + difValue, speed);
}
}
public class animat : MonoBehaviour
{
// Start is called before the first frame update
private Animator anim;
[SerializeField] private float moveSpeed;
private bool isMove;
void Start()
{
anim = GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
float _dirX = Input.GetAxisRaw("Horizontal");
float _dirZ = Input.GetAxisRaw("Vertical");
Vector3 direction = new Vector3(_dirX, 0, _dirZ);
isMove = false;
if (direction != Vector3.zero)
{
isMove = true;
this.transform.Translate(direction.normalized * moveSpeed * Time.deltaTime);
}
anim.SetBool("Move", isMove);
anim.SetFloat("DirX", direction.x);
anim.SetFloat("DirY", direction.z);
}
}