Skip to content

Commit

Permalink
Update runtime example with Editor defs
Browse files Browse the repository at this point in the history
Include Runtime sample
  • Loading branch information
Voltstro committed Mar 22, 2024
1 parent 1ce6fa5 commit a74d01f
Show file tree
Hide file tree
Showing 4 changed files with 106 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/Packages/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
**/*.dll
!**/*.prefab
!**/*.meta
!**/*.meta
!Samples~
8 changes: 8 additions & 0 deletions src/Packages/UnityWebBrowser/Samples~/Runtime/Scripts.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
// UnityWebBrowser (UWB)
// Copyright (c) 2021-2024 Voltstro-Studios
//
// This project is under the MIT license. See the LICENSE.md file for more details.

using UnityEngine;
using UnityEngine.UI;
using VoltstroStudios.UnityWebBrowser.Communication;
using VoltstroStudios.UnityWebBrowser.Core.Engines;
using VoltstroStudios.UnityWebBrowser.Input;
using VoltstroStudios.UnityWebBrowser.Shared.Core;

namespace VoltstroStudios.UnityWebBrowser.Prj
{
/// <summary>
/// Demo script for creating UWB at runtime
/// </summary>
public sealed class UWBRuntime : MonoBehaviour
{
/// <summary>
/// <see cref="GameObject"/> to create everything on
/// </summary>
[SerializeField]
private GameObject container;

[SerializeField]
private Camera mainCamera;

private void Start()
{
//Create canvas
Canvas canvas = container.AddComponent<Canvas>();
canvas.renderMode = RenderMode.ScreenSpaceCamera;
canvas.worldCamera = mainCamera;

CanvasScaler canvasScaler = container.AddComponent<CanvasScaler>();
canvasScaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize;
canvasScaler.referenceResolution = new Vector2(1920, 1080);
canvasScaler.screenMatchMode = CanvasScaler.ScreenMatchMode.MatchWidthOrHeight;
canvasScaler.matchWidthOrHeight = 0;

container.AddComponent<GraphicRaycaster>();

//Child object, where raw image and UWB itself will live
GameObject uwbGameObject = new("UWBContainer");
uwbGameObject.transform.SetParent(container.transform);

//Configure rect transform
RectTransform uwbRectTransform = uwbGameObject.AddComponent<RectTransform>();
uwbRectTransform.anchorMin = Vector2.zero;
uwbRectTransform.anchorMax = Vector2.one;
uwbRectTransform.pivot = new Vector2(0.5f, 0.5f);
uwbRectTransform.localScale = Vector3.one;
uwbRectTransform.offsetMin = Vector2.zero;
uwbRectTransform.offsetMax = Vector2.zero;

//Add raw image
uwbGameObject.AddComponent<RawImage>();

//UWB Pre-Setup

//Create engine dynamically
EngineConfiguration engineConfig = ScriptableObject.CreateInstance<EngineConfiguration>();
engineConfig.engineAppName = "UnityWebBrowser.Engine.Cef";

#if UNITY_EDITOR
engineConfig.engineFiles = new[] {
new Engine.EnginePlatformFiles
{
platform = Platform.Windows64,
engineFileLocation = "Packages/dev.voltstro.unitywebbrowser.engine.cef.win.x64/Engine~/"
},
new Engine.EnginePlatformFiles
{
platform = Platform.Linux64,
engineFileLocation = "Packages/dev.voltstro.unitywebbrowser.engine.cef.linux.x64/Engine~/"
}
};
#endif

//Create coms layer dynamically
CommunicationLayer comsLayer = ScriptableObject.CreateInstance<TCPCommunicationLayer>();

//Create input handler dynamically
WebBrowserInputHandler inputHandler = ScriptableObject.CreateInstance<WebBrowserOldInputHandler>();

//UWB Object Setup
WebBrowserUIBasic webBrowser = uwbGameObject.AddComponent<WebBrowserUIBasic>();
webBrowser.browserClient.engine = engineConfig;
webBrowser.browserClient.communicationLayer = comsLayer;
webBrowser.inputHandler = inputHandler;
}
}
}
2 changes: 2 additions & 0 deletions src/UnityWebBrowser.UnityProject/Assets/Scripts/UWBRuntime.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ private void Start()
EngineConfiguration engineConfig = ScriptableObject.CreateInstance<EngineConfiguration>();
engineConfig.engineAppName = "UnityWebBrowser.Engine.Cef";

#if UNITY_EDITOR
engineConfig.engineFiles = new[] {
new Engine.EnginePlatformFiles
{
Expand All @@ -75,6 +76,7 @@ private void Start()
engineFileLocation = "Packages/dev.voltstro.unitywebbrowser.engine.cef.linux.x64/Engine~/"
}
};
#endif

//Create coms layer dynamically
CommunicationLayer comsLayer = ScriptableObject.CreateInstance<TCPCommunicationLayer>();
Expand Down

0 comments on commit a74d01f

Please sign in to comment.