window form 에서 unity 게임을 실행하는 소스입니다.

https://github.com/kjundev/WinFormUnity

 

winform

 

CefSharp

 

오늘 포스팅할 내용을 요약하면

유니티에서 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 ChromiumWebBrowser chromeBrowser;
        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 파일로 직접 실행이 되었던 걸로 아는데 이번엔 안되네요;;

+ Recent posts

티스토리 툴바