์ ๋ํฐ 2D์์ ์บ๋ฆญํฐ์ด๋์ ํ๋ฉด ์๊ฐ์ด๋ ํ๋ฏ์ด ์ฌ์ฌ์ญํ๋ ์ ๋๋ฉ์ด์ (Move ์ ๋๋ฉ์ด์ )์ ์ถ๊ฐํ๋๋ฐ
anim.SetBool("isMove", isMove)๋ฅผ ์จ์
isMove๊ฐ true์ผ๋ Move ๋์ค๊ณ ๋ค์ Idle์ํ๋ก ๋์๊ฐ๋ ์ฝ๋๋ฅผ ์งฐ๋๋ฐ
Debug.Log๋ฅผ ์ฐ์ผ๋ฉด isMove๊ฐ true๋ก ๋ฐ๋๋๊ฒ ๋์ค๋๋ฐ ์ ์ ์ ๋๋ฉ์ด์ ์ด ์คํ์ด ์๋ฉ๋๋ค.
์ ๋๋ฉ์ดํฐ์์๋ ํธ๋์ง์ ์ค์ ํ๋๋ฐ ๋ณํ๋ ์๋๊ณ ์;;;
๊ฐ๋จํ๊ฒ ์๊ฐํ๋๋ฐ ์ฌ๊ธฐ์ ๋งํ๋๊น ๋๋ต๋ตํฉ๋๋ค;;
์ฐธ๊ณ ๋ก ํธ๋ฆฌ๊ฑฐ๋ก๋ ํด๋ดค๋๋ฐ ์๋๊ตฌ์;;;
ํน์ ๋ชฐ๋ผ ์ฝ๋๋ ๊ฐ์ด ์ฌ๋ฆฝ๋๋ค.
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
public class Player : MonoBehaviour
{
ย ย [SerializeField] Tile onTile;
ย ย [SerializeField] bool isLeft;
ย ย [SerializeField] Enemy target;
ย ย [SerializeField] Object attackBar;
ย ย [Header("PlayerInfo")]
ย ย [SerializeField] int maxHp;
ย ย [SerializeField] float attackPower;
ย ย [SerializeField] float attackRange;
ย ย [SerializeField] float moveSpeed;
ย ย Animator anim;
ย ย SpriteRenderer spriteRenderer;
ย ย bool isThere;
ย ย bool isMove;
ย ย int hp;
ย ย private void Start()
ย ย {
ย ย ย ย anim = GetComponent<Animator>();
ย ย ย ย spriteRenderer = GetComponent<SpriteRenderer>();
ย ย ย ย transform.position = onTile.GetPosition(isLeft);
ย ย ย ย hp = maxHp;
ย ย }
ย ย private void Update()
ย ย {
ย ย ย ย Debug.Log(onTile.name);
ย ย ย ย Flipx(isThere);
ย ย ย ย Attack();
ย ย ย ย anim.SetBool("isMove", isMove);
ย ย ย ย Move();
ย ย ย ย Debug.Log(isMove);
ย ย ย ย isMove = false;
ย ย }
ย ย public void Move()
ย ย {
ย ย ย ย if (Input.GetKeyDown(KeyCode.LeftArrow))
ย ย ย ย ย ย Movement(DIRECTION.Left);
ย ย ย ย if (Input.GetKeyDown(KeyCode.RightArrow))
ย ย ย ย ย ย Movement(DIRECTION.Right);
ย ย ย ย if (Input.GetKeyDown(KeyCode.UpArrow))
ย ย ย ย ย ย Movement(DIRECTION.Up);
ย ย ย ย if (Input.GetKeyDown(KeyCode.DownArrow))
ย ย ย ย ย ย Movement(DIRECTION.Down);
ย ย }
ย ย public void Movement(DIRECTION dir)
ย ย {
ย ย ย ย Tile nextTile = onTile.Move(isLeft, dir);
ย ย ย ย if (nextTile == null)
ย ย ย ย ย ย return;
ย ย ย ย transform.position = nextTile.GetPosition(isLeft);
ย ย ย ย onTile = nextTile;
ย ย ย ย isMove = true;ย
ย ย }
๊ฒํค๋ก ํด์ผํ๋๊ฑฐ ์๋? ๊ฒํค๋ค์ด์ 1ํ๋ ์๋ง ์คํ๋ ํ ๋ฐ
False์๋ ์กฐ๊ฑด์ ๋ฌ์์ผํ ๋ฏ ์บ๋ฆญํฐ ์ด๋์ค์ธ ๋์์๋ ์๋จ๊ฒ
์ด๋์ ํ์ผ ํ์นธํ์นธ ์์ง์ด๋ ๊ฒ์์ ๋ง๋ค๊ณ ์์ด์ GetKey๋ก ํ๋ฉด ๋์์ ๋์ผ๋ก ๊ฐ๋๋ผ๊ณ ์ ใ ใ ;;
๊ทธ๋ผ movement ํจ์ ๋งจ ์์ isMove=falseํ๋ฉด ์๋จ?
์กฐ์ธ๊ฐ์ฌํฉ๋๋ค! ์์ฉํด์ Move()ํจ์ ๋งจ์์ค์ isMove=false ๋ฃ๊ณ , Movementํจ์ ๋งจ ๋ฐ์ค์ isMove=true ๋ฃ์ผ๋๊น ์๋ฉ๋๋ค! ๊ฐ์ฌํฉ๋๋ค!
Move์์ Idle๋ก ๊ฐ๋ ํธ๋์ง์ ๋ ์กฐ๊ฑด์ true๋ก ํ๊ฑฐ ์๋?
์๋ ๊ทธ๋ฅ anim.SetBool("isMove", isMove);๋ฅผ Move();์๋์ ์ฐ์
์กฐ๊ฑด์ ์ด์์์์ต๋๋ค! ์์์ด ๋ฌธ์ ์๋๊ฑฐ๊ฐ์ต๋๋ค;;; ์ ์ ๋๊ธ ์กฐ์ธ๋ง๊ณ ๋ง์๋๋ก ์์ ๋ฐ๊ฟ๋ณด๋ ์๋ฉ๋๋คใทใท ๋์ ๊ฐ์ฌํฉ๋๋ค!