国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity webgl 嵌入Vue實(shí)現(xiàn)過(guò)程

這篇具有很好參考價(jià)值的文章主要介紹了Unity webgl 嵌入Vue實(shí)現(xiàn)過(guò)程。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

需求分析:

Unity webgl嵌入到前端網(wǎng)頁(yè)中,前端通過(guò)調(diào)用Unity webgl內(nèi)方法實(shí)現(xiàn)需要展示的功能,前端點(diǎn)擊Unity webgl內(nèi)的交互點(diǎn),Unity webgl返回給前端一些需要的數(shù)據(jù)。

例如:當(dāng)我們需要在三維場(chǎng)景中展示庫(kù)區(qū)中一些監(jiān)控設(shè)備的部署位置,通過(guò)點(diǎn)擊三維場(chǎng)景中的監(jiān)控按鈕打開(kāi)當(dāng)前監(jiān)控設(shè)備的實(shí)時(shí)畫(huà)面,一般情況下打開(kāi)監(jiān)控需要傳遞當(dāng)前監(jiān)控的IP或者通道號(hào),這時(shí)Unity webgl向前端返回?cái)?shù)據(jù)就用到了。

實(shí)現(xiàn)過(guò)程:

1、Unity webgl向Vue發(fā)送數(shù)據(jù)

首先,Unity webgl向前端發(fā)送數(shù)據(jù)需要定義一個(gè).jslib格式文件作為轉(zhuǎn)接,文件名自?。ńㄗh不要用中文)文件內(nèi)容如下:

Unity webgl 嵌入Vue實(shí)現(xiàn)過(guò)程,unity,webgl,vue.js

mergeInto(LibraryManager.library, {

 UnitySendMessage: function (eventname, data)
{
    window.ReportReady(UTF8ToString(eventname), UTF8ToString(data));
 } //如果多個(gè)方法需要使用逗號(hào)結(jié)尾(在此大括號(hào)后加逗號(hào)),只有一個(gè)方法不需要使用逗號(hào)


});

到此,轉(zhuǎn)接文件已經(jīng)定義好了

接著在Unity腳本中添加?using System.Runtime.InteropServices; 引用(用于COM互操作),

代碼如下:

using System.Runtime.InteropServices;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class Test: MonoBehaviour
{
    
    [DllImport("__Internal")]
    private static extern void UnitySendMessage(string eventname, string data);//方法名及參數(shù)和轉(zhuǎn)接的.jslib文件中的一樣

    private Button button;

    
    private void Awake()
    {
        button.onClick.AddListener(SendMessage);
    }

    private void SendMessage()
    {
       UnitySendMessage("getbuttonname",GetButtonName());//事件名自己命名即可,前端在監(jiān)聽(tīng)時(shí)使用
    }

  
   private string GetButtonName()
    {
        string name  = EventSystem.current.currentSelectedGameObject.name;
        return name;
    }


}

打包后打開(kāi)index.html文件加入此段代碼:

  window.ReportReady = function (eventname, data) {
            var initD = { detail: { data } }
            var evt = new CustomEvent(eventname, initD)
            window.top.dispatchEvent(evt)
        }

如圖:Unity webgl 嵌入Vue實(shí)現(xiàn)過(guò)程,unity,webgl,vue.js

最后在Vue mounted中加入即可

window.addEventListener('getbuttonname', this.uinityEvent, false)//getbuttonname對(duì)應(yīng)Unity內(nèi)定義的事件名

2、Vue向Unity發(fā)送數(shù)據(jù)

首先,Vue調(diào)用Unity的方法就比較簡(jiǎn)單了,在Unity內(nèi)定義帶參數(shù)的方法如:

using UnityEngine;

public class Test: MonoBehaviour
{
    
   private void GetVueData(string value)
    {
        Debug.Log(value);
    }

}

接著打開(kāi)打包后的index.html文件,在里面加入供前端調(diào)用的方法:

  function GetVueMessage(obj) {
            UnityInstanceV.SendMessage('MainSenceScript', 'GetVueData', JSON.stringify(obj))
//對(duì)應(yīng)的參數(shù)分別為:"Unity場(chǎng)景內(nèi)掛載腳本的物體名字","方法名",最后一個(gè)參數(shù)復(fù)制粘貼即可
        }

