揭秘!你玩的字节抖音小游戏制作流程公布
1.1 注册字节开发者后台 1.2 Unity版本说明 1.3 检查AppID是否有效 2.1 创建项目 2.2 接入SDK 3.1 发布安卓Apk 3.2 发布双端WebGL 3.3 IOS15.4版本问题
字节抖音小游戏是一种基于字节跳动产品生态开发且无需下载安装即可使用的全新游戏应用,实现了客户端"点开即玩"的优质用户体验。小游戏拥有开发轻便快捷,发布流程简单的特点,同时依托字节跳动生态优势,让小游戏天然具备较强的内容分发能力,支持小游戏开发者快速推广与变现。 一,准备工作1.1 注册字节开发者后台
进入字节小程序开发者后台,在开发者平台中点击右上角的「快捷登录」进行帐号注册。在登录后需要通过【申请创建】提示完成申请流程即可。
然后等着字节小游戏通过注册时的手机号或邮箱给予的答复。工作日提交的话一般在几个小时之内就有答复,最长时间为两个工作日之内。
注册后按照要求填写资质信息:公司就写企业全称,个人开发者填写个人姓名,然后其他内容根据要求填写。
其中需要注意的是 小游戏体验路径 :一般是一个可用的测试链接或者是一个网盘地址里面放一个可以玩的apk。(我们写过苹果商店地址审核失败了,应该是IOS的不行) 1.2 Unity版本说明
如果使用 natvie 方案:确认游戏工程运行在 Unity 2019.4.8f1 或者 Unity 2019.4.35f1
如果使用 wasm 方案:建议使用 unity 最新版,比如 2021.2 之后的版本,在 wasm 方面做了很多优化
可以用 2019.4.8 构建 native 版本,用 2021.x 构建 wasm,一起发布。
我前几天测试了2019.4.35f1c1,2019.4.8f1,Unity2021.3.3f1c1版本都是可以使用的,
不过在7月26号看到有开发者反馈说2019.4.8f1不好用了,官方回复:最近因为Android 12 的普及新增崩溃太多了,所以发新版需要升级了。
因为插件本身也在开发中,所以建议在开发是加入意见反馈群(在官方文档文末),及时关注动态,以免重复趟坑。
我这里用的是 Unity2021.3.3f1c1 版本:
发布Android就在下载时添加: Android Build Support 模块:
发布WebGL的话就在下载时添加: WebGL Build Support 模块: (想上线IOS的话只能使用WebGL的方式进行发布)
1.3 检查AppID是否有效
审核通过后就可以在应用中心看一个以07结尾且长度是20位AppID,若不是需要重新申请(后面打包时用)
二,开始集成2.1 创建项目
下载字节SDK:开发者后台,建议先读一遍文档,因为当你看的时候有可能有更新:
导入后在工具栏选:ByteGame --> ByteGame Develop Tools
打开后下载: StarkSDK 和StarkSDKUnityTools 两个包:
下载完成后目录大致如下:
2.2 接入SDK
发布抖音小游戏,只需要一个录屏分享功能即可上线 。所以这里只提供录屏和分享功能示例,其他功能可按需接入,官方文档地址。
逻辑也非常简单,创建三个按钮分别为开始游戏,游戏结束,分享录屏来模拟游戏过程中的功能实现;带有详细注释的接入代码如下: using System.Collections; using System.Collections.Generic; using StarkSDKSpace; using UnityEngine; using UnityEngine.UI; public class StarkSDKTest : MonoBehaviour { public Button startBtn; public Button endBtn; public Button shareBtn; void Start() { startBtn.onClick.AddListener(StartVideo); endBtn.onClick.AddListener(StopVideo); shareBtn.onClick.AddListener(ShareVideo); } void StartVideo() { Debug.Log("抖音 开启录制视频 ..."); // 是否录制声音,默认为录制声音 // 最大录制时长,单位 s。小于等于 0 则无限制。默认为10分钟 // 视频录制开始回调 // 视频录制失败回调 bool isStart = StarkSDK.API.GetStarkGameRecorder().StartRecord(true, 200, StartCallback, FailedCallback, SuccessCallback); Debug.Log("视频开启录制结果 ..." + isStart); } void StopVideo() { Debug.Log("抖音 停止录制视频 ..."); bool isStop = StarkSDK.API.GetStarkGameRecorder().StopRecord(SuccessCallback, FailedCallback, null, false); Debug.Log("停止录制视频状态 ..." + isStop); } void StartCallback() { Debug.Log("视频开始录制回调执行 ..."); // 开始回调逻辑,比如:显示录屏中按钮 } void FailedCallback(int errCode, string errMsg) { Debug.Log("录制视频失败回调执行 ... 错误码是:" + errCode + " ,错误消息是:" + errMsg); // 失败回调逻辑,比如:隐藏录屏中按钮 } void SuccessCallback(string videoPath) { Debug.Log("视频录制完成实际路径:" + videoPath); // 成功回调逻辑,比如:隐藏录屏中按钮 } void ShareVideo() { Debug.Log("ShareVideo ShareVideo ..."); // 只有回调,不带预定义标题和话题 StarkSDK.API.GetStarkGameRecorder().ShareVideo(SuccessCallback, FailedCallback, CancelledCallback); // 分享成功回调 // 分享失败回调 // 分享取消回调 // 分享视频的标题,如不需要设置标题,可以传null或空字符串 // 分享视频的话题,如不需要设置话题,可以传null或空列表 //StarkSDK.API.GetStarkGameRecorder().ShareVideoWithTitleTopics(SuccessCallback, FailedCallback, // CancelledCallback, "自定义标题", new List() {"自定义话题1", "自定义话题2"}); void SuccessCallback(Dictionary dictionary) { Debug.Log("视频分享成功回调 ..."); // 成功回调逻辑,比如:弹窗提示并发放奖励 } void CancelledCallback() { Debug.Log("取消分享回调 ..."); // 取消回调逻辑,比如:弹窗提示 } void FailedCallback(string errMsg) { Debug.Log("分享视频失败回调执行 ... " + " ,错误消息是:" + errMsg); // 失败回调逻辑,比如:弹窗提示 } } }
最后将代码挂载到游戏场景中并将上面创建的三个按钮赋值给代码中预留的公开变量。
然后运行:点击开始游戏按钮 -——> 调用录屏逻辑 -——> 游戏中出现: 开发阶段...文字提示,-——> SDK接入成功 -——> 进入真机测试阶段。
三,发布游戏
在工具栏选择 ByteGame --> StarkSDKTools --> Build Tool 即可打开打包的工具面板
3.1 发布安卓Apk
在面板的运行框架选择Native,然后按照需求填写,构建即可。
3.2 发布双端WebGL
在面板的运行框架选择WebGL,然后选择构建WebGL:
构建完成后,会在指定目录生成 --> 一个webgl的目录和一个压缩包,如下图:
然后在3.1图1中选择发布WebGl:
最后按需填写完成后,选择发布,等待发布完成即可在弹出二维码,使用抖音扫描就可以进行测试了。 3.3 IOS15.4版本问题
测试IOS时发现,使用IOS15.4版本的测试机,不能成功加载出游戏场景,报错如下:
报错原文:
10:08:30.703 exception thrown: RuntimeError: Out of bounds memory access (evaluating "dynCall_ii(index,a1)"),<?>.wasm-function[59627]@[wasm code] .wasm-function[146029]@[wasm code] .wasm-function[83839]@[wasm code] wasm-stub@[native code] invoke_ii@blob:file:///ce3cf2cf-9cb3-4723-a499-98a7b0c93a71:3:413696 .wasm-function[83839]@[wasm code] .wasm-function[19042]@[wasm code] .wasm-function[1057]@[wasm code] .wasm-function[66513]@[wasm code] .wasm-function[4560]@[wasm code] .wasm-function[118584]@[wasm code] wasm-stub@[native code] invoke_iii@blob:file:///ce3cf2cf-9cb3-4723-a499-98a7b0c93a71:3:411844 .wasm-function[118584]@[wasm code] .wasm-function[2239]@[wasm code] .wasm-function[63653]@[wasm code] .wasm-function[18940]@[wasm code] .wasm-function[541]@[wasm code] .wasm-function[540]@[wasm code] .wasm-function[111580]@[wasm code] .wasm-function[134747]@[wasm code] .wasm-function[18950]@[wasm code] .wasm-function[118583]@[wasm code] wasm-stub@[native code] invoke_iiii@blob:file:///ce3cf2cf-9cb3-4723-a499-98a7b0c93a71:3:412366
应该unity引擎有些代码变动导致,一个相关说明
解决方法:升级IOS版本就不会有问题啦。
众多游客打卡圆明园拾光买卖街大年初二的圆明园,大风带来刺骨的寒意,可热情的游客依然从四面八方来到这里,探向圆明园新春游园会的中心地带三园交界处。小吃互动游戏手工艺品售卖等聚集在此,吸引着摩肩接踵的人群感受浓郁
艾尔登法环新DLC啥时候出?老头环Steam后台数据更新!艾尔登法环已经发售快一年了,大家是否还在等它的新DLC呢?最近有网友发现,艾尔登法环Steam后台更新了不少数据,其中一个新的测试分支有不少新动静。根据Steamdb数据显示,艾尔
人机交往中闻声与现形智能语音助手化身形象呈现对用户听觉意象的补偿与冲突本刊官方网站httpcjjc。ruc。edu。cn摘要人机交往是否与人际交往模式一致是当前人机关系研究的热点话题。网络人际传播即便在面容缺场的情况下,也能实现闻其声,如见其人的效果
暗示新项目?空洞骑士开发商变更新商标信息在我们等待空洞骑士丝之歌的发布日的同时,开发商TeamCherry最近为FearlessFox提交了新的商标信息。nintendolife消息,根据澳大利亚知识产权网站显示,上个月
MySQL库很大,如何进行数据备份与恢复上一篇介绍了逻辑备份工具mysqldump,本文将通过应用更为普遍的物理备份工具xtrabackup来演示数据备份及恢复的第二篇内容。1。xtrabackup工具的安装1。1安装依
今年中端机用户真心赢麻了2K档上来就有骁龙8,以往都是7系包括荣耀iQOO红米今年卖手机的价格都比以往实诚了很多,还记得2022年红米K50,2399的价格只能买到中端处理器天玑8100,结果2022年年底更新的中端手机配置全部上新更强的
给2023的7个生活法则著名收纳达人曾出版畅销书怦然心动的人生整理魔法的日本作家近藤麻理惠,最近在接受华盛顿邮报专访时透露,自从有了三个孩子之后,她已经有点放弃整理了。过去,她确实是一位整理控,总是尽全力
自缢的结论在网上铺天盖地传来,压抑,想写些什么!今天上午,看到网上铺天盖地传来的结论自缢,我难过,默默地走了八公里,不知道思考着还是没思考什么,低着头,无视任何擦肩而过的人,胸口隐隐作痛,一个活动乱跳的孩子就这样自缢没了!我在想
为什么男孩子总是很调皮难带?近期,我发现我家三岁多的儿子越来越不好带,越来越顽皮,经常弄得我精疲力尽直接想瞌睡。例如,晚上要他洗澡,他就到处躲,跟你捉迷藏,实在没办法一把抱到洗手间,他就双手把洗手间门拉着,硬
如何增强孩子抵抗力免疫系统功能决定身体健康,在非常时期,除了减少不必要的外出外,也要想各种办法来提高免疫力!1保持适度运动保持适度运动能让全身骨骼和肌肉得到锻炼,增强各个器官活动能力,提高基础代谢率
乱抠肚脐眼会烂肠吗?肚脐眼脏了要怎么洗?医学指导广东省妇幼保健院护理部肖晶晶很多人小时候在抠肚脐眼时可能都曾收到过长辈的警告别抠,抠肚脐眼会肚子疼,会把肠子给捅烂!那么,真的是这样的吗?在回答这个问题之前,我们先来看看肚