안녕하세요~
유니티 프로젝트 작업중 막히는 부분이 있었습니다.
유니티 UGUI 기능중 inputfield 기능에서 해당 input 클릭후 입력을 하게 되면
commponent 의 on chanaged value 에 등록한 매서드가 호출하게 되곤 합니다.
하지만 input 진입시 판단할 로직이 들어간다면 위와 같이 해서는 안되더라구요
input 진입시 판단할 로직 이후에 맞다면 입력할수 있겟끔 만들어 봤습니다
public class myTemp
{
public InputField inputfield;
public Button button_action;
public bool isReady = false;
//On change Value 에 넣을 매서드
public void ChangeText(Text txt)
{
txt.text = inputfield.text;
}
//버튼에 붙일 매서드
public void ResponseButton_click()
{
if(isReady)
{
if (inputfield.isFocused == false)
{
EventSystem.current.SetSelectedGameObject(inputfield.gameObject, null);
inputfield.OnPointerClick(new PointerEventData(EventSystem.current));
}
}
}
}
어떠한 버튼을 누르고 판단 (isReady) 을 한 후에 판단이 맞으면 eventsystem으로 오브젝트를 설정하여 코드상으로
input에 진입하게 되는 코드입니다.
if (inputfield.isFocused == false)에 진입하게 된다면 유니티상 input 필드에 커서가 보일것입니다.
이후 입력된 값은 ChangeText매서드에서 처리가 될것입니다.
이상입니다.
'유니티 > 프로그래밍' 카테고리의 다른 글
[Unity] Quaternion.FromToRotation 이해 (0) | 2019.01.03 |
---|---|
[Unity] ugui 스킬쿨타임 구현하기 (0) | 2018.12.06 |
[Unity] 버그/문의 메일보내기 (0) | 2018.12.05 |
[Unity] 캐릭터모델 에니메이션중에 상체 움직이기(본 움직이기) (5) | 2018.12.04 |
Unity 적을 부드럽게 바라보기 (1) | 2018.11.15 |