Vue3如何引入Cocos Creator的WebGL包

搭建Vue3项目,如何将Cocos Creator的WebGL平台构建包,引入到Vue3项目?不使用iframe内嵌,各位社区大佬有解决办法吗?提供星巴克,霸王茶姬、奈雪、瑞幸等报销。

有问题GhatGPT

1. 构建 Cocos Creator 的 WebGL 项目

在 Cocos Creator 中,将项目构建为 Web 平台:

  • 打开 Cocos Creator,选择 Project -> Build
  • 选择 WebGL 平台并构建项目。生成的构建文件夹将包含一个 index.html 文件和若干资源文件(如 main.js , cocos2d-js.js )。

2. 将 Cocos Creator 构建文件复制到 Vue 项目中

  • 将 Cocos Creator 生成的 build 文件夹(包含 index.html 、JS 文件和资源)复制到 Vue3 项目的 public 目录中,或者放置在 src/assets 目录中。

3. 在 Vue3 项目中引入 Cocos Creator 的脚本

在 Vue3 组件中,你可以通过动态脚本加载的方式引入 Cocos Creator 的脚本,避免使用 iframe。

创建一个 Vue3 组件来加载并运行 Cocos Creator 的 WebGL 包:

vue

复制代码

<template>
  <div id="gameContainer"></div>
</template>

<script setup>
import { onMounted } from 'vue'

onMounted(() => {
  const gameScript = document.createElement('script');
  gameScript.src = '/build/main.js'; // 指向 Cocos Creator 打包后的 main.js
  gameScript.async = true;

  gameScript.onload = () => {
    // 在脚本加载完成后,初始化游戏
    if (window.cc) {
      window.cc.game.run({
        id: 'gameContainer', // Cocos Creator 的容器 ID
        // 其他初始化参数
      });
    }
  };

  document.body.appendChild(gameScript);
});
</script>

4. 在 Vue3 项目中运行 Cocos 游戏

  • 通过上面的代码,当组件加载时,会动态加载 Cocos Creatormain.js 脚本,并将 WebGL 游戏嵌入到 Vue 的 div#gameContainer 中。
  • 确保脚本路径正确指向 build 文件夹中的 main.js

5. 处理资源路径问题

如果你将 Cocos Creator 构建包放在 public 文件夹中,确保资源路径是相对路径,或者在 main.js 中手动修改路径以适应 Vue3 项目目录结构。

通过这种方式,你可以在 Vue3 项目中直接集成 Cocos Creator 的 WebGL 游戏,而无需使用 iframe。

用一个Canvas就好了呀,然后把这个canvas设置为cocos的渲染区

在CocosStore搜Vue,不过这个的设计思路是以Cocos工程为主,不是Vue工程为主
image

我尝试了ChatGPT提出的解决方法,但是在 ‘‘ 在Vue3 项目中引入 Cocos Creator 的脚本” 时间遇到了问题;Cocos creator 打包后,其目录下存在index.jsapplication.js,在onload步骤,就开始出问题了。

大佬你好,方便细说吗?加我v,acegain

cocos的输出都在一个canvas下, 你在vue的html里想办法把这个canvas搞进去

你看看这个HTML

所以你的工作就是在你的VUE里面提供一个这样结构的CANVAS结构,然后把对应的脚本加载进去就好了,这个是加了MD5的文件名,使用你自己的就好