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);
}
}