본문 바로가기
End/#9 종합 설계

#7 안드로이드에서 유니티로 값 넘겨주기 [UnityPlayer.UnitySendMessage]

by 퍼즐잎 2017. 6. 4.



안드로이드 스튜디오에서 유니티로 값을 넘겨주기 위해서는 다음 함수를 사용하면 된다.



UnityPlayer.UnitySendMessage("게임 오브젝트 이름","함수 이름","String 인자");





String 인자 같은 경우에는 이전 Activity에서 intent를 이용하여


putExtra()로 값을 넘겨주고 UnityPlayer Activity에서 getExtra()를 이용하여 인자를 전달 받으면 된다.


그런데 실제로 onCreate 함수에서 유니티로 값을 전달하는 함수를 호출하는 경우 아무런 반응이 없다.



 

Log를 찍어가면서 확인해본 결과


onCreate 함수에서 값을 전달하는 함수가 호출되는 순간이


아래의 Unity의 Personal Logo가 뜨는 순간이었다.







그래서 Logo가 뜨고 사라지는 시간을 고려하여 


handler를 이용하여 다음과 같이 사용하였다.



1
2
3
4
5
6
7
8
9
10
    final Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            UnityPlayer.UnitySendMessage("Manager","AndroidToUnity",contents);
        }
    };
 
 
    handler.sendEmptyMessageDelayed(0,9000);
    //Delay 9
cs




넉넉하게 딜레이를 9초 정도로 설정하고


값을 전달하니 문제가 해결되었다.







댓글