블로그 이미지
Every unexpected event is a path to learning for you.

카테고리

분류 전체보기 (2309)N
Unity3D (565)N
Programming (471)N
Unreal (4)
Gamebryo (56)
Tip & Tech (182)
협업 (34)
3DS Max (3)
Game (12)
Utility (114)
Etc (92)
Link (31)
Portfolio (19)
Subject (90)
iOS,OSX (37)
Android (12)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (1)
Memories (19)
Interest (37)
Thinking (36)
한글 (26)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (2)
냥이 (9)
육아 (5)
Total1,332,751
Today16
Yesterday299
Statistics Graph

달력

« » 2019.10
    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    

공지사항

태그목록

'WebView'에 해당되는 글 4건

  1. 2017.10.23 [Link] unity-webview
  2. 2015.08.05 WebView 플러그인 Awesomium(HTML UI Engine) (3)
  3. 2015.01.21 Unity3D WebView
  4. 2015.01.20 유니티 3D상에서 WebView 띄우기


[Link] https://github.com/gree/unity-webview

Posted by blueasa
TAG Unity, WebView

댓글을 달아 주세요

유니티에서 쓸 WebView를 찾아보다가 유료지만 괜찮아 보이길래 남겨 놓음.


수익이 $100k(대략 1억원) 이하면 Free 버전 써도 된다고 하니 나중에 한 번 건드려 봐야지..


[링크] http://www.awesomium.com/


[참조]

http://www.devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=29578

http://labs.awesomium.com/unity3d-integration-tutorial-part-1/


Posted by blueasa

댓글을 달아 주세요

  1. 2017.10.11 09:45 unity  댓글주소  수정/삭제  댓글쓰기

    awesomium으로 지금도 유니티상에서 webview 사용가능한가요?

  2. 2017.10.13 14:41 unity  댓글주소  수정/삭제  댓글쓰기

    답변 감사합니다.
    Unity5에서 테스트 해보는데
    DllNotFoundException: Awesomium
    AwesomiumMono.StringHelper..ctor (System.String val)
    AwesomiumMono.WebCore.Start ()
    AwesomiumMono.WebCore.Initialize (AwesomiumMono.WebCoreConfig config, Boolean start)
    WebTexture.Start () (at Assets/WebTexture.cs:32)
    이와 같은 에러가 나네요 ㅠㅠ

Unity3D WebView

Unity3D/Plugins / 2015.01.21 17:46

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();

        }

    }

}

...



// C#으로 변환한 소스 입니다.  by asuss님(출처 : http://reysion.tistory.com/34 의 댓글)

using UnityEngine;
using System.Collections;

public class TestWebView : MonoBehaviour {

public GUISkin guiSkin;
public GameObject redBoxPrefab;
public GameObject blueBoxPrefab;

private string note;

// Show the web view (with margins) and load the index page.
void ActivateWebView() {
WebMediator.LoadUrl("http://keijiro.github.com/unity-webview-integration/index.html");
WebMediator.SetMargin(12, Screen.height / 2 + 12, 12, 12);
WebMediator.Show();
}

// Hide the web view.
void DeactivateWebView() {
WebMediator.Hide();
// Clear the state of the web view (by loading a blank page).
WebMediator.LoadUrl("about:blank");
}

// Process messages coming from the web view.
void ProcessMessages() {
while (true) {
// Poll a message or break.
WebMediatorMessage message = WebMediator.PollMessage();
if (message == null) 
break;

if (message.path == "/spawn") {
// "spawn" message.
GameObject prefab = null;
if (message.args.ContainsKey("color")) {
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();
}
}
}

void Start() {
WebMediator.Install();
}

void Update() {
if (WebMediator.IsVisible()) {
ProcessMessages();
} else if (Input.GetButtonDown("Fire1") && Input.mousePosition.y < Screen.height / 2) {
ActivateWebView();
}
}

void OnGUI() {
float sw = Screen.width;
float sh = Screen.height;
GUI.skin = guiSkin;
if(note != null) 
GUI.Label(new Rect(0, 0, sw, sh/2), note);
GUI.Label(new Rect(0, sh/2, sw, sh/2), "TAP HERE", "center");
}
}



출처 : http://reysion.tistory.com/34

Posted by blueasa
TAG WebView

댓글을 달아 주세요


참조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/

Posted by blueasa
TAG 3d, WebView

댓글을 달아 주세요