Ejemplo n.º 1
0
 internal void SetBorderRadius(int borderRadius)
 {
     MainThreadDispatcher.OnUpdate(() =>
     {
         if (Image)
         {
             Image.sprite = BorderGraphic.CreateBorderSprite(borderRadius);
         }
     });
 }
Ejemplo n.º 2
0
        public void OnAppend()
        {
            var src = new ReactScript();

            src.ScriptSource = ScriptSource.Url;
            src.SourcePath   = document.origin + this.src;

            src.GetScript((sc) =>
            {
                MainThreadDispatcher.OnUpdate(() => document.execute(sc));
            }, out var result, false, true);
        }
Ejemplo n.º 3
0
        public void OnAppend()
        {
            var script = document.context.CreateStaticScript(src);

            Action <string> callback = (sc) => MainThreadDispatcher.OnUpdate(() =>
            {
                document.execute(sc);
                onload?.Invoke(this);
            });

            script.GetScript((sc, isDevServer) => callback(sc), out var result, false, true);

            if (!string.IsNullOrWhiteSpace(result))
            {
                callback(result);
            }
        }
Ejemplo n.º 4
0
        private void SetBorderRadius()
        {
            if (!HasBorderOrBackground())
            {
                return;
            }

            var image = GetBackgroundGraphic();

            MainThreadDispatcher.OnUpdate(() =>
            {
                if (!GameObject)
                {
                    return;
                }
                var sprite = BorderGraphic.CreateBorderSprite(Style.borderRadius);
                image.SetBorderImage(sprite);
            });
        }
Ejemplo n.º 5
0
        void CreateLocation(Engine engine)
        {
            var location = new ObjectInstance(engine);

            engine.SetValue("location", location);

            var href      = Script.SourceLocation;
            var hrefSplit = href.Split(new string[] { "//" }, 2, StringSplitOptions.None);

            var protocol = hrefSplit.Length > 1 ? hrefSplit.First() : null;

            var hrefWithoutProtocol      = hrefSplit.Length > 1 ? string.Join("", hrefSplit.Skip(1)) : href;
            var hrefWithoutProtocolSplit = hrefWithoutProtocol.Split(new string[] { "/" }, 2, StringSplitOptions.None);

            var host      = hrefWithoutProtocolSplit.FirstOrDefault();
            var hostSplit = host.Split(new string[] { ":" }, 2, StringSplitOptions.None);
            var hostName  = hostSplit.First();
            var port      = hostSplit.ElementAtOrDefault(1);

            var origin   = protocol + "//" + host;
            var pathName = string.Join("", hrefWithoutProtocolSplit.Skip(1));

            location.FastAddProperty("reload", JsValue.FromObject(engine, new Action(() => MainThreadDispatcher.OnUpdate(Restart))), false, true, false);
            location.FastAddProperty("href", href, false, true, false);
            location.FastAddProperty("protocol", protocol, false, true, false);
            location.FastAddProperty("hostname", hostName, false, true, false);
            location.FastAddProperty("origin", origin, false, true, false);
            location.FastAddProperty("host", host, false, true, false);
            location.FastAddProperty("port", port, false, true, false);
            location.FastAddProperty("pathname", pathName, false, true, false);

#if UNITY_EDITOR
            engine.SetValue("WebSocket", typeof(WebSocketProxy));
            engine.SetValue("XMLHttpRequest", typeof(XMLHttpRequest));
            engine.Execute(@"(function() {
  var oldXMLHttpRequest = XMLHttpRequest;
  XMLHttpRequest = function() { return new oldXMLHttpRequest('" + origin + @"'); }
})();");
#endif
            engine.SetValue("document", new DocumentProxy(unityContext, this, origin));
        }
Ejemplo n.º 6
0
 public void reload()
 {
     MainThreadDispatcher.OnUpdate(restart);
 }
Ejemplo n.º 7
0
 public void clear()
 {
     MainThreadDispatcher.OnUpdate(() => Debug.ClearDeveloperConsole());
 }