zl
:)们,如何实现点击一个按钮,下载一个小游戏,下载好之后启动那个游戏呢?
狗灰
?123 看你是用http下载,还是服务器传直接下载数据。
直接传下载数据
狗ahplA
我看了下代码,好像是只需要写入一个pub key就可以了
zl
嗯,那个下载过程是直接下载apk,还是下载代码加资源呢?
现在公司要做一个这玩意。下载的东西和大厅都要自己弄
狗灰
?123 你们大厅进去之后下小游戏吧,安卓的话用apk那不是还要再安装一个应用进去?
飞阿心小.海上.
直接调试下载过程就知道下载是不是出问题了
如果是使用 http下载的话直接使用浏览器打开你服务器的资源,这样可以确认服务器资源有没有问题
飞阿心小.海上.
如果他做成像应用宝这种平台式的话就得下载apk了
zl
然后加载脚本运行?
?灰狗 我试试。先去研究下怎么加载脚本。还没玩过lua。。就看了一周,把开发流程跑通了
?灰狗 这个启动刚下载的游戏部分,是不是跟切换场景一个道理
狗灰
纯C艹的话,可以动态加载so。


zl
这个更难吧没了解过只用过System.loadLibrary不算用过吧。cocos那个入口就是这样写的thgif
现在大型游戏越来越不好做了
大家都转去做小游戏了
狗灰
那是java调用的,C艹加载so用dlopen(就跟LoadLibrary加载dll一样)。
ocarD
脚本和资源捆绑成资源包下载,前端要包系统 就酱
lua运行时沙箱、资源重定向、惰性资源卸载 这些全都要有
狗灰
?Draco 文件可以动态写入libs下不?cocos提供那个写入路径是存配置用的,下到那里面的话用户去应用管理清数据的话就会把热更资源删掉。
ocarD
有机制可以防止这种事情发生的。
应该说是应对
你的主包里是带有原始配置表的,就算他删了,也只是后下载的包删了。再次启动游戏会重新下载
狗灰
这不是废话吗zl
听不懂ocarD
这没办法的。热更新的地址一般都是writeablepath
或者你自己建一个路径
ocarD
有啥不懂得。你要做小游戏,你就得把小游戏的逻辑和资源单独捆绑成一个资源包,下载下来后从里面读文件,从一个固定的lua文件开启引导,这其中就包含很多需要做的安全模块
是啊 之前是有项目会这么做的
狗灰
之前有看到过说动态更新so文件的,所有才在想把更新资源也往libs下写。
ocarD
unity的热更策略里不就有这个。热更dll 差不多吧
zl
头痛起来了狗灰
Windows到不存在这个问题,我只需要加一个update.exe整个游戏都能全部替换。
zl
:)们,下载压缩包,解压
这个操作是AssertManager就能搞定的吗
之前找的例子,解压不出来。现在这个可以,不过还没细看代码
狗ahplA
我直接把assets manager里面下载和解压的那一坨抽出来了,其他的都丢了
狗ahplA
他的下载和解压,还是可以的
但是他有一套复杂的规则,没什么卵用
zl
。。我现在还不会自己搞,没研究过那些协议。
噢噢
zl
。。。
我再看下。现在这个例子的可以解压了。之前的老提示损坏的格式
在研究一下去。头都大了 狗灰
?123 我想起来了,我们之前用这个的时候发现加过密的文本文件(扩展名为js、plist、xml、json等这些)文件就会被损坏。
因为的坑货,把这些格式文件里面的\n都转成\r\n了。
zl
、、、难
。。没API,你们都是去看源码的啊 狗灰
http下载的话,不就是open一个url(跟fopen一个本地文件不是差不多吗),然后获取http头信息(相当于获取本地文件属性、大小等),然后获取http数据(不就跟fread差不多吗),获取到的数据写入本地文件就不用说了吧,最后下载完成关闭url连接(不就跟fclose是一回事吗)。
zl
我已经被说的一愣一愣的
流程倒是懂了一些。代码一行不会写
。。
果然是那个链接的事。。之前的代码也可以下载
我是没自己服务器,网上找的链接。。
zl.霸学.
你们热更的时候是把下载下来的资源复制到项目的res下面。还是直接使用呢
tna.员理管.
妈蛋,unity的物理引擎还是有快速穿透问题
我擦,这怎么玩
高速弹道是做不了
ocarD.员理管.
collider还是rigidbody有个属性要设置一下
tna.员理管.
要弹道哟ocarD.员理管.
恩 射线可以 别依赖collider了
ocarD.员理管.
显示和判定又不一定要做在一起的
ocarD.员理管.
你可以让子弹自己去做raycast
检测到碰撞点 得到距离,然后去算自己的速度,下一帧是否会穿透
如果会就判定碰撞了
这样就精确了
tna.员理管.
这性能就下去了尤其子弹很多的时候
惨不忍睹,日 狗灰.员理管.
要是PPU( Physical Processing Unit)普及了话就可以大量用PhysX了。
tna.员理管.
不是这个意思,对象多了,检测逻辑消耗就上去了
ocarD.员理管.
那就不做实时的呗 子弹射出就直接raycast
tna.员理管.
体验不好
ocarD.员理管.
体验是可以优化的
比如raycast后可以根据距离延迟发送碰撞事件
tna.员理管.
那只能改需求
这是可以,不过就是躲不掉
ocarD.员理管.
你眼睛都捕捉不到的速度咋躲。。。除非特别远
tna.员理管.
差不多反正有一定距离
ocarD.员理管.
那也可以把上面的实时监测分段
按速度距离算分段监测的时间
tna.员理管.
量大了还是有问题,而且是同时多个弹还是实时多人
tna.员理管.
服务端没人才
先客户端将就 ocarD.员理管.
前端监测到了又能怎样。。以前端为准么。。
ocarD.员理管.
用这个
Physics.RaycastNonAlloc
设置好距离 layerMask 分配好buffer 一帧100~200次没啥问题
你试试呗
ocarD.员理管.
可以先实验一下 搞几个collider试试
Raycast的开销有一半都在new strcut上
之前用raycast做地面吸附,同一个场景几十号人,没看出有什么性能开销