찾기
내용으로 건너뛰기
추적
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
======Unity Web Player and browser communication====== ======Desktop!====== >>desktop<< ''Unity Web Player'' 컨텐츠를 포함하는 HTLM페이지는 그 컨텐츠와 통신할 수 있고 그 반대의 경우도 그렇습니다. 기본적으로 두가지 통신 방향이 존재합니다: * 웹 페이지가 유니티 웹 플레이어 컨텐츠 안의 함수를 콜 합니다. * 유니티 웹 플레이어 컨텐츠가 웹 페이지의 함수를 콜 합니다. 각각의 이런 통신의 방향은 다음에서 좀더 자세히 설명합니다. =====Calling Unity web player content functions from the web page===== 유니티 웹 플레이어 객체는 //SendMessage()//라는 함수를 가지는데 이것은 유니티 웹 플레이어 안의 함수를 부르기위해 웹 페이지로 부터 불려지는 함수 입니다. 이 함수는 유니티 스크립팅 API에 있는 [[ScriptRef:GameObject.SendMessage.html|GameObject.SendMessage]] 함수와 아주 비슷합니다. 웹 페이지에서 불려지면 객체 이름, 함수 이름 그리고 하나의 인자를 넘겨주고 //SendMessage()//가 주어진 게임 객체안의 주어진 함수를 부릅니다. 유니티 웹 플레이어의 //SendMessage()//함수를 부르기 위해서 사용자는 첫째로 유니티 웹 플레이어 객체에 대한 참조를 얻어야합니다. 사용자는 //unityObject.getObjectById()// 함수를 이용해 그 객체의 참조를 얻을 수 있습니다. 여기유니티 웹 플레이어 컨텐츠와 //UnityContent//의 아이디 값에서 //SendMessage()// 함수를 실행 시키는 자바 스크립트 함수 예가 있습니다. 차례로 //SendMessage()//는 //MyObject//라는 게임 객체의 //MyFunction()// 라는 함수를 부르고 스트링을 인자로 하여 넘겨줍니다: <file csharp> <script type="text/javascript" language="javascript"> <!-- function SaySomethingToUnity() { var unity = unityObject.getObjectById("UnityContent"); unity.SendMessage("MyObject", "MyFunction", "Hello from a web page!"); } --> </script> </file> 사용자가 //MyObject//라는 이름의 ''GameObject'' 에 스크립트를 첨부해야하고 그 스크립트는 //MyFunction//이라는 함수를 구현해야하는 유니티 웹 플레이어 컨텐츠의 내부: <file csharp> function MyFunction(param : String) { Debug.Log(param); } </file> _주의:_ 만약 함수가 인자를 가지지 않으면 빈 스트링 ("") 이 인자로 넘어와야 함에 주의하세요. 하나의 스트링, 정수 또는 float인자는 //SendMessage()// 사용시 반드시 넘겨져야 하며 부르는 쪽에서는 그 파라미터가 필요합니다. 사용자가 그것이 필요가 없으면 간단히 0또는 다른 기본 값을 넘겨주고 유니티 쪽에서는 그것을 무시합니다. 게다가 이름에 의해 명시된 그 게임 객체는 경로 이름의 형식으로 주어질 수 있습니다. 예를 들어, **/MyObject/SomeChild**에서 //SomeChild//는 //MyObject//의 자식이어야 하고 //MyObject//는 이름 앞의 ‘/’때문에 루트 레벨 이어야만 합니다. =====Calling web page functions from Unity web player content===== 유니티 웹 플레이어 컨텐츠안에서 웹 페이지 함수를 부르기 위해서 사용자는 //[[ScriptRef:Application.ExternalCall.html|Application.ExternalCall()]]//함수를 사용해야 합니다. 그 함수를 사용함으로써 사용자는 웹 페이지에 정의된 어떤 자바 스크립트 함수도 부를수 있고, 어떤 개수의 파라미터도 넘길 수 있습니다. 여기웹 페이제 안의 스트링 데이터를 인자로 넘겨주는 //SayHello()//라고 불리는 함수를 부르기 위해 //Application.ExternalCall()// 함수를 사용하는 유니티 스크립트의 예가 있습니다: <file csharp> Application.ExternalCall( "SayHello", "The game says hello!" ); </file> 웹 페이지는 //SayHello()// 함수를 정의할 필요가 있습니다. 예를 들어: <file csharp> <script type="text/javascript" language="javascript"> <!-- function SayHello( arg ) { // show the message alert( arg ); } --> </script> </file> =====Executing arbitrary browser code from Unity web player content===== 사용자는 삽입하는 웹페이지에 함수를 정의할 필요도 없습니다. 대신 사용자는웹 플레이어 컨텐츠로 부터 임의의 브라우저 코드를 실행하기 위해 //[[ScriptRef:Application.ExternalEval.html|Application.ExternalEval()]]// 함수를 사용할 수 있습니다. 다음의 예제는 웹 플레이어 컨텐츠에 삽입된 페이지가 특정 호스트(unity3d.com)에서 가져왔는지 확인하는 예제 입니다. 가져오지 않았다면 다른 URL로 리다이렉트 할 것입니다. 이 테크닉은 사용자의 웹 플레이어 컨텐츠의 딥 링킹을 방지하는데 사용될 수 있습니다: <file csharp> Application.ExternalEval( "if(document.location.host != 'unity3d.com') { document.location='http://unity3d.com'; }" ); </file> {{tag>유니티 unity}} * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.UnityWebPlayerandbrowsercommunication|유니티코리아위키]] (CC BY-NC-SA 2.0)
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
연결문서
유니티3D ( Unity3D )
Web Player Deployment
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
Toggle Menu
유니티3D ( Unity3D )
너두 고쳐두 됩니다.
사이트 도구
최근 바뀜
미디어 관리자
사이트맵
사용자 도구
등록
로긴
최근 수정된 문서
misuse_topical5
노박
unique_items
dinner_bell
deputy_beagle
ratslayer
one_for_my_baby
alerio
power_fist
제거됨
fixer
climb_ev_ry_mountain
companion
[장비 분실]
crashed_vertibird
brotherhood_t-51b_power_armor
marco
i_forgot_to_remember_to_forget
cateye