Unity可以android 动态替换icon资源吗

&>&在Unity3D的网络游戏中实现资源动态加载
在Unity3D的网络游戏中实现资源动态加载
上传大小:27KB
就如标题一样,对于想制造大型游戏或者需要考虑优化的同志们会提供一个很好思路
综合评分:4
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有11条
应该可以实现
挺好的,动态加载可以参考下...
表示有点晕,资料总是大量的重复,哎
markliu1986216
综合评分:
积分/C币:3
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
在Unity3D的网络游戏中实现资源动态加载
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
markliu1986216
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
在Unity3D的网络游戏中实现资源动态加载Unity中资源动态加载的几种方式比较_百度知道
Unity中资源动态加载的几种方式比较
我有更好的答案
在一些大型的网络游戏,或者加载比较多的一些场景时,如果要等待所有模型,贴图等各种资源文件加载完毕才能执行游戏,对用户将会是一个很头大的事情。所以就需要用到动态加载,即AssetBundles。比如玩家在进入游戏时先加载一些周围的场景文件,这样不仅可以提高速度还可以减少内存资源的消耗。
AssetBundles是可以把unity3d中你所创建的文件或任何资源导出的一种文件格式,这些文件导出后使用的是一种特定的文件格式(.Unity3d),这些特定格式的文件能在需要的时候加载到场景中。而这些特定的文件格式可以是模型,贴图,声音文件甚至是场景文件,它们是先前就被设计好的文件,所以很容易就可以被到你所建立的游戏或场景中来AssetBundles 可以是任意类型的文件只要是unity3d能识别的资源文件格式,识别主要是以文件扩展名为准,比如.prefab等等。当然如果你想包含自定义的二进制文
采纳率:92%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Unity3D资源打包AssetBundle云端动态加载-Python代码实现 - 简书
Unity3D资源打包AssetBundle云端动态加载-Python代码实现
测试使用版本Python3.4.3 七牛云存储。
使用流程:
1.在程序目录下创建对应平台的AssetBundle包管理文件夹。格式如:\com.smallsu.ar\android\
2.把打包好的BM.data和AssetBundle文件放进去
3.把creat_json.py放进去
4.执行creat_json.py(可以按住shift不放,右键空白处,在此处打开命令行窗口)
5.即可生成server.json
其中server.json的格式如下:
"bundle_id": "com.CompanyName.ProductName",
"bundle_version": "1.0.0",
"control_manager": "BM.data",
"control_scenes": [
"默认场景名1",
"默认场景名2",
"默认场景名3"
"control_tag": "该版本是用于XXX",
"files": [
"md5": "f7e0b9760a3eae309294",
"name": "BM.data",
"size": 4,
"time": " 14-29-02"
"md5": "e603fbf0dc103",
"name": "Book1.assetBundle",
"size": 13,
"time": " 14-29-02"
"md5": "e603fbf0dc103",
"name": "Book2.assetBundle",
"size": 13,
"time": " 14-29-02"
"md5": "f7e0b9760a3eae309294",
"name": "BM.data",
"size": 4,
"time": " 14-29-02"
"md5": "e603fbf0dc103",
"name": "Book1.assetBundle",
"size": 13,
"time": " 14-29-02"
需要手动在server.json当中修改相关AssetBundle的信息。修改成功之后。使用uploadBundle.py把所有文件同步到七牛云即可。
Unity3D客户端直接http使用get请求。获取 https://七牛域名/com.smallsu.ar/android/server.json 即可读取相关信息。
环境配置方法:
安装python3.4.3 install.msi
执行pip命令
pip install qiniu
pip install require
相关代码:
# uploadBundle.py
import sys
from easy_qiniu import SevenCow
#可获取文件夹内全部文件名(包括子文件夹)
def get_all_files(DirectoryPath):
filenamesList = []
for dirpath, dirnames, filenames in os.walk(DirectoryPath):
dirpath:当前遍历文件夹全名
dirnames:当前文件夹内子文件夹名
filenames:当前文件夹下文件名列表(不包括子文件夹里的文件)
for filename in filenames:
filenamesList.append(dirpath + '/' + filename)#全名
return filenamesList
#生成网站根目录形式的文件名
def get_root_filename(fullname):
dir_path = sys.path[0]
return fullname[len(sys.path[0]) + 1:len(fullname)].replace('\\','/')
#生成{目标文件名:源文件名,...}形式的字典
def get_filenames_dict(filenamesList=[]):
filenames_dict = {}
for filename in filenamesList:
filenames_dict[get_root_filename(filename)] = filename
return filenames_dict
#上传,根据返回值判断是否成功
def upload_into_qiniu(access_key,secret_key,bucket_name,director_path=sys.path[0]):
sc = SevenCow(access_key,secret_key)
sc.delete_files(bucket_name,sc.list_file_names(bucket_name)[0])
sc.upload_files(bucket_name,get_filenames_dict(get_all_files(director_path)))
return False
return True
access_key = '七牛密匙'
secret_key = '七牛密匙'
bucket_name = '七牛空间名'
if(upload_into_qiniu(access_key,secret_key,bucket_name,director_path=sys.path[0])):
print('Bak Successful')
print('Bak Error')
#creat_json.py
#-*-encoding:utf-8-*-
import os,sys
import hashlib
import datetime
import json
#可获取文件夹内全部文件名(包括子文件夹)
def get_all_files(DirectoryPath):
filenamesList = []
for dirpath, dirnames, filenames in os.walk(DirectoryPath):
dirpath:当前遍历文件夹全名
dirnames:当前文件夹内子文件夹名
filenames:当前文件夹下文件名列表(不包括子文件夹里的文件)
for filename in filenames:
filenamesList.append(dirpath + '/' + filename)#全名
return filenamesList
# 计算文件的MD5值
def md5_file(name):
m = hashlib.md5()
a_file = open(name, 'rb')
#需要使用二进制格式读取文件内容
m.update(a_file.read())
a_file.close()
return m.hexdigest()
# 保存文件到本地
def save(filename, contents):
fh = open(filename, 'w')
fh.write(contents)
fh.close()
if __name__ == "__main__":
# 获取列表信息
pathList = get_all_files(sys.path[0])
server["bundle_id"]="com.CompanyName.ProductName"
server["bundle_version"]="1.0.0"
server["control_manager"]="BM.data"
server["control_scenes"]=[]
server["control_scenes"].append("默认场景名1")
server["control_scenes"].append("默认场景名2")
server["control_scenes"].append("默认场景名3")
server["control_tag"]="该版本是用于XXX"
server["files"]=[]
for path in pathList:
if(os.path.splitext(path)[1] in [".data",".assetBundle"]):
file["name"]=os.path.basename(path)
file["md5"]=md5_file(path)
file["size"]=os.path.getsize(path)
file["time"]=datetime.datetime.fromtimestamp(os.path.getmtime(path)).strftime("%Y-%m-%d %H-%M-%S")
server["files"].append(file)
res = json.dumps(server, sort_keys=True, indent=2, ensure_ascii=False)
print(res)
save('server.json',res)
#easy_qiniu.py
from qiniu import
from qiniu import put_file
from qiniu import BucketManager
from qiniu import build_batch_stat
from qiniu import build_batch_copy
from qiniu import build_batch_move
from qiniu import build_batch_delete
from qiniu import etag
import requests
import mimetypes
#class SevenCowException(Exception):
def __init__(self,status_code,content):
self.url = url
self.status_code = status_code
self.content = content
Exception.__init__(self, content)
class SevenCow(object):
def __init__(self, access_key,secret_key):
self.__access_key = access_key
self.__secret_key = secret_key
#使用access_key,secret_key登陆七牛,得到Auth类型返回值,以它作为后续操作凭证
self.__auth = Auth(access_key, secret_key)
# 上传本地文件(断点续上传、分块并行上传)
def upload_files(self,bucket_name='',filedict={},
mime_type='',params={'x:a': 'a'}):
bucket_name:'bucket_name'
filedict: {'key':'localfile',...}
mime_type: mime_type
params: eg {'x:var': 'var'}
params用法:
params={'x:price':'price','x:location':'location'}
html文件中:
&form method="post" action="http://upload.qiniu.com/" enctype="multipart/form-data"&
&input name="key" type="hidden" value="sunflower.jpg"&
&input name="x:location" type="hidden" value="Shanghai"&
&input name="x:price" type="hidden" value="1500.00"&
&input name="token" type="hidden" value="..."&
&input name="file" type="file" /&
之后用户点击input按钮后,传给http://upload.qiniu.com的请求报文就会变成:
name=sunflower.jpg&hash=Fn6qeQi4VDLQ347NiRm- \
RlQx_4O2&location=Shanghai&price=1500.00
然后七牛接受到后会将此作为回调请求的Body调用callbackUrl指定的回调服务器。
# 上传本地文件(断点续上传、分块并行上传)
infos = []
for key in filedict.keys():
#上传策略仅指定空间名和上传后的文件名,其他参数为默认值
token = self.__auth.upload_token(bucket_name, key)
progress_handler = lambda progress, total: progress
if(mime_type == ''):
ret,info = put_file(token, key, filedict[key], params ,mime_type=mimetypes.guess_type(key)[0], progress_handler=progress_handler)
ret,info = put_file(token, key, filedict[key], params ,mime_type=mime_type, progress_handler=progress_handler)
#assert ret['key'] == key
rets.append(ret)
infos.append(info)
return rets,infos
def download_files(self,url='',filedict={}):
url: 'url'
filedict: {'key':'localfile',...}
if(url[0:4].upper() != 'HTTP'):
url = 'http://' + url
status_codes = []
for fkey in filedict.keys():
with open(filedict[fkey], "wb") as file:
r = requests.get(url + '/' + fkey,timeout=5)
status_codes.append(r.status_code)
file.write(r.content)
return status_codes
# 获取文件信息
def get_file_info(self,bucket_name,keys=[]):
bucket_name:'bucket_name'
['fileName1','fileName2']
bucket = BucketManager(self.__auth)
ops = build_batch_stat(bucket_name, keys)
ret, info = bucket.batch(ops)
return ret,info
# 复制文件
def copy_files(self,source_bucket,target_bucket,pathdict={}):
source_bucket: 'source_bucket'
target_bucket:
'target_bucket'
pathdict: {'source_file_name':'target_file_name',...}
bucket = BucketManager(self.__auth)
ops = build_batch_copy(source_bucket, pathdict, target_bucket)
ret, info = bucket.batch(ops)
return ret,info
# 移动文件
def move_files(self,source_bucket,target_bucket,pathdict={}):
source_bucket: 'source_bucket'
target_bucket:
'target_bucket'
pathdict: {'source_file_name':'target_file_name',...}
bucket = BucketManager(self.__auth)
ops = build_batch_move(source_bucket, pathdict, target_bucket)
ret, info = bucket.batch(ops)
return ret,info
# 删除文件
def delete_files(self,source_bucket,pathlist=[]):
source_bucket: 'source_bucket'
pathlist: ['source_file_name',...]
bucket = BucketManager(self.__auth)
ops = build_batch_delete(source_bucket, pathlist)
ret, info = bucket.batch(ops)
return ret,info
# 列出所有文件
def list_file_names(self,bucket_name, prefix=None, marker=None, limit=None, delimiter=None):
列举标识符(首次为None)
单次列举个数限制(默认列举全部)
delimiter:
指定目录分隔符
pathlist: ['file_name',...]
file_name_list = []
bucket = BucketManager(self.__auth)
marker = None
eof = False
while eof is False:
ret, eof, info = bucket.list(bucket_name, prefix=prefix, marker=marker, limit=limit)
marker = ret.get('marker', None)
for item in ret['items']:
file_name_list.append(item['key'])
return file_name_list,eof
# 抓取资源
def fetch_files_from_net_to_qiniu(self,bucket_name,pathdict={}):
bucket_name: 'bucket_name'
pathdict: {'source_file_name':'target_file_name',...}
bucket = BucketManager(self.__auth)
for p in pathdict.keys():
ret, info = bucket.fetch(pathdict[p], bucket_name,p)
rets.append(ret)
infos.append(info)
return rets,infos
# 更新镜像资源
def update_image_source(self,bucket_name,pathlist=[]):
bucket_name: 'bucket_name'
pathlist: ['file_name',...]
!需要提前对仓库设置镜像源!
bucket = BucketManager(self.__auth)
for p in pathlist:
ret, info = bucket.prefetch(bucket_name, p)
rets.append(ret)
infos.append(info)
return rets,infos
Unity3D、UE4程序狗,AR、VR搬砖工
在Unity3D游戏开发过程中,因为受到游戏容量、平台性能和热更新等诸多因素的限制,我们可能无法将所有的游戏场景打包到项目中然后相对”静态”地加载,那么这个时候就需要我们使用动态加载的方式来将游戏场景加载到场景中。博主在研究了Unity3D动态加载的相关资料后发现,目前Un...
背景: 简单来说我们的打包工作就是hack原始包,向其中注入代码。ps:我们不是黑客! 原始打包(hack)方案: 1.反编译原始apk,得到文件夹A。 2.将要加入的jar包变成dex,再变成smali,放入A。 3.将要加入的资源直接放入A。 4.重新编译A生成新apk...
Android多渠道打包の根据渠道来加载相应的资源文件及Java代码 方案需求 由于不同渠道,对项目会进行一定的修改,比如图片、文字等,所以需要根据渠道来加载相应的资源文件,以达到显示相应渠道定制的app,同时不需要新建module方式进行实现 根据渠道,定制资源 配置渠道...
异步任务相信大家应该不会陌生,那么本章内容MOMO将带领大家学习Unity中的一些异步任务。在同步加载游戏场景的时候通常会使用方法 Application.LoadLevel(“yourScene”); 这句代码执行完毕后程序会干什么呢??如下图所示,这是我随便找了一个游戏...
目录 Android黑科技动态加载(一)之Java中的ClassLoaderAndroid黑科技动态加载(二)之Android中的ClassLoaderAndroid黑科技动态加载(三)之动态加载资源Android黑科技动态加载(四)之插件化开发 项目地址 我们的认识 我们...
“八轮紫月...” 牧尘的心神注视着那八轮璀璨紫月,则是心中一笑,如此说来的话,他体内隐藏的灵脉,果然是神脉。天籁小说 对于这一点,他其实并不算特别的吃惊,这些年来,他自身所展露的修炼天赋,从某种意义上而言已经有所表明。 当然,拥有着神脉,却不一定代表着最终就能够成为天至尊...
译文地址:http://www.oschina.net/p/mycli mycli 是一个 MySQL 的命令行客户端,可以实现自动补全(auto-completion)和语法高亮。 特性:mycli使用 prompt_toolkit 编写。 当你输入 SQL 关键字,数据...
八月前半个月总结: 很开心看到自己有一个质的蜕变,即使前面很不爽,但现在越来越爽了,哈哈(?ω?)一切都在进行中,我总是那么自信着,跟凤娟学滴,嘿嘿,记得刚进直营的时候,就听她分享群,那是就感觉他就是自己膜拜的女神,好厉害好厉害,不过本来也是非常优秀滴,所以这一次选择挑战目...博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)请完成以下验证码
<div class="mn"
MP4 AVC |视频: |音频:AAC 44khz 2ch |持续时间:2小时41m | 818 MB
类型:学习|语言:英
[Unity专区]
[Unity专区]
[Unity专区]
[Unity专区]
[Unity专区]
[Unity专区]
[Unity专区]
[Unity专区]
手机完整动态环境特效脚本Unity游戏素材资源
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
32avy9k7xyx2_meitu_14.jpg (55.98 KB, 下载次数: 0)
12:21 上传
本游戏资料是个关于手机完整动态环境特效脚本Unity游戏素材资源,大小:206 MB ,格式:unitypackage,使用软件:Unity,供广大设计师学习使用,语言:英语。
VIP会员免费下载:
手机完整动态环境特效脚本Unity游戏素材资源.zip
VIP会员免费下载: &
当前文章为汇同资源网搜集分享,转载请说明出处,本文地址:
汇同资源网版权申明
1、本素材仅供参考与学习,版权归原作者所有,严禁商用!
2、如无特殊说明,本站压缩包默认密码均为:www.htzyw.com
3、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予以删除并致以最深的歉意
4、管理员和版主有权不事先通知发贴者而删除本文
小手一抖,积分到手!
呵呵,支持一下哈
第一次见得那么cool
我也来顶一下..
长时间没来看了 ~~
知道了 不错~~~
下载:16987下载:9991下载:8987下载:6165下载:6037下载:6019下载:5728下载:5462
客服电话:
购买/售前咨询
购买咨询,及时响应
下载链接失效提交
ae素材推荐
CG教程推荐
&#160;&#160;
Powered by
汇同资源网是一个集ae模板,fcpx插件,视频素材,cg教程等资源的分享网站

我要回帖

更多关于 unity 动态替换材质球 的文章

 

随机推荐