Unity webgl 嵌入Vue實(shí)現(xiàn)過(guò)程,unity,webgl,vue.js

最后只需Vue調(diào)用此方法并傳遞參數(shù)就可以了,如果這篇文章幫助到你,就點(diǎn)個(gè)贊吧!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-751634.html

到了這里,關(guān)于Unity webgl 嵌入Vue實(shí)現(xiàn)過(guò)程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 將WebGL打包的unity項(xiàng)目部署至Vue中

    將WebGL打包的unity項(xiàng)目部署至Vue中

    創(chuàng)建一個(gè)空項(xiàng)目(或者直接使用現(xiàn)成的項(xiàng)目都可以)這里以該空項(xiàng)目為例子 注意: 如果你的unity項(xiàng)目中有文字,不需要使用unity默認(rèn)的字體,需要更改它的字體,否則在最后生成的頁(yè)面中會(huì)顯示不出來(lái)文字 好在你的windows在C盤(pán)自帶了字體,我這里使用的微軟雅黑來(lái)進(jìn)行了替換

    2024年02月02日
    瀏覽(24)
  • 基于Unity+Vue3通信交互的WebGL項(xiàng)目發(fā)布實(shí)踐

    基于Unity+Vue3通信交互的WebGL項(xiàng)目發(fā)布實(shí)踐

    問(wèn)題背景 我們最近需要把unity開(kāi)發(fā)的pc項(xiàng)目遷移到web端,因?yàn)閡nity支持發(fā)布webgl。所以按照以往的開(kāi)發(fā)流程,都是項(xiàng)目開(kāi)發(fā)完成就發(fā)布webgl部署到服務(wù)器。 突然有一天,測(cè)試人員提出說(shuō)為什么我們做的網(wǎng)頁(yè)跟別人的不太一樣呢?具體看下面兩張圖: 1、unity使用ugui做的界面發(fā)布

    2024年04月17日
    瀏覽(30)
  • Unity之webgl端通過(guò)vue3接入騰訊云聯(lián)絡(luò)中心SDK

    Unity之webgl端通過(guò)vue3接入騰訊云聯(lián)絡(luò)中心SDK

    騰訊云聯(lián)絡(luò)中心SDK:云聯(lián)絡(luò)中心 Web-SDK 開(kāi)發(fā)指南-文檔中心-騰訊云 (tencent.com) ? ?1.1 對(duì)其進(jìn)行解壓 ? ?1.2根據(jù)文檔操作 查看README.md,根據(jù)說(shuō)明設(shè)置server下的dev.js里的相關(guān)參數(shù)。 然后打開(kāi)電腦終端,cd到項(xiàng)目的路徑: ? 安裝依賴(lài) ? ? 運(yùn)行 ?? 1.3 運(yùn)行demo 復(fù)制http://127.0.0.1:5173

    2024年02月14日
    瀏覽(24)
  • Unity打包WebGL的全過(guò)程及在打包和使用過(guò)程中會(huì)遇到的問(wèn)題

    Unity打包WebGL的全過(guò)程及在打包和使用過(guò)程中會(huì)遇到的問(wèn)題

    目錄 概要 Unity打包WebGL PlayerSettings設(shè)置 Resolution and Presentation Other Settings ?Publishing Settings 本地服務(wù)器測(cè)試環(huán)境配置 問(wèn)題盤(pán)點(diǎn) ? ? ? ? 盤(pán)點(diǎn)Unity在Build WebGL環(huán)境包時(shí)需要的配置以及遇到的難題 Resolution and Presentation Resolution and Presentation 界面主要設(shè)置打包后的WebGL界面的分辨率顯

    2024年02月16日
    瀏覽(21)
  • unity webGL與js 交互(獲取地址欄URL)

    unity webGL與js 交互(獲取地址欄URL)

    1.unity傳值給js unity中: js中: 2.js傳值給unity 參數(shù)一 Cookie:場(chǎng)景中物體的名稱(chēng) (最上層父物體名字,否則無(wú)法成功傳值) 參數(shù)二 OnCookie_Callback:方法名稱(chēng) 參數(shù)三 result:值 unity中: 完整: unity場(chǎng)景中物體的名稱(chēng) ?untiy代碼: js代碼:

    2024年02月04日
    瀏覽(23)
  • Unity打包WebGL的全過(guò)程及在打包和使用過(guò)程中會(huì)遇到的問(wèn)題(本地測(cè)試)

    Unity打包WebGL的全過(guò)程及在打包和使用過(guò)程中會(huì)遇到的問(wèn)題(本地測(cè)試)

    目錄 概要 Unity打包WebGL PlayerSettings設(shè)置 Resolution and Presentation Other Settings ?Publishing Settings 本地服務(wù)器測(cè)試環(huán)境配置 問(wèn)題盤(pán)點(diǎn) ? ? ? ? 盤(pán)點(diǎn)Unity在Build WebGL環(huán)境包時(shí)需要的配置以及遇到的難題 Resolution and Presentation Resolution and Presentation 界面主要設(shè)置打包后的WebGL界面的分辨率顯

    2024年02月05日
    瀏覽(215)
  • 3d標(biāo)簽云實(shí)現(xiàn)過(guò)程(tagcloud.js)同步原生和 vue

    3d標(biāo)簽云實(shí)現(xiàn)過(guò)程(tagcloud.js)同步原生和 vue

    寫(xiě)在前面 本來(lái)是沒(méi)有準(zhǔn)備寫(xiě)這個(gè)知識(shí)點(diǎn),但是下載這個(gè) js 的時(shí)候發(fā)現(xiàn)很多都是要錢(qián)或者是積分的,我就不明白了一個(gè)開(kāi)源了這么久的 js 怎么還有人拿來(lái)掙錢(qián)的,同時(shí)還有一些只有原生 html 的例子,但是現(xiàn)在都是 框架主導(dǎo)的一些項(xiàng)目,顯然是不行的,這篇文章就簡(jiǎn)單的寫(xiě)一下

    2024年02月04日
    瀏覽(22)
  • Unity+chatgpt+webgl實(shí)現(xiàn)聲音錄制+語(yǔ)音識(shí)別

    Unity+chatgpt+webgl實(shí)現(xiàn)聲音錄制+語(yǔ)音識(shí)別

    ? ? ? ? AI二次元女友這個(gè)項(xiàng)目持續(xù)更新,在window端的語(yǔ)音識(shí)別和語(yǔ)音合成的功能,在上一篇博文里已經(jīng)詳細(xì)說(shuō)明了微軟Azure語(yǔ)音服務(wù)的代碼實(shí)現(xiàn)。也是為了實(shí)現(xiàn)一次代碼,多端復(fù)用這樣的訴求,所以全部的代碼實(shí)現(xiàn)都改成了web api的方式。然而在實(shí)測(cè)發(fā)布到webgl的時(shí)候,就發(fā)現(xiàn)

    2024年02月16日
    瀏覽(22)
  • Unity發(fā)布WebGL運(yùn)行Js代碼報(bào)錯(cuò):‘Pointer_stringify‘ is obsoleted and will be removed in a future Unity version.

    Unity發(fā)布WebGL運(yùn)行Js代碼報(bào)錯(cuò):‘Pointer_stringify‘ is obsoleted and will be removed in a future Unity version.

    ??一、報(bào)錯(cuò)來(lái)源 Unity版本:Unity 2021.3.11f1c2。 發(fā)布平臺(tái):WebGL。 WebGL項(xiàng)目中有用到一個(gè)下載的功能,將圖片下載到本地,是Unity通過(guò)調(diào)用Js代碼來(lái)完成的,在測(cè)試時(shí)發(fā)現(xiàn)瀏覽器控制臺(tái)報(bào)了這個(gè)錯(cuò)誤信息。 ??二、報(bào)錯(cuò)信息 The JavaScript function ‘Pointer_stringify(ptrToSomeCString)’ is obs

    2024年02月08日
    瀏覽(57)
  • 在vue項(xiàng)目中使用unity資源,實(shí)現(xiàn)頁(yè)面和unity中事件的交互。

    1.將unity給的包放在public路徑下。 2.在iframe中引入。 3.在vue項(xiàng)目中監(jiān)聽(tīng)unity中的事件。關(guān)閉頁(yè)面的時(shí)候需要銷(xiāo)毀。 4.vue頁(yè)面向unity發(fā)送參數(shù)信息。 5.在unity中的index.html文件中接收頁(yè)面?zhèn)鱽?lái)的參數(shù)。 6.調(diào)用unity內(nèi)部的事件。

    2024年04月13日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包