Unity

[Animator] 애니메이션

kldaji 2021. 7. 14. 10:54
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Fighter : MonoBehaviour
{
    Animator mAvatar;

    void Start()
    {
        mAvatar = GetComponent<Animator>();
    }
    
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            mAvatar.SetTrigger("ATTACK");
        }

    }
}

 

<예제>

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Fighter : MonoBehaviour
{
    // Component
    Animator mAvatar;
    CharacterController characterController;

    // Speed
    public float speed = 2.0f;
    public float gravity = 20.0f;
    public float rotateSpeed = 20.0f;

    // Move Direction
    private Vector3 moveDirection = Vector3.zero;

    void Start()
    {
        // Get Component
        mAvatar = GetComponent<Animator>();
        characterController = GetComponent<CharacterController>();
    }
    
    void Update()
    {
        if (characterController.isGrounded)
        {
            moveDirection = new Vector3(0, 0, Input.GetAxis("Vertical")*speed*Time.deltaTime);
            moveDirection = transform.TransformDirection(moveDirection);
        }


        // 공격
        if (Input.GetKeyDown(KeyCode.LeftControl))
        {
            mAvatar.SetTrigger("ATTACK");
        }

        // 이동
        if (Input.GetKeyDown(KeyCode.UpArrow) || Input.GetKeyDown(KeyCode.DownArrow))
        {
            mAvatar.SetBool("WALK", true);
        }

        // 정지
        if (Input.GetKeyUp(KeyCode.UpArrow) || Input.GetKeyUp(KeyCode.DownArrow))
        {
            mAvatar.SetBool("WALK", false);
        }

        // Move
        characterController.Move(moveDirection);

        // Rotate 추가
        // transform.Rotate(0, Input.GetAxis("Horizontal") * rotateSpeed * Time.deltaTime, 0);
        
        // Rotate는 마우스로 처리하는게 훨씬 자연스럽다.
        transform.Rotate(-Input.GetAxis("Mouse Y"), Input.GetAxis("Mouse X"), 0);
    }
}