KDT/유니티 심화
23/08/31 Input System 연습
잰쟁
2023. 8. 31. 18:07
728x90
4가지 방법 중에 send message 방법이 간단하고 좋은 것 같아서 그 방식으로 해보았다!
WarriorController
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public class WarriorController : MonoBehaviour
{
private Animator anim;
private new Transform transform;
private Vector3 moveDir;
private void Start()
{
this.anim = this.GetComponent<Animator>();
this.transform = this.GetComponent<Transform>();
}
private void Update()
{
if(moveDir != Vector3.zero)
{
//진행방향으로 회전
this.transform.rotation = Quaternion.LookRotation(moveDir);
//전진 방향으로 이동
this.transform.Translate(Vector3.forward * Time.deltaTime * 4.0f);
}
else
{
this.anim.SetInteger("Move", 0);
}
}
//이동
private void OnMove(InputValue value)
{
Vector2 dir = value.Get<Vector2>();
//Debug.Log(dir);
//2차원 좌표를 3차원으로 변환
this.moveDir = new Vector3(dir.x, 0, dir.y);
//애니메이션
this.anim.SetInteger("Move",1);
Debug.LogFormat("moveDir : {0}", moveDir);
}
//공격
private void OnAttack()
{
this.anim.SetTrigger("Attack");
Debug.Log("Attack");
}
}