본문 바로가기

C C++ C#

(2)
[Unity/C#] UI 위치가 원하는 대로 변경되지 않던 문제 GameObject button; void SwitchButton() { int xPos = -300; button.transform.position = new Vector3(xPos, button.transform.position.y, 0); } void Start() { button = GameObejct.Find("button"); SwitchButton(); } 처음에는 위와 같은 구조로 UI의 위치를 변경하려고 했는데, 이상하게 버튼이 x: -300 지점이 아닌 다른 위치로 변경되었다. 그래서 찾아보던 도중, UI는 캔버스 상에서 그려지는 것인데다가 앵커를 기준으로 좌표를 잡는다는 것을..깨달았다. 심지어 캔버스 상에 있는 오브젝트들은 transform이 아니라 rect transform을 쓰는..
[Unity/C#] 버튼 여러 번 클릭시 해당 animation 두 번 실행 버그 상황 및 발생한 버그 설명 우선 이 게임은 하단의 버튼 UI(영상에는 안 넣었다.)를 누르면 발판을 한 칸씩 올라가는 방식이다. 따라서 다음 블럭 색과 같은 색의 버튼을 누르면 (한 칸씩 올라가며) 애니메이션이 발동 되도록 했다. 애니메이션을 발동시킬 때는 animator의 trigger를 사용하여 다음과 같은 코드를 사용했다. animator.SetTrigger("ClimbTrigger"); 애니메이션은 잘 적용 되었으나....문제는 버튼을 빠르게 연달아 누르면 상단의 문제 영상과 같이 애니메이션이 두 번 발동되는 것이다. (천천히 올라가면 문제가 발생하지 않았다.) 정말 몇 번 연속 빠르게 올라가든 항상 두 번씩만 반복 재생되었다. 따라서 이를 해결하기 위해 animator.ResetTrigger(”..