작품 감상하는 게임 개발 독학중인데
자유롭게 이동 가능하고 작품을 누르면 그 작품을 보기 적절한 위치로 날아감+위치 도착하면 정보,좌,우 이동 버튼 생성되게 해놨는데요.
좌우버튼 누르면 자연스럽게 옆으로 이동하면서 감상하는 느낌으로 할라했는데 이게 누르면 무조건 0번부터 시작하네요.
저는 3번작품 눌렀으면 오른쪽버튼 누르면 4번작품 왼쪽버튼 누르면 2번작품으로 가게하고싶은데 어려움이 큽니다.ㅜㅜ
응용은 위에꺼 보고 했고
일단 작동시키게 하려고 위치 도착하면 int ++되는거 말고 일일이 위치 특정시켜서 이동하게 했습니다. 근데 이게 문제가 작품수 늘어날때마다 코드를 수정해야하는 번거로움이 장난 아니어서 해결법 없을까 싶어 물어봐요!
//현재작품위치= 오른쪽버튼:+1/ 왼쪽버튼:-1
if (transform.position == artImage[0].transform.position)
{
artRightNum = 1;
artLeftNum = 3;
}
if (transform.position == artImage[1].transform.position)
{
artRightNum = 2;
artLeftNum = 0;
}
if (transform.position == artImage[2].transform.position)
{
artRightNum = 3;
artLeftNum = 1;
}
if (transform.position == artImage[3].transform.position)
{
artRightNum = 0;
artLeftNum = 2;
}
//오른쪽작품이동(작품추가시 스크립트 추가..)
if (onRightButton)
{
transform.position = Vector3.MoveTowards(transform.position, artImage[artRightNum].transform.position, movespeed * Time.deltaTime);
transform.rotation = Quaternion.RotateTowards(transform.rotation, artImage[artRightNum].transform.rotation, rotspeed * Time.deltaTime);
if (transform.position == artImage[0].transform.position)
{
Debug.Log("도착0");
artRightNum = 1;
onRightButton = false;
}
if (transform.position == artImage[1].transform.position)
{
Debug.Log("도착1");
artRightNum = 2;
onRightButton = false;
}
if (transform.position == artImage[2].transform.position)
{
Debug.Log("도착2");
artRightNum = 3;
onRightButton = false;
}
if (transform.position == artImage[3].transform.position)
{
Debug.Log("도착3");
artRightNum = 0;
onRightButton = false;
}
우리친구는 for문에 대해 공부해보지 않을래?
계속 반복한다는건 알겠는데 어떤식으로 풀어야할지 모르겠어요.. 현재 위치의 숫자=artimage[현재 위치의 숫자]로 인식하게 하면 될거같은데
vector2int curPos; if(Input.GetKeyDown(KeyCode.right) curpos.x++; if(input.GetKeyDown(KeyCode.left)) curpos.x--;