오늘 포스팅할 내용을 요약하면
유니티에서 WebGL 로 빌드하여 IIS 올린후 이를 WinForm 에서
CefSharp 를 이용해 실행이 가능하도록 하는것입니다.
쉽게 말하면 WinForm 에서 웹브라우저(CefSharp의 ChromiumWebBrowser)를 이용해 IIS 에 올려진 게임을 실행한다라고 할수 있겠네요
우선 Unity 게임을 WebGL 로 빌드하는 방법은 아래 포스팅을 참고해 주세요
2017/10/17 - [Unity] - (Unity) WebGL 로 빌드하기
또 WebGL 로 빌드된 내용을 IIS 에 올리는 방법은 아래 포스팅을 참고해 주세요
2017/10/18 - [Unity] - (Unity) WebGL 파일 IIS 올리기
이제 시작해 보겠습니다.
우선 WinForm 프로젝트를 하나 만듭니다. (참고로 전 Visual Studio 2017 Community 버전사용)
프로젝트 우클릭 메뉴에서 'Nuget 패키지 관리'를 클릭합니다.
CefSharp 으로 검색하여 CefSharp.WinForms 을 설치합니다.
(아래 그림에서 전 이미 설치가 되어있어서 제거 버튼이 보이는데 최초 설치시에는 설치 버튼이 보입니다.)
설치가 완료되면 아래와 같이 코딩합니다.
public CefSharpForm()
{
InitializeComponent();
InitializeChromium();
}
public void InitializeChromium()
{
CefSettings settings = new CefSettings();
settings.BrowserSubprocessPath = @"x86\CefSharp.BrowserSubprocess.exe";
Cef.Initialize(settings, performDependencyCheck: false, browserProcessHandler: null);
chromeBrowser = new ChromiumWebBrowser("http://192.168.0.4:7870/index.html");
//chromeBrowser = new ChromiumWebBrowser("https://www.youtube.com/watch?v=uO4BMId9e0w&t=4742s");
//chromeBrowser = new ChromiumWebBrowser(@"D:\[00]Window\Desktop\all\DeskTop\unity\webgl-release\index.html");
this.Controls.Add(chromeBrowser);
chromeBrowser.Dock = DockStyle.Fill;
}
protected override void OnClosing(CancelEventArgs e)
{
Cef.Shutdown();
base.OnClosing(e);
}
OnClosing 은 Form 의 Closing 이벤트와 연결해 주면됩니다.
코딩은 ChrominumWebBrowser 을 이용해서 IIS 에 올려진 게임파일을 실행하게 하는것입니다.
(코딩이 간단해서 굳이 설명은 필요없어보이네요;;)
단, 유니티 게임이 실행은 되는데 소리가 안납니다.
위코드에서 보시면 알겠지만 유투브 연결을 해보니 유투브는 소리가 납니다.
아마도 제가 먼가 놓친부분이 있는거 같은데 이부분은 해결해 봐야겠네요
(추가로 파일을 바로 물리는건 되지 않습니다. 반드시 IIS 올려야만 실행이 가능합니다.)
egde 로는 파일(index.html)로도 실행이 가능합니다. 왜그런건지는 모르겠습니다.;;;
이전에는 크롬에서도 index.html 파일로 직접 실행이 되었던 걸로 아는데 이번엔 안되네요;;
'Unity' 카테고리의 다른 글
Entitas - 링크 (0) | 2017.12.24 |
---|---|
[Unity] Missing adactivity with android.configchanges in androidmanifest.xml (0) | 2017.12.10 |
(Unity) WebGL 파일 IIS 올리기 (4) | 2017.10.18 |
(Unity) WebGL 로 빌드하기 (0) | 2017.10.17 |
(Unity) 유니티 설치하기 (0) | 2017.09.02 |