Version: 2017.1
Method group is Obsolete

Application.ExternalEval

切换到手册
Obsolete public static void ExternalEval (string script);

参数

script 要调用的函数的 Javascript 函数。

描述

在包含的网页中执行脚本函数。

HTML Javascript 主机页面可以执行函数。 ExternalEval 函数指定应执行的函数。

The example shows how HTML scripts can be called from the game code. Two functions are created in the HTML page, jsFunc1 and jsFunc2. These functions can be called by clicking the buttons in the game code. The first button calls jsFunc1 which changes the h1 header. The second button causes the HTML jsFunc2 function to call back into the WebGL script which changes a text string.

// Buttons that create calls into the HTML.
using UnityEngine;

public class ExampleClass : MonoBehaviour { string webMessage = "Unity";

void Start() { Camera cam = GetComponent<Camera>(); cam.clearFlags = CameraClearFlags.SolidColor; }

void OnGUI() { if (GUI.Button(new Rect(20, 20, 150, 30), "Change HTML header")) { Application.ExternalEval("jsFunc1()"); }

if (GUI.Button(new Rect(20, 60, 150, 30), "Change WebGL string")) { Application.ExternalEval("jsFunc2()"); }

GUI.Label(new Rect(20, 100, 200, 30), webMessage); }

void ExampleFunction(string s) { webMessage = webMessage + s; } }

The following example is the HTML Javascript code that is called into by the WebGL Unity script above. The jsFunc1 and jsFunc2 script functions are called by the Unity script as described above. The jsFunc1 changes the HTML h1 header. The jsFunc2 responses back to the calling WebGL ExampleFunction which changes the message.

// Note this is presented as a Unity script comment, but is an HTML page
/*<!DOCTYPE html>
<html lang="en-us">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Unity WebGL Player Example</title>
    <link rel="shortcut icon" href="TemplateData/favicon.ico">
    <link rel="stylesheet" href="TemplateData/style.css">
    <script src="TemplateData/UnityProgress.js"></script>
    <script src="Build/UnityLoader.js"></script>
    <script>
      var gameInstance = UnityLoader.instantiate("gameContainer", "Build/test.json", {onProgress: UnityProgress});
    </script>
  </head>
  <body>
    <h1 id="unityExample">Unity</h1>
    <div class="webgl-content">
      <div id="gameContainer" style="width: 600px; height: 400px"></div>
    </div>
    <script>
      function jsFunc1( )
      {
        document.getElementById('unityExample').innerHTML = 'Unity Example';
      }

function jsFunc2( ) { gameInstance.sendMessage('MainCamera', 'ExampleFunction', ' Example'); } </script> </body> </html> */

注意:5.4.0 及更高版本不支持 Web 播放器。\ \ 另请参阅:Application.ExternalCall。

Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961