버튼을 누르면 무언가 동작을 하게 해봅시다.
2가지 방법으로 연결이 가능합니다.
1. 코드로 연결하기
using UnityEngine;
using UnityEngine.UI;
public class UI_Script : MonoBehaviour
{
public Button testButton;
private void Start()
{
//방법1. 무명 메소드 람다식을 통해 적용
testButton.onClick.AddListener(() => TestButtonDown());
//방법2. delegate를 이용해 적용
testButton.onClick.AddListener(delegate { TestButtonDown(); });
//방법3. (방법1 에서 UnityAction으로 함수를 갖고 있는 방법입니다.)
UnityEngine.Events.UnityAction action = () => TestButtonDown();
testButton.onClick.AddListener(action);
//방법4. (방법2 에서 UnityAction으로 함수를 갖고 있는 방법입니다.)
UnityEngine.Events.UnityAction action2 = (delegate { TestButtonDown(); });
testButton.onClick.AddListener(action2);
}
public void TestButtonDown ()
{
print("Button Down!");
}
}
방법1~4 중에 편한 방법으로 써주면 되겠습니당. (모두 동일한 기능을 합니다.)
버튼이 많거나 동적으로 생성해서 사용해줄 때 AddListener를 이용하여 메소드를 등록해줄 수 있습니다.
(또는 버튼을 누른 다음에 다른 메소드로 변경하는데도 사용될 수 있겠죠?)
2. 화면에서 적용시켜주기.
먼저 스크립트가 있어야 하고, 스크립트 내부에 public으로 선언 된 함수가 있어야 됩니다.
UI_Script 이름의 스크립트를 생성해줍니다.
using UnityEngine;
public class UI_Script : MonoBehaviour
{
public void TestButtonDown ()
{
print("Button Down!");
}
}
이제 게임오브젝트를 하나 생성해주고 UI_Script를 갖고 있게 해줍니다.
오브젝트 이름도 동일하게 UI_Script 로 해주겠습니다.
버튼을 생성해줍니다. 그러면 버튼에 옵션이 나오게 되고 스크립트를 On Click () 으로 넣어줍니다.
빨간 네모 부분을 눌러주면 메뉴들이 나옵니다.
UI_Script -> TestButtonDown
을 찾아서 연결해주면 버튼이 눌렸을 때 해당 함수가 호출이 됩니다.
'Unity > 유니티 코드 (Unity Code)' 카테고리의 다른 글
[유니티] 카메라 이동 및 회전 코드 (0) | 2021.12.30 |
---|---|
[유니티] 콜라이더 구현 (Box, Circle, Triangle) (0) | 2021.10.08 |