dnrkckzk 초보 유니티 개발자 개발하면서 겪는 어려움들을 해결했을 때, 인터넷 돌아다니는 흥미 있는 글 있을 때, 저장하고 공유하기 위한 공간.

카테고리

전체보기 (42)
뇌를 자극하는 C# 5.0프로그래밍 (9)
Unity Tip (30)
C# (1)
Total
Today
Yesterday



 안녕하세요. 오늘은 유니티에서 인풋 필드를 활용한다면 아주 유용할 수 있는 내용입니다. 제가 현재 인풋필드를 활용해서 게임을 만들고 있습니다. 채팅 부분을 구현하는데 있어서 꽤나 꿀팁이라고 생각하는데요. 제목에서 알 수 있듯이, onEndEdit와 onSubmit의 차이입니다. 바로 시작하겠습니다.


 인풋필드에 채팅내용을 입력한 후에 모바일 키보드에 있는 완료 버튼을 누르면 채팅 내용을 서버로 보내게 하고 싶었습니다. 검색해보니 onEndEdit가 이벤트가 나왔습니다. 그래서 그 이벤트에 인풋필드 내용을 보낸다는 함수를 달았더니 실제로 잘 작동했습니다. 그래서 안심하고 다른 작업 후 테스트 도중에 심각한 문제를 발견했습니다. 그 문제가 뭐냐하면, 완료 버튼을 누르지 않고 화면을 터치해서 모바일 키보드를 집어 넣어도 메세지가 보내지는 것이었습니다. 이러면 안됐었습니다. 완료버튼을 누를 때만 메세지가 보내져야 하는데, 채팅 내용을 치다가 입력을 그만둬도 메세지가 보내지는 것이었습니다. 그래서 다시 이벤트 내용을 들여다본 결과 onSubmit이란 이벤트를 발견했습니다. 이쯤 되면 아시겠지만, onSubmit으로 변경 후 함수를 붙여주니 제가 원하는 대로 작동했습니다. 


 onSubmit과 onEndEdit. 두 이벤트의 차이점에 대해서 숙지하시고 필요한 방향으로 활용하시면 되겠습니다.  두 이벤트외에도 여러가지 이벤트들이 있으니 한 번 찾아보셔서 활용하시면 되겠습니다. 혹시나 아주 초보분들이 볼 수도 있으니 제가 활용한 코드 남기고 마무리 짓겠습니다. 더 좋은 방법이 있다면 언제든지 알려주세요.



public InputField inputField;


void Start()

{

inputField.onSubmit.AddListener(delegate { EmitChat(); });

}

public void EmitChat()

{

    if (inputField.text.Length > 0)

    {

서버로 채팅 보내기();

      messageToSendIF.text = "";

    }

}



Posted by dnrkckzk
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함