admin管理员组文章数量:1534211
2024年1月25日发(作者:)
Unity发布WebGL后,借助脚本自动处理元素替换
什么是Unity?
Unity是一种目前流行跨平台的游戏开发引擎,常用来制作3D和2D游戏、虚拟现实和增强现实应用程序。支持部署多种平台,包括Windows、Mac、iOS、Android和主流的游戏主机,其中就包括发布部署WebGL项目。
WebGL作为Unity游戏的发布的一种形式,方便实现跨平台兼容性、无需插件、强大的图形性能和Web集成性,提供更好的游戏体验,需要注意的是WebGL项目,尤其需要做好优化,否则会影响用户体验的。
替换统一的样式
在Unity发布WebGL后,将其上传到服务器进行展示或者在本地配置的服务器上展示,能看到统一的加载页面,界面上的元素都是统一指定的,对于追求个性化的展示,明显是不合需求的,这个时候,就需要配合UI,制作一套个性化的元素进行手动替换。
这种替换,对于次数不多,还是可以采用手动替换的;但发布过WebGL的朋友,就知道这明显是不可能的,先不说发布后调测的的次数,就发布来说,不可能仅几个这样的项目的,通常都是成批次的,这样就带来了,手动替换会很耗费时间的,关键会导致心情和效率走向一个不愿意看到的方向,所以就有了下面的脚本。
在脚本语言的选择上是很多的,或者说可以扩大一点,能完成此类工作的工具很多的。目前选择的是Python。
Python是什么,如果想了解的,请自行借助网络资源,可以深入的了解一下,否则有广告的嫌疑,这里就不在赘述了,请谅解。
参考脚本
下面是采用Python编写的脚本,您可以在此基础上,进行修改,使其和自己的项目适配的目的。
webgl_
#!D:UsersgjcAppDataLocalProgramsPythonPython39-32
# 处理unity webgl发布后的替换问题
import os
import shutil
project_name = 'ElectricLab'
def copyimg(old_name, new_name):
le(old_name, new_name)
def delFiles(cur_path):
fn = ['', '', '']
for item in fn:
path = cur_path + item
if (path):
(path)
def replaceStr(file, old_str, new_str):
"""
替换文件中的字符串
:param file:文件名
:param old_str:就字符串
:param new_str:新字符串
:return:
"""
file_data = ""
with open(file, "r", encoding="utf-8") as f:
for line in f:
if old_str in line:
line = e(old_str, new_str)
file_data += line
with open(file, "w", encoding="utf-8") as f:
(file_data)
def isAlreadyReplace(file, str):
with open(file, "r", encoding="utf-8") as f:
for line in f:
if str in line:
return True
return False
def dealwithIndexHtml(title):
# 处理index
index = local_filename + '/'
# 去掉右下角的图标
if isAlreadyReplace(index, ''):
return
old_str = r'
'new_str = ''
replaceStr(index, old_str, new_str)
# 全屏
old_str = r'
new_str = '
replaceStr(index, old_str, new_str)
# 添加js文件
old_str = r''
new_str = 'nn'
replaceStr(index, old_str, new_str)
# 修改标题
old_str = r'
new_str = '
replaceStr(index, old_str, new_str)
# local_filename = h('.') #从上一级目录调用的时候,这个取到的是上级目录,目录不对,下面的调用就白费了
local_filename = e(__file__) # 路径里面的有空格会报错的,这个要保证路径中没有空格
index = local_filename + '/'
# if isAlreadyReplace(index, ''):
# print(local_filename + '----已处理过,exit')
# exit()
print(local_filename + '----处理中')
filename = (local_filename)[1]
# 复制图片文件
copyimg(r'E:/mydevelop/unity/work/git/gaoyadian/onekey_material/webgl_',
local_filename + '/Build/' + filename + '.jpg')
copyimg(r'E:/mydevelop/unity/work/git/gaoyadian/onekey_material/',
local_filename + '/TemplateData/')
copyimg(r'E:/mydevelop/unity/work/git/gaoyadian/onekey_material/',
local_filename + '/TemplateData/')
copyimg(r'E:/mydevelop/unity/work/git/gaoyadian/onekey_material/',
local_filename + '/TemplateData/')
copyimg(r'E:/mydevelop/unity/work/git/gaoyadian/onekey_material/',
local_filename + '/TemplateData/')
# 删除文件
delFiles(local_filename + '/TemplateData/')
# 处理
dealwithIndexHtml(filename)
脚本中已添加了相应的注释,比较好理解,不做过多的解释了,拿来用就好。实现自动办公可以提高工作效率、减少错误、节省成本,更加高效地运作,并更好的服务于自己。
关键是心情变好了,如果不看MN的话。
版权声明:本文标题:Unity发布webgl,借助脚本自动处理元素替换 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1706165356a173877.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论