=================================
=================================
=================================
파일:
unity-webview 셋팅방법
Unity-Webview 사이트 링크 들어가면 "Clone or download" 버튼에 누루고 zip파일로 받으면 된다.
압축을 풀면 "unity-webview-master\unity-webview-master\dist" 부분에 "unity-webview.zip" 파일이
보일것이다 이것이 에셋파일이다 유니티에서 위에보면 메뉴에 "Assets->Import Package->Custom Package..."으로 들어가서 위의 dist 폴더로 들어가면 패키지파일 "unity-webview.unitypackage" 보이는데 이걸을 선택하면 알아서 에셋에 깔린다.
또 이것 방법말고 에셋파일에 다른폴더에 구성하고 싶으면 "\dist\unity-webview.zip" 이것의 파일을 압축풀면
"dist\unity-webview\Assets\Plugins\"의 경로가 생기고 폴더와 파일들이 생성된다. 안에 "WebView" 폴더를 만들어 거기에다가 모두 넣어두고 다시 "WebView" 폴더를 자신의 유니티프로젝트 "Assets\Plugins\" 경로에 넣으면 된다.
=================================
=================================
=================================
출처: http://blog.naver.com/PostView.nhn?blogId=kstarghost&logNo=70179335670
음... 일단 삽질을 한 2주 이상 하였습니다.
안드로이드에 대한 기본 지식도 없어서... 더더욱...
그래서 유니티에서 웹뷰를 안정적이고 이쁘게 표현할 방법은 바로!!
https://github.com/gree/unity-webview
dist 폴더에 unity-webview.unitypackage 파일을 이용하여 임포트 하여 사용하기 바란다.
추가로 도움 될만한 페이지입니다.
http://westwoodforever.blogspot.kr/2013/09/unity3d-tdp-webview.html
위 페이지에서 다운받아서 아주 쉽게 처리 하였습니다.
사용 방법
using UnityEngine; using System.Collections; public class PlatformLoginSystem { WebViewObject m_webViewObject = null; public virtual void OpenWebView(string web, int left, int top, int right, int bottom) { string strUrl = string.Format("{0}" , web); Debug.Log(strUrl); //Application.OpenURL(strUrl); // 오브젝트를 생성하고 멤버 변수로 등록한다. ( 쉽게 제거하기 위해서 ) // WebViewObject 컴포넌트 등록 m_webViewObject = (new GameObject("WebViewObject")).AddComponent<WebViewObject>(); m_webViewObject.gameObject.name = "WebView"; // 반드시 Init 호출 파라미터 : 웹페이지 // Html 형태를 등록 할 경우 페이지에 연결된 다른 페이지로 이동하지 않는 버그 있었음 m_webViewObject.Init((msg) => { Debug.Log(string.Format("CallFromJS[{0}]", msg)); }); // 마진값 : 화면으로부터 좌상우하 여백 값 m_webViewObject.SetMargins(left, top, right, bottom); m_webViewObject.LoadURL(strUrl); m_webViewObject.SetVisibility(true); } // 생성된 웹뷰 삭제 public virtual void CloseWebView() { GameObject.Destroy(m_webViewObject); } }
=================================
=================================
=================================
출처: http://dolphin.ivyro.net/zboard/view.php?id=directx_memo&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=120
Gree WebView 지금 사용중인 WebView와 코드가 동일 https://github.com/gree/unity-webview/ 예전 unity 3.5에서 추가 했던것 https://github.com/keijiro/unity-webview-integration 웹뷰를 터치하거나 스크롤뷰를 보이기 하기 위해서 http://westwoodforever.blogspot.kr/2013/09/unity3d-tdp-webview.html 사용 ... http://bribser.co.jp/blog/activate-webview-setvisibility-false-on-unity-editor/ http://blog.naver.com/PostView.nhn?blogId=kstarghost&logNo=70179335670&redirect=Dlog&widgetTypeCall=true http://loumo.jp/wp/archive/20131115085810/ ========================================================= appbankgames webview 메모리를 잘지원준다고 함 http://tsubakit1.hateblo.jp/entry/20130523/1369316363 ================================================================== http://devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=39070 웹뷰에서 터치입력이 안먹힐 때 http://m.blog.naver.com/seinaz/100204131059 [Android]Scrollbar hide 스크롤바 숨기기 http://mornbr.blogspot.kr/2015/06/androidscrollbar-hide.html?view=flipcard http://blueasa.tistory.com/1710 |
=================================
=================================
=================================
출처: https://reysion.tistory.com/34
Unity 3D에서 WebView를 쓸 때 유용한 소스 입니다.
일본 개발자분이 오픈소스로 라이센스로 공개한 것 같더군요...
[소스]
https://github.com/gree/unity-webview
- Java로 작성된 Android 용 Native Plugin
- Objective-C로 작성된 iOS 용 Native Plugin
- Objective-C로 작성된 OS X 용 Native Plugin
- Native Plugin을 사용하기위한 C # Plugin
[예제 프로젝트]
https://github.com/keijiro/unity-webview-integration
unity-webview-integration 소스는 웹 페이지를 WebView로 호출에서
아래와 같이 unity와 기능을 연동한 예제 입니다.javascript 예제여서 좀 아쉽네요. C#으로 수정해봐야 겠습니다.
http://keijiro.github.com/unity-webview-integration/index.html#
...
<title>Unity - WebView Integration Test Page</title><p><ul><li><a href="#" onclick='unity.callback("/spawn")'>Spawn a box</a></li><li><a href="#" onclick='unity.callback("/spawn", {color:"red"})'>Spawn a red box</a></li><li><a href="#" onclick='unity.callback("/spawn", {color:"blue"})'>Spawn a blue box</a></li><li><a href="#" onclick='unity.callback("/spawn", {color:"red", scale:0.5})'>Spawn a small red box</a></li><li><a href="#" onclick='unity.callback("/spawn", {color:"blue", scale:0.5})'>Spawn a small blue box</a></li><li><a href="#" onclick='unity.callback("/note", {text:"こんにちは"})'>「こんにちは」</a></li><li><a href="#" onclick='unity.callback("/note", {text:"ごきげんいかが"})'>「ごきげんいかが」</a></li><li><a href="#" onclick='unity.callback("/note", {text:"!@#$%^&*()-+"})'>"!@#$%^&*()-+"</a></li><li><a href="#" onclick='unity.callback("/close")'>Close</a></li><li><a href="page2.html">Go to page 2.</a></li></ul></p>...
TestInterface.js (unity 3d script)
...
// Process messages coming from the web view.
private function ProcessMessages() {
while (true) {
// Poll a message or break.
var message = WebMediator.PollMessage();
if (!message) break;
if (message.path == "/spawn") {
// "spawn" message.
if (message.args.ContainsKey("color")) {
var prefab = (message.args["color"] == "red") ? redBoxPrefab : blueBoxPrefab;
} else {
prefab = Random.value < 0.5 ? redBoxPrefab : blueBoxPrefab;
}
var box = Instantiate(prefab, redBoxPrefab.transform.position, Random.rotation) as GameObject;
if (message.args.ContainsKey("scale")) {
box.transform.localScale = Vector3.one * float.Parse(message.args["scale"] as String);
}
} else if (message.path == "/note") {
// "note" message.
note = message.args["text"] as String;
} else if (message.path == "/print") {
// "print" message.
var text = message.args["line1"] as String;
if (message.args.ContainsKey("line2")) {
text += "\n" + message.args["line2"] as String;
}
Debug.Log(text);
Debug.Log("(" + text.Length + " chars)");
} else if (message.path == "/close") {
// "close" message.
DeactivateWebView();
}
}
}
...
출처: https://reysion.tistory.com/34 [미로의 노트]
=================================
=================================
=================================
출처: https://iw90.tistory.com/69 [woong's]
Unity WebView 사용하기
안녕하세요. Unity 에서 WebView 를 사용하면서 고생을 해서 저와 같은분이 없기를
바라며 이렇게 포스트를 쓰고 있습니다 .
필자는 영어를 잘못해서 영어 커뮤니티 돌아다니면서 보느라 고생을 많이 했네요 .
한글로 되어 있는 포스트가 없어 포스트를 써보려 합니다 ^^
검색을 통해서 Unity WebView 가있는지를 찾아보니 IOS, Android , MacOS 를
지원해주는 WebView 를 어떤분이 플러그인을 개발해서 GitHub에 배포를 해놓으신것을
많은 분들이 추천을 해주셔서 사용해 보았습니다 .
위 링크를 통해서 접근 할 수 있습니다 .
이와 같은 화면을 볼 수 있습니다 .
아럐 간단한 설명과 코드가 있습니다 .
오른쪽 하단의 다운로드를 통해서 다운로드를 진행합니다 .
파일을 열면 이와같은 폴더 구조를 가지고 있습니다 .
sample 코드도 있지만 저는 저 샘플 코드를 이용해서 해보니 흰색화면밖에 보이지 않아서
새로운 프로젝트를 만들어서 간단하게 WebView 화면을 구성해 보겠습니다 .
폴더구조에서 저희가 필요한것은 dist 안에 들어있는 플러그인 입니다 .
이제 유니티 프로젝트를 하나 생성합니다 .
생성후에 Scene 을 저장하고 위 플러그인을 선택해서 Import를 진행 합니다 .
그러면 이와 같이 플러그인 파일들이 들어와 있는것을 확인 할수 있습니다 .
저희가 사용할 주요 파일은 WebViewObject 입니다 .
파일이 Import 된것을 확인후에 Hierachy 탭에 GameObject 를 생성 합니다 .
그 후에 GameObject 에 적용 시킬 Script 파일을 만들겠습니다 .
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
using UnityEngine;
using System.Collections;
public class WebViewScript : MonoBehaviour {
private WebViewObject webViewObject;
// Use this for initialization
void Start () {
StartWebView();
}
// Update is called once per frame
void Update () {
if (Application.platform == RuntimePlatform.Android)
{
if (Input.GetKey(KeyCode.Escape))
{
Destroy(webViewObject);
return;
}
}
}
public void StartWebView()
{
string strUrl = "http://www.naver.com";
webViewObject =
(new GameObject("WebViewObject")).AddComponent<WebViewObject>();
webViewObject.Init((msg)=>{
Debug.Log(string.Format("CallFromJS[{0}]", msg));
});
webViewObject.LoadURL(strUrl);
webViewObject.SetVisibility(true);
webViewObject.SetMargins(50, 50, 50, 50);
}
}
|
주요 코드입니다 .
Udate() 구문에는 모바일 디바이스를 백 버튼을 통해서 WebView 를 닫기 위한 코드입니다 .
StartWebView() 메서드가 주요 코드입니다 .
코드가 워낙 간결해서 별다른 설명 없이도 충분히 이해 할 수 있을 것 같습니다.
이렇게 스크립트를 작성후에 GameObject 에 적용시키면 되겠습니다 .
이제 실행을 해보겠습니다 .
화면에는 아무것도 나타나지않고 에러만 나타납니다 .
필자는 이에러를 잡고자 몇시간을 보냈네요 . 커뮤니티 돌아다녀도 해결 방법이 없었습니다 .
혹여나 하는 마음에 디바이스에 실행을 시켜보았습니다 .
File > Build & Run 을 선택해서 디바이스에서 실행해 보겠습니다 .
오 Editor 에서 실행한 화면과는 다르게 나타 나네요 .
뭔가 WebView 형태가 나타 난것 같습니다 .
인터넷이 연결이 안되었다고 나타납니다 .
그래서 필자는 안드로이드 개발을 하다보니 뭔가 느낌이 나서 유니티 프로젝트를 안드로이드 프로젝트로 Export를
해보았습니다 .
File > Build Settings 를 선택합니다 .
Android Switch Platform 을 통해서 Android 디바이스로 바꾸어 주고 위 빨간 상자의 체크박스를
선택하고 Export 를 진행합니다 .
그러면 아래와 같이 안드로이드 프로젝트가 생성 됩니다 .
안드로이드 이클립스를 통해서 실행 시켜 보겠습니다 .
Import 를 진행했습니다 .
저는 이중에 Manifest 파일을 확인하고 싶었습니다 .
퍼미션이 없습니다 .
안드로이드 디바이스에서 인터넷 통신을 하기위해서는 안드로이드 인터넷 퍼미션이 있어야 합니다 .
퍼미션이 존재하지 않아서 아까와 같은 인터넷 연결을 못한다는 화면이 나타난것 같습니다 .
Add > User Permission 을 선택합니다 .
1
2
3
|
<meta-data
android:name="unityplayer.ForwardNativeEventsToDalvik"
android:value="true" />
|
Manifest 파일을 보면 위 코드의 Value 가 false 로 되어 있습니다 .
이부분을 true 로 변경후에 실행하면 터지가 잘되는 것을 확인 할 수 있습니다.
출처: https://iw90.tistory.com/69 [woong's]
=================================
=================================
=================================
출처: http://www.devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=42201
메니페스트 수정사항은 이 두가지 입니다.
<uses-permission android:name="android.permission.INTERNET"/>
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
=================================
=================================
=================================
출처: http://www.devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=29578
Unity3d 에서 WebView를 Unity3d 상의 객체처럼 사용할 수 없나요?
UnityPlayer 위에 안드로이 WebView를 얹힌다고 표현해야 하나요?
말씀하신 기능은 맨아래 Unity Player 그 위에 WebView 또 그위에 Unity Player인데...
불가능하지 않을까 싶습니다.
일반적인 이벤트 및 공지사항 보여주기용이 아닌이상...
다른방식을 찾아보시는게 좋은듯 한데요.
사용하셨던 webview와는 다른형태라서 기능이 좀 다르지만
요녀석은 어떠신지
http://labs.awesomium.com/unity3d-integration-tutorial-part-1/
여기도 참고해보세요
=================================
=================================
=================================
출처: https://includecoding.tistory.com/80
Unity3D WebView ERR_CLEARTEXT_NOT_PERMITTED 문제
평화로운 수요일...갑자기 마공앱에서 뉴스탭을 클릭하면 나오는 처음보는 에러.. ERR_CLEARTEXT_NOT_PERMITTED..?
검색을 해 본 결과 안드로이드 APK 9.0 ( pie ) 에서 나오는 에러라고 한다.
pie 버전에서는 http:// 로 접근이 불가능하고, https:// 로만 url을 접근해서 웹뷰를 띄워줘야만 하나보다..
하지만 방법은 다 있는 법
Plugins -> Android에 있는 AndroidManifast.xml을 수정하면 되는데
나는 이렇게 했다.
usesClearTextTraffic를 true로 만들어서, text로 접근하는 url은 모두 접근이 가능하도록 만들어줬다.
<Application .... android:usesCleartextTraffic="true"/> 이런 식으로, Application 쪽 칸에 저 문구를 넣어주고 테스트를 해 본 결과
ERR_CLEARTEXT_NOT_PERMITTED 이런 에러는 전혀 뜨지 않고, 마법천자문 홈페이지로 잘 이동이 되는 것을 확인했다.
출처: https://includecoding.tistory.com/80 [#Include]
=================================
=================================
=================================
http://forum.unity3d.com/threads/4990-htmlTexture-plugin
사용하셨던 webview와는 다른형태라서 기능이 좀 다르지만
요녀석은 어떠신지
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
jungrok5 2013.05.07 14:36 답변 신고
http://wiki.unity3d.com/index.php/HtmlTexturePlugin
http://labs.awesomium.com/unity3d-integration-tutorial-part-1/
여기도 참고해보세요
개발자hyuck 2013.05.07 14:57 답변 신고
정말 진심으로 감사합니다.
정말 너무너무 막혀서 어찌할바를 모르다가 길을 안내해 주시네요.
정말 감사합니다!
=================================
=================================
=================================
* 기타관련링크
- https://bitbucket.org/vitaly_chashin/simpleunitybrowser/src/default/ //윈도우용 유니티 웹뷰?!?!
출처: https://blueasa.tistory.com/1705
참조1 : http://www.devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=29578
참조2 : http://wiki.unity3d.com/index.php/HtmlTexturePlugin
참조3 : http://labs.awesomium.com/unity3d-integration-tutorial-part-1/
출처: https://blueasa.tistory.com/1705 [Try & Error]
- https://qiita.com/mczkzk/items/0ed0665c7da3b550770e
- https://westwoodforever.blogspot.com/2013/09/unity3d-tdp-webview.html
- https://forum.unity.com/threads/htmltexture-plugin.4990/
- http://wiki.unity3d.com/index.php/HtmlTexturePlugin
=================================
=================================
=================================
'게임엔진관련 > 유니티 엔진' 카테고리의 다른 글
[Unity] 유니티개발 다국어 지원하기 관련 (0) | 2019.03.21 |
---|---|
[Unity] 유니티에서 싱글톤(Singleton) 사용하기 관련 (0) | 2019.03.12 |
[Unity] 유니티 GUI 버튼(Button)에 이벤트, 연결등등 관련 (13) | 2019.01.29 |
[Unity] UGUI 캔버스(canvas) 관하여 관련 (0) | 2019.01.17 |
[Unity] TCP/IP, 소켓통신 와 멀티쓰레드 관련 (0) | 2019.01.17 |
[출처] [ Unity ][ WebView ] 게임 내 이벤트 창을 위한 WebView( 웹뷰 )|작성자 팽이