[Unity]Animator

박호준·2022년 2월 12일
0

Unity

목록 보기
8/17
  • Animiation을 효율적으로 관리

  • window -> animation -> animator

    1. MakeTransition : 다리 연결
    1. 화살표 클릭, condition처리 (parameter)
  • 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);
    }
}
  • BrendTree 이용하기
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);

    }
}
profile
hopark

0개의 댓글