public void ButtonClick(string type)
{
if (!flag)
{
flag = true;
startTime = Time.time;
if (type == "L")
{
StartCoroutine(Move("L"));
animator.SetFloat("dirX", -1);
animator.SetFloat("dirY", 0);
}
else if (type == "R" && rightflag == 1)
{
StartCoroutine(Move("R"));
animator.SetFloat("dirY", 0);
animator.SetFloat("dirX", 1);
}
else if (type == "U")
{
StartCoroutine(Move("U"));
animator.SetFloat("dirX", 0);
animator.SetFloat("dirY", 1);
}
else if (type == "D")
{
StartCoroutine(Move("D"));
animator.SetFloat("dirX", 0);
animator.SetFloat("dirY", -1);
}
}
}
private void OnTriggerEnter2D(Collider2D other)
{
rightflag = 0;
}
첫번째 함수는 클릭시 상하좌우로 이동하는 함수입니다. 이때 어떤 물체와 충돌시 rightflag 를 0으로 바꾸어 오른쪽으로 이동하는 동작이 안되게 하려고 하는데
로그를 찍어보면 충돌이 발생하고 Ontrigger 함수안에서는 rightflag 값이 바뀌는데 실제로 클릭을하면 rightflag 값이 1이어서 오른쪽으로 이동이 됩니다.
뭐때문에 이런거죠?
rightflag를 어딘가에서 값변경이 이러나는게 아닌지 확인해보세요. 아니면 첫번째 함수안에 debug.log(rightflag .tostring)찍어서 값이 변경되는지도 확인해보세요.
거기서 값이 안바뀌는데 이스크립트가 각 화살표 4개의 버튼에 붙어있느데 이게 문제가 되나요? 각 버튼이 클릭될때 스크립트가 각각 새로 생성되는건지..
엇 마침 static 선언하고 되는거 확인했는데 답변 감사합니다!! :)
뭔가 잘못 답변한거같아 수정할라했는데 됐다하니 ㅅㄱ