IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> unity嵌入vue并与前端交互 -> 正文阅读

[游戏开发]unity嵌入vue并与前端交互

unity嵌入前端和交互

嵌入前端

将unity项目打包好后的文件夹直接放入public/static/
调节所欲要的比例:
在这里插入图片描述
在需要的页面以iframe的方式引入:

    <iframe 
    id="unity-infame" 
    ref="frame" 
    src="./static/WebGl/index.html" 
    frameborder="0" 
    scrolling="no"
     width= "65%" height="100%"></iframe>
  </div>

iframe样式设置:

iframe{
   position: absolute;
   z-index: 1;
   left: 17.5%;
 }

unity与前端交互

在这里插入图片描述

unity触发函数

点击button触发onclick事件,带button名字参数

  private void OnClick()
    {
        btnName = EventSystem.current.currentSelectedGameObject.GetComponent<Button>().name;
        print("当前按钮是: " + btnName);
        Show(btnName); 
    }

调用的show()是写在.jslib文件中
这里需要引入一下:

 [DllImport("__Internal")]
    private static extern void Show(string str);

点击函数全部代码:

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

public class ButtonSend : MonoBehaviour
{
    public Transform btnParent;
    private Button[] btns;
    [HideInInspector]
    public string btnName;
    [DllImport("__Internal")]
    private static extern void Show(string str);
    private void Start()
    {
        btns = new Button[btnParent.childCount];
        for (int i = 0;i<btns.Length;i++)
        {
            btns[i] = btnParent.GetChild(i).GetComponent<Button>();
            btns[i].onClick.AddListener(OnClick);
        }
        print(btns.Length);
    }
    private void OnClick()
    {
        btnName = EventSystem.current.currentSelectedGameObject.GetComponent<Button>().name;
        print("当前按钮是: " + btnName);
        Show(btnName); 
    }
}

.jslib函数

在assets文件夹下建立plugins文件夹,建立一个gloab.jslib文件
在这里插入图片描述`mergeInto(LibraryManager.library, {

Show: function (str) {

    VueShow(Pointer_stringify(str))
}

});`
shwo()调用Vueshow(),VueShow是写在打包好后的html文件下的
这个时候运行unity会报错找不到vue()或者vueshow()是正常的

打包后的处理

unity打包好后的文件夹放到vue项目中后,在html文件下写Vueshow()

<script>
      var unityInstance = UnityLoader.instantiate("unityContainer", "Build/WebGL.json", {onProgress: UnityProgress});
      function VueShow(str) {
          // alert("传出来了")
          // alert(str)
          window.parent.postMessage({ handle: str }, '*'
          )
        }
    </script>

将‘str’全局发消息,然后在要处理这个消息的页面去处理这个消息

前端页面的编写

在mounted函数中接受消息,并调用recieve函数

mounted(){
      // document.getElementById("unity-infame").addEventListener("message",this.recieve)
      window.addEventListener("message",this.recieve)
    },
recieve(event){
        this.unitydata = event.data.handle;
        
        switch (this.unitydata){
          case "1":
          case "3":
          case "5":
            this.ChangecurrentView(viewshow)
            break;
          case "2":
            this.ChangecurrentView(demandroll)
            break;
          case "4":
            this.ChangecurrentView(sourceopen)
            break;
          case "6":
            this.ChangetopoView(capacity)
            break;
          case "7":
            this.ChangetopoView(predict)
            break;
          case "8":
            this.ChangetopoView(production)
            break;
          default:
              break;
        }
      },

将str取来然后进行不同的处理

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-11-11 13:02:12  更:2021-11-11 13:03:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 0:39:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码